iOS应用qmake下如何区分makefile和Xcode项目生成阶段
区分iOS项目下qmake两种运行模式的方案
Qt 5.15 iOS平台的qmake逻辑中,可以通过内置的生成器作用域直接区分两种模式,无需依赖build_pass变量,实现效果和macOS下的macx-xcode作用域完全一致:
- 匹配Xcode项目生成模式:直接使用
xcode内置作用域,该作用域仅在qmake生成Xcode项目文件时触发xcode { # 此处写入仅Xcode模式下需要执行的配置 QMAKE_INFO_PLIST = ios/Info.xcode.plist } - 匹配makefile生成模式:使用
!xcode+平台限定的组合作用域,仅在qmake生成makefile时触发!xcode:ios { # 此处写入仅makefile模式下需要执行的配置 QMAKE_INFO_PLIST = ios/Info.makefile.plist }
验证方法
你可以在pro文件中加入以下打印语句,运行qmake时就能在输出中看到当前的生成器类型,确认匹配逻辑符合预期:message(当前生成器类型: $$MAKEFILE_GENERATOR)
补充说明
iOS场景下两次处理pro文件时build_pass均为0是qmake的预期行为,该变量用于区分多配置构建的不同阶段,不适合用来判断生成器类型。xcode作用域是qmake内置的生成器匹配标识,全平台通用,只要qmake使用Xcode生成器就会触发,不需要额外绑定macOS平台标识。
内容的提问来源于stack exchange,提问作者Akon
相关产品推荐
相关产品推荐

