diff options
author | Brad King <brad.king@kitware.com> | 2010-12-21 19:03:24 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2010-12-21 19:03:24 (GMT) |
commit | 31b0657e7d4bab3e6c5a00c1318d1c231d8ab44b (patch) | |
tree | 5f16dfb9e9d73794a6c791147a6614b8e5492e2a /Tests | |
parent | 533f5a20372829aa41a71ed4698cac2a50820a7e (diff) | |
parent | 4499d50ad2df7c1db4335d40f9fa20c642f59a5d (diff) | |
download | CMake-31b0657e7d4bab3e6c5a00c1318d1c231d8ab44b.zip CMake-31b0657e7d4bab3e6c5a00c1318d1c231d8ab44b.tar.gz CMake-31b0657e7d4bab3e6c5a00c1318d1c231d8ab44b.tar.bz2 |
Merge topic 'custom-command-generator-expressions'
4499d50 Mark CustomCommand test perconfig.out as SYMBOLIC
f0cdb60 Introduce "generator expression" syntax to custom commands (#11209)
4749e4c Record set of targets used in cmGeneratorExpression
ef9e9de Optionally suppress errors in cmGeneratorExpression
45e1953 Factor per-config sample targets out of 'Testing' test
4091bca Factor generator expression docs out of add_test
bfb7288 Record backtrace in cmCustomCommand
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CustomCommand/CMakeLists.txt | 13 | ||||
-rw-r--r-- | Tests/PerConfig/CMakeLists.txt | 34 | ||||
-rw-r--r-- | Tests/PerConfig/pcShared.c (renamed from Tests/Testing/pcShared.c) | 0 | ||||
-rw-r--r-- | Tests/PerConfig/pcShared.h (renamed from Tests/Testing/pcShared.h) | 0 | ||||
-rw-r--r-- | Tests/PerConfig/pcStatic.c (renamed from Tests/Testing/pcStatic.c) | 0 | ||||
-rw-r--r-- | Tests/PerConfig/perconfig.c (renamed from Tests/Testing/perconfig.c) | 0 | ||||
-rw-r--r-- | Tests/PerConfig/perconfig.cmake (renamed from Tests/Testing/driver.cmake) | 2 | ||||
-rw-r--r-- | Tests/Testing/CMakeLists.txt | 34 |
8 files changed, 51 insertions, 32 deletions
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt index 13f4233..19e3c2c 100644 --- a/Tests/CustomCommand/CMakeLists.txt +++ b/Tests/CustomCommand/CMakeLists.txt @@ -423,3 +423,16 @@ 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 + ) +SET_PROPERTY(SOURCE perconfig.out PROPERTY SYMBOLIC 1) +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 new file mode 100644 index 0000000..7b7bf2e --- /dev/null +++ b/Tests/PerConfig/CMakeLists.txt @@ -0,0 +1,34 @@ +project(PerConfig C) + +# Targets with per-configuration names. +ADD_LIBRARY(pcStatic STATIC pcStatic.c) +SET_PROPERTY(TARGET pcStatic PROPERTY RELEASE_POSTFIX -opt) +SET_PROPERTY(TARGET pcStatic PROPERTY DEBUG_POSTFIX -dbg) +ADD_LIBRARY(pcShared SHARED pcShared.c) +SET_PROPERTY(TARGET pcShared PROPERTY RELEASE_POSTFIX -opt) +SET_PROPERTY(TARGET pcShared PROPERTY DEBUG_POSTFIX -dbg) +SET_PROPERTY(TARGET pcShared PROPERTY VERSION 1.2) +SET_PROPERTY(TARGET pcShared PROPERTY SOVERSION 3) +IF(NOT WIN32) + SET(soname_file -DpcShared_soname_file=$<TARGET_SONAME_FILE:pcShared>) +ENDIF() +ADD_EXECUTABLE(perconfig perconfig.c) +TARGET_LINK_LIBRARIES(perconfig pcStatic pcShared) +SET_PROPERTY(TARGET perconfig PROPERTY RELEASE_POSTFIX -opt) +SET_PROPERTY(TARGET perconfig PROPERTY DEBUG_POSTFIX -dbg) + +SET(PerConfig_COMMAND + ${CMAKE_COMMAND} + -Dconfiguration=$<CONFIGURATION> + -Dperconfig_file_dir=$<TARGET_FILE_DIR:perconfig> + -Dperconfig_file_name=$<TARGET_FILE_NAME:perconfig> + -Dperconfig_file=$<TARGET_FILE:perconfig> + -DpcStatic_file=$<TARGET_FILE:pcStatic> + -DpcStatic_linker_file=$<TARGET_LINKER_FILE:pcStatic> + -DpcShared_file=$<TARGET_FILE:pcShared> + -DpcShared_linker_file=$<TARGET_LINKER_FILE:pcShared> + ${soname_file} + -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/Testing/pcShared.c b/Tests/PerConfig/pcShared.c index b08fadc..b08fadc 100644 --- a/Tests/Testing/pcShared.c +++ b/Tests/PerConfig/pcShared.c diff --git a/Tests/Testing/pcShared.h b/Tests/PerConfig/pcShared.h index 59a6ef4..59a6ef4 100644 --- a/Tests/Testing/pcShared.h +++ b/Tests/PerConfig/pcShared.h diff --git a/Tests/Testing/pcStatic.c b/Tests/PerConfig/pcStatic.c index 7e1bf51..7e1bf51 100644 --- a/Tests/Testing/pcStatic.c +++ b/Tests/PerConfig/pcStatic.c diff --git a/Tests/Testing/perconfig.c b/Tests/PerConfig/perconfig.c index d942d45..d942d45 100644 --- a/Tests/Testing/perconfig.c +++ b/Tests/PerConfig/perconfig.c diff --git a/Tests/Testing/driver.cmake b/Tests/PerConfig/perconfig.cmake index 4a93acc..6a710ca 100644 --- a/Tests/Testing/driver.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. diff --git a/Tests/Testing/CMakeLists.txt b/Tests/Testing/CMakeLists.txt index f857407..815b52b 100644 --- a/Tests/Testing/CMakeLists.txt +++ b/Tests/Testing/CMakeLists.txt @@ -53,35 +53,7 @@ ADD_TEST(testing.1 ${Testing_BINARY_DIR}/bin/testing) # ADD_SUBDIRECTORY(Sub/Sub2) -# Per-config target name test. -ADD_LIBRARY(pcStatic STATIC pcStatic.c) -SET_PROPERTY(TARGET pcStatic PROPERTY RELEASE_POSTFIX -opt) -SET_PROPERTY(TARGET pcStatic PROPERTY DEBUG_POSTFIX -dbg) -ADD_LIBRARY(pcShared SHARED pcShared.c) -SET_PROPERTY(TARGET pcShared PROPERTY RELEASE_POSTFIX -opt) -SET_PROPERTY(TARGET pcShared PROPERTY DEBUG_POSTFIX -dbg) -SET_PROPERTY(TARGET pcShared PROPERTY VERSION 1.2) -SET_PROPERTY(TARGET pcShared PROPERTY SOVERSION 3) -IF(NOT WIN32) - SET(soname_file -DpcShared_soname_file=$<TARGET_SONAME_FILE:pcShared>) -ENDIF() -ADD_EXECUTABLE(perconfig perconfig.c) -TARGET_LINK_LIBRARIES(perconfig pcStatic pcShared) -SET_PROPERTY(TARGET perconfig PROPERTY RELEASE_POSTFIX -opt) -SET_PROPERTY(TARGET perconfig PROPERTY DEBUG_POSTFIX -dbg) +# Per-config target name and generator expressions. +ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../PerConfig PerConfig) ADD_TEST(NAME testing.perconfig COMMAND perconfig) - -# Test using a driver script with generator expressions. -ADD_TEST(NAME testing.driver - COMMAND ${CMAKE_COMMAND} - -Dconfiguration=$<CONFIGURATION> - -Dperconfig_file_dir=$<TARGET_FILE_DIR:perconfig> - -Dperconfig_file_name=$<TARGET_FILE_NAME:perconfig> - -Dperconfig_file=$<TARGET_FILE:perconfig> - -DpcStatic_file=$<TARGET_FILE:pcStatic> - -DpcStatic_linker_file=$<TARGET_LINKER_FILE:pcStatic> - -DpcShared_file=$<TARGET_FILE:pcShared> - -DpcShared_linker_file=$<TARGET_LINKER_FILE:pcShared> - ${soname_file} - -P ${Testing_SOURCE_DIR}/driver.cmake - ) +ADD_TEST(NAME testing.driver COMMAND ${PerConfig_COMMAND}) |