ソースを参照

Tests: Add case covering XCODE_EMIT_EFFECTIVE_PLATFORM_NAME=OFF for iOS

This use case was fixed by commit a7fb4bc475 (Xcode: Set build product
locations using CONFIGURATION_BUILD_DIR, 2022-09-28).  Add a test to
verify the fix.

Fixes: #23970
Brad King 3 年 前
コミット
25630863ea

+ 12 - 0
Tests/RunCMake/XcodeProject/EffectivePlatformNameOFF.cmake

@@ -0,0 +1,12 @@
+enable_language(CXX)
+
+set_property(GLOBAL PROPERTY XCODE_EMIT_EFFECTIVE_PLATFORM_NAME OFF)
+
+set(CMAKE_MACOSX_BUNDLE true)
+
+add_library(library STATIC foo.cpp)
+
+add_executable(main main.cpp)
+target_link_libraries(main library)
+
+install(TARGETS library ARCHIVE DESTINATION lib)

+ 18 - 0
Tests/RunCMake/XcodeProject/RunCMakeTest.cmake

@@ -354,6 +354,7 @@ if(XCODE_VERSION VERSION_GREATER_EQUAL 6)
 endif()
 
 if(NOT XCODE_VERSION VERSION_LESS 5)
+  # XcodeMultiplatform
   set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeMultiplatform-build)
   set(RunCMake_TEST_NO_CLEAN 1)
   set(RunCMake_TEST_OPTIONS "${IOS_DEPLOYMENT_TARGET}")
@@ -373,6 +374,23 @@ if(NOT XCODE_VERSION VERSION_LESS 5)
   unset(RunCMake_TEST_BINARY_DIR)
   unset(RunCMake_TEST_NO_CLEAN)
   unset(RunCMake_TEST_OPTIONS)
+
+  # EffectivePlatformNameOFF
+  set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/EffectivePlatformNameOFF-build)
+  set(RunCMake_TEST_NO_CLEAN 1)
+  set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=iOS" "-DCMAKE_OSX_SYSROOT=iphonesimulator")
+
+  file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
+  file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
+
+  run_cmake(EffectivePlatformNameOFF)
+
+  run_cmake_command(EffectivePlatformNameOFF-iphonesimulator-build ${CMAKE_COMMAND} --build .)
+  run_cmake_command(EffectivePlatformNameOFF-iphonesimulator-install ${CMAKE_COMMAND} --build . --target install -- DESTDIR=${RunCMake_TEST_BINARY_DIR}/_install_iphonesimulator)
+
+  unset(RunCMake_TEST_BINARY_DIR)
+  unset(RunCMake_TEST_NO_CLEAN)
+  unset(RunCMake_TEST_OPTIONS)
 endif()
 
 if(XCODE_VERSION VERSION_GREATER_EQUAL 8)