我在OS X 10.10.5上使用CMake 3.3.2和Xcode 7.1.
我有一个使用CMake的小型C++项目.我希望它在OS X 10.9或更高版本上运行.所以我修改了我的CMakeLists.txt来开始这个:
cmake_minimum_required(VERSION 3.3) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9") project(...
然后我像这样创建Xcode项目:
cmake -G Xcode
但是,生成的xcodeproj软件包似乎没有设置部署目标.当我在文本编辑器中打开包含的project.pbxproj文件时,没有提及行MACOSX_DEPLOYMENT_TARGET
.
因此,当我在Xcode中打开项目时,在Build Settings> Deployment> OS X Deployment Target下,Xcode总是显示默认值"OS X 10.11",无论我在CMakeLists.txt中指定了什么.当我手动更改Xcode中的设置,然后在文本编辑器中重新打开项目文件时,MACOSX_DEPLOYMENT_TARGET = 10.9;
已正确添加该行.
难道我做错了什么?谷歌搜索问题没有给出任何最近的结果.
变量CMAKE_OSX_DEPLOYMENT_TARGET
必须在第一个project()
命令之前初始化为缓存变量,以便正确拾取Xcode项目生成:
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version")
如果未明确设置为缓存变量,CMAKE_OSX_DEPLOYMENT_TARGET
则由MACOSX_DEPLOYMENT_TARGET
环境变量初始化.
像上面的赋值一样初始化缓存变量也会覆盖同一范围内同名的非缓存变量的值.