如何通过导入的目标传递设置"CMAKE_EXE_LINKER_FLAGS"?
How to transitively set "CMAKE_EXE_LINKER_FLAGS" via an imported target?
我正在为一个库实现FindXXX.cmake,它需要与之链接的exe来添加特定的链接器标志。
具体来说,这是针对LuaJIT的,它要求使用链接应用程序
-pagezero_size 10000 -image_base 100000000
我宁愿不只是设置CMAKE_EXE_LINKER_FLAGS,因为可能还有其他EXE没有链接到我在项目中构建的LuaJIT,我更希望这来自一个可传递的设置。
此外,我不能只将其添加到IMPORTED_LINK_INTERFACE_LIBRARIES中,因为这些标志会在针对该依赖项进行链接的其他库上使用,并且该设置特定于链接应用程序。
额外信用:这应该只适用于64位macosx版本。
您可以使用target_link_libraries(your_target your_flags)
。您的标志必须以-
开头。您可以使用APPLE
变量检查Apple系统,也可以使用CMAKE_SIZEOF_VOID_P
检查64位系统。
你可以把所有这些放在一个if语句中,就像这样:
if(APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 8)
target_link_libraries(your_target your_flags)
endif()
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用CMake创建QML插件
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- cmake如何在fedora工作站中找到boost静态库包
- 使用CMake检测支持的C++标准
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 如何使用CMake编译.proto文件来生成.grpcp.pb.cc和.grpc.pb.h文件
- 如何阻止"/Gm-"从CMake传递给clang_cl.exe
- CMake 和 Visual Studio 2015 - C 编译器 cl.exe 无法编译简单的测试程序
- CMake, Exe cant find DLL
- cmake:生成批处理文件调用cl.exe
- CMake:未能运行 MSBuild 命令:MSBuild.exe
- 在Visual Studio 2017中使用Qt库的CMake项目:运行exe时找不到Qt dll
- CMake 不会生成.exe文件
- 如何在cmake中使用不同的命令和.exe不同的命令制作目标文件
- 如何强制 cmake 在没有完整路径的情况下使用 cl.exe
- 是否可以使用 C++ 和 CMake 在 Linux 上创建 Windows exe
- Cmake构建失败,CMAKE_AR-NOTFOUND (cr exe未找到)