Xcode: Recognise Watch and TV OS as embedded platforms
This commit is contained in:
parent
2f269fdf0c
commit
a91eebebdb
@ -2407,10 +2407,23 @@ bool cmMakefile::PlatformIsAppleIos() const
|
|||||||
sdkRoot = this->GetSafeDefinition("CMAKE_OSX_SYSROOT");
|
sdkRoot = this->GetSafeDefinition("CMAKE_OSX_SYSROOT");
|
||||||
sdkRoot = cmSystemTools::LowerCase(sdkRoot);
|
sdkRoot = cmSystemTools::LowerCase(sdkRoot);
|
||||||
|
|
||||||
return sdkRoot.find("iphoneos") == 0 ||
|
const std::string embedded[] =
|
||||||
sdkRoot.find("/iphoneos") != std::string::npos ||
|
{
|
||||||
sdkRoot.find("iphonesimulator") == 0 ||
|
"appletvos", "appletvsimulator",
|
||||||
sdkRoot.find("/iphonesimulator") != std::string::npos;
|
"iphoneos", "iphonesimulator",
|
||||||
|
"watchos", "watchsimulator",
|
||||||
|
};
|
||||||
|
|
||||||
|
for(size_t i = 0; i < sizeof(embedded) / sizeof(embedded[0]); ++i)
|
||||||
|
{
|
||||||
|
if(sdkRoot.find(embedded[i]) == 0 ||
|
||||||
|
sdkRoot.find(std::string("/") + embedded[i]) != std::string::npos)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* cmMakefile::GetSONameFlag(const std::string& language) const
|
const char* cmMakefile::GetSONameFlag(const std::string& language) const
|
||||||
|
@ -54,6 +54,38 @@ if(NOT XCODE_VERSION VERSION_LESS 5)
|
|||||||
unset(RunCMake_TEST_OPTIONS)
|
unset(RunCMake_TEST_OPTIONS)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT XCODE_VERSION VERSION_LESS 7)
|
||||||
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesWatchOS-build)
|
||||||
|
set(RunCMake_TEST_NO_CLEAN 1)
|
||||||
|
set(RunCMake_TEST_OPTIONS "-DTEST_WATCHOS=ON")
|
||||||
|
|
||||||
|
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
||||||
|
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
||||||
|
|
||||||
|
run_cmake(XcodeBundles)
|
||||||
|
run_cmake_command(XcodeBundles-build ${CMAKE_COMMAND} --build .)
|
||||||
|
|
||||||
|
unset(RunCMake_TEST_BINARY_DIR)
|
||||||
|
unset(RunCMake_TEST_NO_CLEAN)
|
||||||
|
unset(RunCMake_TEST_OPTIONS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT XCODE_VERSION VERSION_LESS 7.1)
|
||||||
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesTvOS-build)
|
||||||
|
set(RunCMake_TEST_NO_CLEAN 1)
|
||||||
|
set(RunCMake_TEST_OPTIONS "-DTEST_TVOS=ON")
|
||||||
|
|
||||||
|
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
||||||
|
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
||||||
|
|
||||||
|
run_cmake(XcodeBundles)
|
||||||
|
run_cmake_command(XcodeBundles-build ${CMAKE_COMMAND} --build .)
|
||||||
|
|
||||||
|
unset(RunCMake_TEST_BINARY_DIR)
|
||||||
|
unset(RunCMake_TEST_NO_CLEAN)
|
||||||
|
unset(RunCMake_TEST_OPTIONS)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT XCODE_VERSION VERSION_LESS 7)
|
if(NOT XCODE_VERSION VERSION_LESS 7)
|
||||||
set(RunCMake_TEST_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/osx.cmake")
|
set(RunCMake_TEST_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/osx.cmake")
|
||||||
run_cmake(XcodeTbdStub)
|
run_cmake(XcodeTbdStub)
|
||||||
|
@ -10,6 +10,22 @@ if(TEST_IOS)
|
|||||||
set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
|
set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
|
||||||
endif(TEST_IOS)
|
endif(TEST_IOS)
|
||||||
|
|
||||||
|
if(TEST_WATCHOS)
|
||||||
|
set(CMAKE_OSX_SYSROOT watchos)
|
||||||
|
set(CMAKE_OSX_ARCHITECTURES "armv7k")
|
||||||
|
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO")
|
||||||
|
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "")
|
||||||
|
set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TEST_TVOS)
|
||||||
|
set(CMAKE_OSX_SYSROOT appletvos)
|
||||||
|
set(CMAKE_OSX_ARCHITECTURES "arm64")
|
||||||
|
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO")
|
||||||
|
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "")
|
||||||
|
set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES")
|
||||||
|
endif()
|
||||||
|
|
||||||
# App Bundle
|
# App Bundle
|
||||||
|
|
||||||
add_executable(AppBundle MACOSX_BUNDLE main.m)
|
add_executable(AppBundle MACOSX_BUNDLE main.m)
|
||||||
@ -35,11 +51,13 @@ endif()
|
|||||||
|
|
||||||
# Bundle
|
# Bundle
|
||||||
|
|
||||||
add_library(Bundle MODULE main.c)
|
if(NOT CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE)
|
||||||
set_target_properties(Bundle PROPERTIES BUNDLE TRUE)
|
add_library(Bundle MODULE main.c)
|
||||||
|
set_target_properties(Bundle PROPERTIES BUNDLE TRUE)
|
||||||
|
|
||||||
add_custom_target(BundleTest ALL
|
add_custom_target(BundleTest ALL
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
"$<TARGET_FILE:Bundle>" "$<TARGET_FILE:Bundle>.old")
|
"$<TARGET_FILE:Bundle>" "$<TARGET_FILE:Bundle>.old")
|
||||||
|
|
||||||
add_dependencies(BundleTest Bundle)
|
add_dependencies(BundleTest Bundle)
|
||||||
|
endif()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user