STYLE: don't load CMakeDetermineSystem and CMakeSystemSpecific directly from
cmCTestScriptHandler, but have it load the new script CTestScriptMode.cmake -> that makes it more flexible, also add a simple test that the system name has been determined correctly Alex
This commit is contained in:
parent
2a750cacd6
commit
7048373296
|
@ -0,0 +1,10 @@
|
|||
# This file is read by ctest in script mode (-S)
|
||||
|
||||
# Determine the current system, so this information can be used
|
||||
# in ctest scripts
|
||||
include(CMakeDetermineSystem)
|
||||
|
||||
# Also load the system specific file, which sets up e.g. the search paths.
|
||||
# This makes the FIND_XXX() calls work much better
|
||||
include(CMakeSystemSpecificInformation)
|
||||
|
|
@ -418,12 +418,13 @@ int cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg)
|
|||
this->Makefile->AddFunctionBlocker(f);
|
||||
|
||||
|
||||
/* Execute CMakeDetermineSystem and CMakeSystemSpecificInformation, so
|
||||
/* Execute CTestScriptMode.cmake, which loads CMakeDetermineSystem and
|
||||
CMakeSystemSpecificInformation, so
|
||||
that variables like CMAKE_SYSTEM and also the search paths for libraries,
|
||||
header and executables are set correctly and can be used. Makes new-style
|
||||
ctest scripting easier. */
|
||||
std::string systemFile =
|
||||
this->Makefile->GetModulesFile("CMakeDetermineSystem.cmake");
|
||||
this->Makefile->GetModulesFile("CTestScriptMode.cmake");
|
||||
if (!this->Makefile->ReadListFile(0, systemFile.c_str()) ||
|
||||
cmSystemTools::GetErrorOccuredFlag())
|
||||
{
|
||||
|
@ -432,16 +433,6 @@ int cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg)
|
|||
return 2;
|
||||
}
|
||||
|
||||
systemFile =
|
||||
this->Makefile->GetModulesFile("CMakeSystemSpecificInformation.cmake");
|
||||
if (!this->Makefile->ReadListFile(0, systemFile.c_str()) ||
|
||||
cmSystemTools::GetErrorOccuredFlag())
|
||||
{
|
||||
cmCTestLog(this->CTest, ERROR_MESSAGE, "Error in read:"
|
||||
<< systemFile.c_str() << "\n");
|
||||
return 2;
|
||||
}
|
||||
|
||||
// finally read in the script
|
||||
if (!this->Makefile->ReadListFile(0, script.c_str()) ||
|
||||
cmSystemTools::GetErrorOccuredFlag())
|
||||
|
@ -966,7 +957,8 @@ int cmCTestScriptHandler::RunConfigurationDashboard()
|
|||
}
|
||||
cmCTestLog(this->CTest, ERROR_MESSAGE,
|
||||
"Unable to run ctest:" << std::endl
|
||||
<< output.c_str() << std::endl);
|
||||
<< "command: " << command.c_str() << std::endl
|
||||
<< "output: " << output.c_str() << std::endl);
|
||||
if (!res)
|
||||
{
|
||||
return 11;
|
||||
|
|
|
@ -877,6 +877,13 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel
|
|||
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BundleGeneratorTest")
|
||||
ENDIF(APPLE AND CTEST_TEST_CPACK)
|
||||
|
||||
# A simple test for ctest in script mode
|
||||
CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestScriptMode/CTestTestScriptMode.cmake.in"
|
||||
"${CMake_BINARY_DIR}/Tests/CTestScriptMode/CTestTestScriptMode.cmake" @ONLY)
|
||||
ADD_TEST(CTest.ScriptMode ${CMAKE_CTEST_COMMAND}
|
||||
-S "${CMake_BINARY_DIR}/Tests/CTestScriptMode/CTestTestScriptMode.cmake"
|
||||
)
|
||||
|
||||
SET(CTEST_TEST_UPDATE 1)
|
||||
IF(CTEST_TEST_UPDATE)
|
||||
# Test CTest Update with Subversion
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
# This script will be executed with ctest -S
|
||||
|
||||
# Check that the system name is determined correctly:
|
||||
set(CMAKE_CMAKE_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@")
|
||||
|
||||
if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "${CMAKE_CMAKE_SYSTEM_NAME}")
|
||||
message(FATAL_ERROR "Error: CMAKE_SYSTEM_NAME is \"${CMAKE_SYSTEM_NAME}\", but should be \"@CMAKE_SYSTEM_NAME@\"")
|
||||
endif(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "${CMAKE_CMAKE_SYSTEM_NAME}")
|
||||
|
||||
# this seems to be necessary, otherwise ctest complains that these
|
||||
# variables are not set:
|
||||
set(CTEST_COMMAND "\"@CMAKE_CTEST_COMMAND@\"")
|
||||
set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestScriptMode/")
|
||||
set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestScriptMode/")
|
Loading…
Reference in New Issue