summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-12-08 21:13:07 (GMT)
committerBrad King <brad.king@kitware.com>2010-12-15 19:53:48 (GMT)
commitf0cdb6001b3e915fc0d9c1120165d49725440bbd (patch)
treea310c36370b6935d7458f70a61e3eada72ce8b08 /Tests
parent4749e4cb76cc1e23cb23f37ceec2e856a18218ce (diff)
downloadCMake-f0cdb6001b3e915fc0d9c1120165d49725440bbd.zip
CMake-f0cdb6001b3e915fc0d9c1120165d49725440bbd.tar.gz
CMake-f0cdb6001b3e915fc0d9c1120165d49725440bbd.tar.bz2
Introduce "generator expression" syntax to custom commands (#11209)
Evaluate in the COMMAND arguments of custom commands the generator expression syntax introduced in commit d2e1f2b4 (Introduce "generator expressions" to add_test, 2009-08-11). These expressions have a syntax like $<TARGET_FILE:mytarget> and are evaluated during build system generation. This syntax allows per-configuration target output files to be referenced in custom command lines.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/CustomCommand/CMakeLists.txt12
-rw-r--r--Tests/PerConfig/CMakeLists.txt1
-rw-r--r--Tests/PerConfig/perconfig.cmake2
3 files changed, 14 insertions, 1 deletions
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt
index 746c9a7..450323e 100644
--- a/Tests/CustomCommand/CMakeLists.txt
+++ b/Tests/CustomCommand/CMakeLists.txt
@@ -423,3 +423,15 @@ ADD_CUSTOM_TARGET(DifferentName ALL
)
#
# </SameNameTest>
+
+# Per-config target name and generator expressions.
+ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../PerConfig PerConfig)
+ADD_CUSTOM_COMMAND(
+ OUTPUT perconfig.out
+ COMMAND ${PerConfig_COMMAND}
+ DEPENDS ${PerConfig_DEPENDS}
+ VERBATIM
+ )
+ADD_CUSTOM_TARGET(perconfig_target ALL
+ COMMAND ${CMAKE_COMMAND} -E echo "perconfig=$<TARGET_FILE:perconfig>" "config=$<CONFIGURATION>"
+ DEPENDS perconfig.out)
diff --git a/Tests/PerConfig/CMakeLists.txt b/Tests/PerConfig/CMakeLists.txt
index a45abc8..7b7bf2e 100644
--- a/Tests/PerConfig/CMakeLists.txt
+++ b/Tests/PerConfig/CMakeLists.txt
@@ -31,3 +31,4 @@ SET(PerConfig_COMMAND
-P ${PerConfig_SOURCE_DIR}/perconfig.cmake
)
SET(PerConfig_COMMAND "${PerConfig_COMMAND}" PARENT_SCOPE)
+SET(PerConfig_DEPENDS ${PerConfig_SOURCE_DIR}/perconfig.cmake perconfig pcStatic pcShared)
diff --git a/Tests/PerConfig/perconfig.cmake b/Tests/PerConfig/perconfig.cmake
index 4a93acc..6a710ca 100644
--- a/Tests/PerConfig/perconfig.cmake
+++ b/Tests/PerConfig/perconfig.cmake
@@ -10,7 +10,7 @@ foreach(v
pcShared_linker_file
pcShared_soname_file
)
- message("${v}=${${v}}")
+ message(STATUS "${v}=${${v}}")
endforeach()
# Verify that file names match as expected.