summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CompileDefinitions
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2022-12-08 13:52:56 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2022-12-13 15:54:56 (GMT)
commit7480fa0a5fd0ebc3fe06c702f3368e06a50c10ab (patch)
tree1b2e7a5a5a2a6297a763385535c233817f53d5e8 /Tests/RunCMake/CompileDefinitions
parentff875ed8591afdb87055b8e43b1fcd04438a4d1e (diff)
downloadCMake-7480fa0a5fd0ebc3fe06c702f3368e06a50c10ab.zip
CMake-7480fa0a5fd0ebc3fe06c702f3368e06a50c10ab.tar.gz
CMake-7480fa0a5fd0ebc3fe06c702f3368e06a50c10ab.tar.bz2
COMPILE_DEFINITIONS property: ensure leading -D is removed in all cases
Fixes: #24186
Diffstat (limited to 'Tests/RunCMake/CompileDefinitions')
-rw-r--r--Tests/RunCMake/CompileDefinitions/RemoveLeadingMinusD.cmake11
-rw-r--r--Tests/RunCMake/CompileDefinitions/RunCMakeTest.cmake13
-rw-r--r--Tests/RunCMake/CompileDefinitions/foo.c4
3 files changed, 28 insertions, 0 deletions
diff --git a/Tests/RunCMake/CompileDefinitions/RemoveLeadingMinusD.cmake b/Tests/RunCMake/CompileDefinitions/RemoveLeadingMinusD.cmake
new file mode 100644
index 0000000..3db6cff1f
--- /dev/null
+++ b/Tests/RunCMake/CompileDefinitions/RemoveLeadingMinusD.cmake
@@ -0,0 +1,11 @@
+
+enable_language(C)
+
+set_property(SOURCE foo.c PROPERTY COMPILE_DEFINITIONS -DDEF0 "$<1:-DDEF1>")
+
+add_library(lib1 foo.c)
+set_property(TARGET lib1 PROPERTY COMPILE_DEFINITIONS -DDEF2 "$<1:-DDEF3>")
+set_property(TARGET lib1 PROPERTY INTERFACE_COMPILE_DEFINITIONS -DDEF4 "$<1:-DDEF5>")
+
+add_library(lib2 foo.c)
+target_link_libraries(lib2 PRIVATE lib1)
diff --git a/Tests/RunCMake/CompileDefinitions/RunCMakeTest.cmake b/Tests/RunCMake/CompileDefinitions/RunCMakeTest.cmake
index 233fe34..eebcd22 100644
--- a/Tests/RunCMake/CompileDefinitions/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CompileDefinitions/RunCMakeTest.cmake
@@ -1,3 +1,16 @@
include(RunCMake)
run_cmake(SetEmpty)
+
+
+macro(run_cmake_build test)
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build)
+ set(RunCMake_TEST_NO_CLEAN 1)
+ run_cmake_command(${test} ${CMAKE_COMMAND} --build . --config Release)
+
+ unset(RunCMake_TEST_BINARY_DIR)
+ unset(RunCMake_TEST_NO_CLEAN)
+endmacro()
+
+run_cmake(RemoveLeadingMinusD)
+run_cmake_build(RemoveLeadingMinusD)
diff --git a/Tests/RunCMake/CompileDefinitions/foo.c b/Tests/RunCMake/CompileDefinitions/foo.c
new file mode 100644
index 0000000..74a86e1
--- /dev/null
+++ b/Tests/RunCMake/CompileDefinitions/foo.c
@@ -0,0 +1,4 @@
+
+void foo()
+{
+}