如何通过CMake设置Swift项目的Active Compilation Conditions宏?
解决CMake设置Swift Active Compilation Conditions的问题
Swift的Active Compilation Conditions对应的编译参数是-D<宏名>,直接将宏名写入CMAKE_Swift_FLAGS会被归类到Other Swift Flags,无法被条件编译逻辑识别。以下是正确的配置方式:
全局设置(所有Swift目标生效)
直接在CMAKE_Swift_FLAGS中添加带-D前缀的宏定义:
set(CMAKE_Swift_FLAGS "${CMAKE_Swift_FLAGS} -DELDIABLO")
如果需要添加多个宏,依次追加即可:
set(CMAKE_Swift_FLAGS "${CMAKE_Swift_FLAGS} -DELDIABLO -DANOTHER_MACRO")
针对特定目标设置(推荐)
如果只想让宏对某个Swift目标生效,使用target_compile_options更灵活:
target_compile_options(YourSwiftTargetName PRIVATE -DELDIABLO)
配置完成后,打开生成的Xcode项目,检查Target -> Build Settings -> Swift Compiler - Custom Flags -> Active Compilation Conditions,即可看到添加的宏,此时#if ELDIABLO这类条件编译代码就能正常触发。
内容的提问来源于stack exchange,提问作者NightFuryLxD
相关产品推荐
相关产品推荐

