cmake - 在 CMakeLists.txt 中检测 CMake 构建目标?
问题描述
在 CMake 脚本CMakeLists.txt
中,如何检测当前的构建目标,例如通过-A
选项传递给 cmake 命令的参数?有变量WIN32
可以检测 Windows,但仍然没有-A
选项的参数,例如-A X64
.
if (WIN32)
#do something
endif (WIN32)
解决方案
-A
随标志提供的平台名称可通过变量在CMakeLists.txt
文件中访问。CMAKE_GENERATOR_PLATFORM
关于您的措辞,请注意,CMake 中没有“当前构建目标”之类的东西。相反,该CMakeLists.txt
文件定义了哪些目标将在由 CMake 创建的生成的 Makefile(例如 viaadd_executable
或)中可用。add_library
CMake 本身不会为特定目标执行构建。构建哪个目标取决于您如何执行生成的 Makefile,例如make <targetname>
.
推荐阅读
- c# - 检查登录页面 c# 和 sql 的哈希密码
- sql-server - 按月、类型和类别分组 SQL Server
- json - 包含空值的 BsonDocument 的 Newtonsoft.Json.JsonConvert.SerializeObject 失败并出现 InvalidCastException
- python-3.x - KeyError: ('Year', '发生在索引 Year')
- python-3.x - Python3:转换撇号 unicode 字符串
- ios - 如何在编辑文本字段时禁用手势识别器?
- string - Windows 批处理文件 - 在文件中查找字符串并附加到它
- javascript - 电子:无法读取未定义的属性“getCurrentWebContents”
- posix - 来自不同用户命名空间的能力
- android - Xamarin 表单:选项卡式页面选项卡未在 android 上正确呈现