summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-04-05 12:24:19 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-04-05 12:24:28 (GMT)
commiteea53ea0a919b3c3f444433106ef578fcc429e5f (patch)
tree80b067a8bb001cb95d3b412882a913c41566b5e9 /Tests
parent7e1095751f560d0ffcd7adf22946b5166c61a49f (diff)
parent53ca6edd8aefcb6456755f2de48d2d1375d6df7f (diff)
downloadCMake-eea53ea0a919b3c3f444433106ef578fcc429e5f.zip
CMake-eea53ea0a919b3c3f444433106ef578fcc429e5f.tar.gz
CMake-eea53ea0a919b3c3f444433106ef578fcc429e5f.tar.bz2
Merge topic 'xcode-xcconfig'
53ca6edd8a xcode: add support for xcconfig files 183b6bbf51 Tests: Ignore all classes in Xcode internal objc warnings Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7119
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/RunCMake.cmake2
-rw-r--r--Tests/RunCMake/XcodeProject/RunCMakeTest.cmake10
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeXCConfig.c20
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeXCConfig.cmake11
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeXCConfig.global.debug.xcconfig1
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeXCConfig.global.release.xcconfig1
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeXCConfig.target.debug.xcconfig1
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeXCConfig.target.release.xcconfig1
8 files changed, 46 insertions, 1 deletions
diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake
index 1f43ee0..f232b1b 100644
--- a/Tests/RunCMake/RunCMake.cmake
+++ b/Tests/RunCMake/RunCMake.cmake
@@ -167,7 +167,7 @@ function(run_cmake test)
"|[^\n]*xcodebuild[^\n]*DVTPlugInManager"
"|[^\n]*xcodebuild[^\n]*Requested but did not find extension point with identifier"
"|[^\n]*xcodebuild[^\n]*warning: file type[^\n]*is based on missing file type"
- "|[^\n]*objc[^\n]*: Class AMSupportURL[^\n]* One of the two will be used. Which one is undefined."
+ "|[^\n]*objc[^\n]*: Class [^\n]* One of the two will be used. Which one is undefined."
"|[^\n]*is a member of multiple groups"
"|[^\n]*offset in archive not a multiple of 8"
"|[^\n]*from Time Machine by path"
diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
index fa26c3d..80c6b73 100644
--- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
+++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake
@@ -141,6 +141,16 @@ endfunction()
XcodeRemoveExcessiveISystem()
+function(XcodeXCConfig)
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeXCConfig-build)
+ run_cmake(XcodeXCConfig)
+ set(RunCMake_TEST_NO_CLEAN 1)
+ run_cmake_command(XcodeXCConfig-build ${CMAKE_COMMAND} --build . --config Debug)
+ run_cmake_command(XcodeXCConfig-build ${CMAKE_COMMAND} --build . --config Release)
+endfunction()
+
+XcodeXCConfig()
+
# Isolate device tests from host architecture selection.
unset(ENV{CMAKE_OSX_ARCHITECTURES})
diff --git a/Tests/RunCMake/XcodeProject/XcodeXCConfig.c b/Tests/RunCMake/XcodeProject/XcodeXCConfig.c
new file mode 100644
index 0000000..ac59a6b
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeXCConfig.c
@@ -0,0 +1,20 @@
+#ifndef BUILD_DEBUG
+# error BUILD_DEBUG is undefined
+#endif
+#ifndef GLOBAL_DEBUG
+# error GLOBAL_DEBUG is undefined
+#endif
+#ifndef TARGET_DEBUG
+# error TARGET_DEBUG is undefined
+#endif
+
+#if GLOBAL_DEBUG != BUILD_DEBUG
+# error GLOBAL_DEBUG does not match BUILD_DEBUG
+#endif
+#if TARGET_DEBUG != BUILD_DEBUG
+# error TARGET_DEBUG does not match BUILD_DEBUG
+#endif
+
+void some_symbol()
+{
+}
diff --git a/Tests/RunCMake/XcodeProject/XcodeXCConfig.cmake b/Tests/RunCMake/XcodeProject/XcodeXCConfig.cmake
new file mode 100644
index 0000000..58d2616
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeXCConfig.cmake
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 3.23)
+
+project(XcodeXCConfig C)
+
+set(CMAKE_XCODE_XCCONFIG "$<IF:$<CONFIG:Debug>,XcodeXCConfig.global.debug.xcconfig,XcodeXCConfig.global.release.xcconfig>")
+
+add_library(somelib XcodeXCConfig.c)
+target_compile_definitions(somelib PUBLIC "BUILD_DEBUG=$<IF:$<CONFIG:Debug>,1,0>")
+set_target_properties(somelib PROPERTIES
+ XCODE_XCCONFIG "$<IF:$<CONFIG:Debug>,XcodeXCConfig.target.debug.xcconfig,XcodeXCConfig.target.release.xcconfig>"
+)
diff --git a/Tests/RunCMake/XcodeProject/XcodeXCConfig.global.debug.xcconfig b/Tests/RunCMake/XcodeProject/XcodeXCConfig.global.debug.xcconfig
new file mode 100644
index 0000000..6749095
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeXCConfig.global.debug.xcconfig
@@ -0,0 +1 @@
+OTHER_CFLAGS = $(inherited) -DGLOBAL_DEBUG=1
diff --git a/Tests/RunCMake/XcodeProject/XcodeXCConfig.global.release.xcconfig b/Tests/RunCMake/XcodeProject/XcodeXCConfig.global.release.xcconfig
new file mode 100644
index 0000000..6af304d
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeXCConfig.global.release.xcconfig
@@ -0,0 +1 @@
+OTHER_CFLAGS = $(inherited) -DGLOBAL_DEBUG=0
diff --git a/Tests/RunCMake/XcodeProject/XcodeXCConfig.target.debug.xcconfig b/Tests/RunCMake/XcodeProject/XcodeXCConfig.target.debug.xcconfig
new file mode 100644
index 0000000..731eba2
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeXCConfig.target.debug.xcconfig
@@ -0,0 +1 @@
+OTHER_CFLAGS = $(inherited) -DTARGET_DEBUG=1
diff --git a/Tests/RunCMake/XcodeProject/XcodeXCConfig.target.release.xcconfig b/Tests/RunCMake/XcodeProject/XcodeXCConfig.target.release.xcconfig
new file mode 100644
index 0000000..b98acb5
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeXCConfig.target.release.xcconfig
@@ -0,0 +1 @@
+OTHER_CFLAGS = $(inherited) -DTARGET_DEBUG=0