summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Tests/CMakeLists.txt14
-rw-r--r--Tests/EnforceConfig.cmake15
-rw-r--r--Tests/EnforceConfig.cmake.in29
3 files changed, 36 insertions, 22 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 71dfb0d38b..ca87201905 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -14,9 +14,11 @@ MACRO(ADD_TEST_MACRO NAME COMMAND)
ENDMACRO(ADD_TEST_MACRO)
# Make sure the 'testing' test gets a proper configuration.
-#SET_DIRECTORY_PROPERTIES(PROPERTIES
-# TEST_INCLUDE_FILE "${CMake_SOURCE_DIR}/Tests/EnforceConfig.cmake"
-# )
+CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/EnforceConfig.cmake.in
+ ${CMake_BINARY_DIR}/Tests/EnforceConfig.cmake @ONLY)
+SET_DIRECTORY_PROPERTIES(PROPERTIES
+ TEST_INCLUDE_FILE "${CMake_BINARY_DIR}/Tests/EnforceConfig.cmake"
+ )
# Testing
IF(BUILD_TESTING)
@@ -542,16 +544,14 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel
ENDFOREACH(STP)
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Tutorial")
- ADD_TEST(testing ${CMAKE_CTEST_COMMAND} # -C \${CTEST_CONFIGURATION_TYPE}
+ ADD_TEST(testing ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Testing"
"${CMake_BINARY_DIR}/Tests/Testing"
--build-generator ${CMAKE_TEST_GENERATOR}
--build-project Testing
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
- #--test-command ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
- --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
- --test-command testing
+ --test-command ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
)
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Testing")
diff --git a/Tests/EnforceConfig.cmake b/Tests/EnforceConfig.cmake
deleted file mode 100644
index 82b9c8785f..0000000000
--- a/Tests/EnforceConfig.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-# Older versions of CMake do not support an empty configuration name in
-# CTEST_CONFIGURATION_TYPE for the 'testing' test.
-SET(CONFIG_REQUIRED)
-IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
- SET(CONFIG_REQUIRED 1)
-ELSE("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
- IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL 2.6)
- IF("${CMAKE_PATCH_VERSION}" LESS 3)
- SET(CONFIG_REQUIRED 1)
- ENDIF("${CMAKE_PATCH_VERSION}" LESS 3)
- ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL 2.6)
-ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
-IF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED)
- SET(CTEST_CONFIGURATION_TYPE Debug)
-ENDIF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED)
diff --git a/Tests/EnforceConfig.cmake.in b/Tests/EnforceConfig.cmake.in
new file mode 100644
index 0000000000..c10d2a3193
--- /dev/null
+++ b/Tests/EnforceConfig.cmake.in
@@ -0,0 +1,29 @@
+# Older versions of CMake do not support an empty configuration name in
+# CTEST_CONFIGURATION_TYPE for the 'testing' test.
+SET(CONFIG_REQUIRED)
+IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
+ SET(CONFIG_REQUIRED 1)
+ELSE("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
+ IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL 2.6)
+ IF("${CMAKE_PATCH_VERSION}" LESS 3)
+ SET(CONFIG_REQUIRED 1)
+ ENDIF("${CMAKE_PATCH_VERSION}" LESS 3)
+ ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL 2.6)
+ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
+
+IF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED)
+ SET(CTEST_CMD "@CMAKE_CTEST_COMMAND@@CMAKE_EXECUTABLE_SUFFIX@")
+ GET_FILENAME_COMPONENT(CTEST_DIR "${CTEST_CMD}" PATH)
+ GET_FILENAME_COMPONENT(CTEST_EXE "${CTEST_CMD}" NAME)
+ FOREACH(cfg Release Debug MinSizeRel RelWithDebInfo)
+ IF(NOT CTEST_CONFIGURATION_TYPE)
+ IF(EXISTS "${CTEST_DIR}/${cfg}/${CTEST_EXE}")
+ SET(CTEST_CONFIGURATION_TYPE ${cfg})
+ ENDIF(EXISTS "${CTEST_DIR}/${cfg}/${CTEST_EXE}")
+ ENDIF(NOT CTEST_CONFIGURATION_TYPE)
+ ENDFOREACH(cfg)
+ IF(NOT CTEST_CONFIGURATION_TYPE)
+ SET(CTEST_CONFIGURATION_TYPE NoConfig)
+ ENDIF(NOT CTEST_CONFIGURATION_TYPE)
+ MESSAGE("Guessing configuration ${CTEST_CONFIGURATION_TYPE}")
+ENDIF(NOT CTEST_CONFIGURATION_TYPE AND CONFIG_REQUIRED)