Merge topic 'ExternalData-spaces'
55f0148
ExternalData: Test content link with a space in its named45eb35
Tests: Generalize decision for 'make' tool supporting spacesef8b2fd
Tests: Replace exec_program with execute_process
This commit is contained in:
commit
05e1b3c17d
|
@ -50,6 +50,26 @@ if(BUILD_TESTING)
|
|||
set(TEST_CompileCommandOutput 1)
|
||||
endif()
|
||||
|
||||
set(MAKE_IS_GNU )
|
||||
if(${CMAKE_TEST_MAKEPROGRAM} MATCHES make)
|
||||
execute_process(COMMAND ${CMAKE_TEST_MAKEPROGRAM} no_such_target --version
|
||||
RESULT_VARIABLE res OUTPUT_VARIABLE out ERROR_VARIABLE out)
|
||||
if("${res}" STREQUAL "0")
|
||||
if("${out}" MATCHES "GNU")
|
||||
set(MAKE_IS_GNU 1)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# some old versions of make simply cannot handle spaces in paths
|
||||
if (MAKE_IS_GNU OR
|
||||
"${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR
|
||||
"${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland")
|
||||
set(MAKE_SUPPORTS_SPACES 1)
|
||||
else()
|
||||
set(MAKE_SUPPORTS_SPACES 0)
|
||||
endif()
|
||||
|
||||
set(build_generator_args
|
||||
--build-generator ${CMAKE_TEST_GENERATOR}
|
||||
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
|
||||
|
@ -327,6 +347,7 @@ if(BUILD_TESTING)
|
|||
--build-project ExternalDataTest
|
||||
--build-noclean
|
||||
--force-new-ctest-process
|
||||
--build-options -DMAKE_SUPPORTS_SPACES=${MAKE_SUPPORTS_SPACES}
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE} -V
|
||||
)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Module/ExternalData")
|
||||
|
@ -384,7 +405,8 @@ if(BUILD_TESTING)
|
|||
# mainly it tests that cmake doesn't crash when generating these project files.
|
||||
if(${CMAKE_TEST_GENERATOR} MATCHES "Unix Makefiles" OR ${CMAKE_TEST_GENERATOR} MATCHES "KDevelop")
|
||||
# check which generators we have
|
||||
exec_program(${CMAKE_CMAKE_COMMAND} ARGS --help OUTPUT_VARIABLE cmakeOutput )
|
||||
execute_process(COMMAND ${CMAKE_CMAKE_COMMAND} --help
|
||||
OUTPUT_VARIABLE cmakeOutput ERROR_VARIABLE cmakeOutput)
|
||||
# check for the Eclipse generator
|
||||
if ("${cmakeOutput}" MATCHES Eclipse)
|
||||
add_test(Simple_EclipseGenerator ${CMAKE_CTEST_COMMAND}
|
||||
|
@ -1237,24 +1259,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/kwsys")
|
||||
endif()
|
||||
set(MAKE_IS_GNU )
|
||||
if(${CMAKE_TEST_MAKEPROGRAM} MATCHES make)
|
||||
exec_program(
|
||||
${CMAKE_TEST_MAKEPROGRAM} ARGS no_such_target --version
|
||||
RETURN_VALUE res OUTPUT_VARIABLE out
|
||||
)
|
||||
if("${res}" EQUAL 0)
|
||||
if("${out}" MATCHES "GNU")
|
||||
set(MAKE_IS_GNU 1)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# only add this test on platforms that support it
|
||||
# some old versions of make simply cannot handle spaces in paths
|
||||
if (MAKE_IS_GNU OR
|
||||
"${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR
|
||||
"${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland")
|
||||
if(MAKE_SUPPORTS_SPACES)
|
||||
add_test(SubDirSpaces ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/SubDirSpaces"
|
||||
|
@ -2397,7 +2403,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
|||
|
||||
if(TEST_CompileCommandOutput)
|
||||
set(CompileCommandOutput_EXTRA_OPTIONS
|
||||
--build-options -DMAKE_SUPPORTS_SPACES=${MAKE_IS_GNU})
|
||||
--build-options -DMAKE_SUPPORTS_SPACES=${MAKE_SUPPORTS_SPACES})
|
||||
ADD_TEST_MACRO(CompileCommandOutput
|
||||
"${CMake_BINARY_DIR}/Tests/CMakeLib/runcompilecommands")
|
||||
endif()
|
||||
|
|
|
@ -14,10 +14,15 @@ set(ExternalData_URL_TEMPLATES
|
|||
set(ExternalData_BINARY_ROOT "${CMAKE_CURRENT_BINARY_DIR}/ExternalData")
|
||||
file(REMOVE_RECURSE ${ExternalData_BINARY_ROOT}) # clean test
|
||||
|
||||
if(MAKE_SUPPORTS_SPACES)
|
||||
set(Data1CheckSpaces -D "DataSpace=DATA{Data Space.dat}")
|
||||
endif()
|
||||
|
||||
ExternalData_Add_Test(Data1
|
||||
NAME Data1Check
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D Data=DATA{Data.dat}
|
||||
${Data1CheckSpaces}
|
||||
-D SeriesA=DATA{SeriesA.dat,:}
|
||||
-D SeriesB=DATA{SeriesB.dat,:}
|
||||
-D SeriesC=DATA{SeriesC.dat,:}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
8c018830e3efa5caf3c7415028335a57
|
|
@ -2,6 +2,12 @@ file(STRINGS "${Data}" lines LIMIT_INPUT 1024)
|
|||
if(NOT "x${lines}" STREQUAL "xInput file already transformed.")
|
||||
message(SEND_ERROR "Input file:\n ${Data}\ndoes not have expected content, but [[${lines}]]")
|
||||
endif()
|
||||
if(DEFINED DataSpace)
|
||||
file(STRINGS "${DataSpace}" lines LIMIT_INPUT 1024)
|
||||
if(NOT "x${lines}" STREQUAL "xInput file already transformed.")
|
||||
message(SEND_ERROR "Input file:\n ${DataSpace}\ndoes not have expected content, but [[${lines}]]")
|
||||
endif()
|
||||
endif()
|
||||
set(SeriesAn1 "1\\.dat")
|
||||
set(SeriesBn1 "_1\\.dat")
|
||||
set(SeriesCn1 "\\.1\\.dat")
|
||||
|
|
Loading…
Reference in New Issue