我在OS X 10.10.5上使用CMake 3.3.2和Xcode 7.1。CMake似乎忽略CMAKE_OSX_DEPLOYMENT_TARGET
我有一個使用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 <path>
然而,由此產生xcodeproj束似乎並不具有部署目標組。當我在文本編輯器中打開包含的project.pbxproj文件時,沒有提及MACOSX_DEPLOYMENT_TARGET
的行。
因此,當我在Xcode中打開項目時,在Build Settings> Deployment> OS X Deployment Target下,無論我在CMakeLists.txt中指定什麼,Xcode都會顯示默認值「OS X 10.11」。當我手動更改Xcode中的設置,然後在文本編輯器中重新打開項目文件時,正確添加了行MACOSX_DEPLOYMENT_TARGET = 10.9;
。
我做錯了什麼?谷歌搜索這個問題沒有給出任何最近的結果。
這是有效的。非常感謝!我不明白的是爲什麼這個值需要被緩存。我在CMAKE_OSX_DEPLOYMENT_TARGET的文檔中沒有發現任何提及。有沒有關於我不知道的緩存的一般規則? –
@DanielWolf查看更新的答案。 – sakra
感謝您的解釋。官方文檔提到,「如果沒有明確地設置該值是由MACOSX_DEPLOYMENT_TARGET環境變量初始化的」,但沒有提及只有一個緩存變量被視爲一個顯式值。 –