Код: Выделить всё
cmake_minimum_required(VERSION 3.21.3)
if (APPLE)
#The variable CMAKE_OSX_DEPLOYMENT_TARGET must initialized as a cache variable prior to the first project() command
if(IOS)
set(CMAKE_OSX_DEPLOYMENT_TARGET "14.0" CACHE STRING "Minimum iOS deployment version")
else()
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum MacOS deployment version")
endif()
endif()
project(MyApp LANGUAGES CXX)
В MacOS это генерирует правильный MACOSX_DEPLOYMENT_TARGET в проекте XCode, но в iOS это не имеет никакого эффекта и IPHONEOS_DEPLOYMENT_TARGET = 11.0 генерируется в проекте XCode, хотя согласно документации он также должен применяться к iOS.
Моя версия CMake — 3.29.2, версия XCode — 15.3.< /p>
EDIT1
Попытка установить CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET как обналичиваемую и не обналичиваемую:
Код: Выделить всё
set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "14.0" CACHE STRING "Workaround for minimum iOS deployment version")
set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "14.0")
Код: Выделить всё
set_target_properties(${PROJECT_NAME} PROPERTIES
XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "14.0")
Попробовал код из ответа:
Код: Выделить всё
if (APPLE)
# The variable CMAKE_OSX_DEPLOYMENT_TARGET must initialized as a cache variable prior to the first project() command
# Your code won't work the variable IOS cannot be used before the project call. It will always be false.
# You must use the CMAKE_SYSTEM_NAME instead
message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
if(CMAKE_SYSTEM_NAME STREQUAL "iOS")
#Does not take an effect, the workaround is setting XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET.
set(CMAKE_OSX_DEPLOYMENT_TARGET "14.0" CACHE STRING "Minimum iOS deployment version")
else()
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum MacOS deployment version")
endif()
message("CMAKE_OSX_DEPLOYMENT_TARGET has been set to ${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif()
[img]https://i.sstatic.net /Ac4xrI8J.png[/img]
Я перезапустил QT Creator, запустил CMake и получил следующее:

но когда я удалил файлы сборки и запустил чистый CMake, я получил это снова:

QT Creator указывает следующие атрибуты OSX:

но не CMAKE_SYSTEM_NAME.
Подробнее здесь: https://stackoverflow.com/questions/784 ... t-with-ios
Мобильная версия