summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/CMakeLists.txt')
-rw-r--r--Tests/CMakeLists.txt222
1 files changed, 121 insertions, 101 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index db6dbf3..9aa401d 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -206,6 +206,26 @@ if(BUILD_TESTING)
set(${reg} 0)
endif()
endforeach()
+ if(COMMAND cmake_host_system_information)
+ set(info_vs15 "VS_15_DIR")
+ set(info_vs16 "VS_16_DIR")
+ set(vs_versions)
+ if(WIN32)
+ if(NOT CMAKE_VERSION VERSION_LESS 3.14)
+ set(vs_versions vs15 vs16)
+ elseif(NOT CMAKE_VERSION VERSION_LESS 3.8)
+ set(vs_versions vs15)
+ endif()
+ endif()
+ foreach(info ${vs_versions})
+ cmake_host_system_information(RESULT found QUERY "${info_${info}}")
+ if(found)
+ set(${info} 1)
+ else()
+ set(${info} 0)
+ endif()
+ endforeach()
+ endif()
endif()
#---------------------------------------------------------------------------
@@ -420,6 +440,10 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(CSharpOnly CSharpOnly)
ADD_TEST_MACRO(CSharpLinkToCxx CSharpLinkToCxx)
ADD_TEST_MACRO(CSharpLinkFromCxx CSharpLinkFromCxx)
+ ADD_TEST_MACRO(CSharpWin32GenEx CSharpWin32GenEx)
+ set_tests_properties(CSharpWin32GenEx PROPERTIES
+ PASS_REGULAR_EXPRESSION "Target \"CSharpWin32GenEx\" has a generator expression in its\n WIN32_EXECUTABLE property\\. This is not supported on managed executables\\."
+ )
endif()
ADD_TEST_MACRO(COnly COnly)
@@ -697,38 +721,28 @@ if(BUILD_TESTING)
# build the "Simple" test with the ExtraGenerators, if available
# This doesn't test whether the generated project files work (unfortunately),
# mainly it tests that cmake doesn't crash when generating these project files.
- if(${CMAKE_GENERATOR} MATCHES "Unix Makefiles" OR ${CMAKE_GENERATOR} MATCHES "Ninja")
-
- # check which generators we have
- execute_process(COMMAND ${CMAKE_CMAKE_COMMAND} --help
- OUTPUT_VARIABLE cmakeOutput ERROR_VARIABLE cmakeOutput)
-
- set(extraGenerators
- "CodeBlocks"
- "CodeLite"
- "Eclipse CDT4"
- "Kate"
- "Sublime Text 2")
-
- foreach(extraGenerator ${extraGenerators})
- if ("${cmakeOutput}" MATCHES "${extraGenerator} - ${CMAKE_GENERATOR}")
- set(extraGeneratorTestName "Simple_${extraGenerator}Generator")
- string(REPLACE " " "" extraGeneratorTestName ${extraGeneratorTestName})
-
- add_test(${extraGeneratorTestName} ${CMAKE_CTEST_COMMAND}
- --build-and-test
- "${CMake_SOURCE_DIR}/Tests/Simple"
- "${CMake_BINARY_DIR}/Tests/${extraGeneratorTestName}"
- --build-two-config
- --build-generator "${extraGenerator} - ${CMAKE_GENERATOR}"
- --build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
- --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
- --build-project Simple
- --test-command Simple)
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${extraGeneratorTestName}")
- endif ()
- endforeach(extraGenerator)
-
+ if(CMAKE_GENERATOR MATCHES "^(Unix Makefiles|Ninja)$"
+ AND NOT "${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+ foreach(extraGenerator
+ "CodeBlocks"
+ "CodeLite"
+ "Eclipse CDT4"
+ "Kate"
+ "Sublime Text 2"
+ )
+ string(REPLACE " " "" extraGeneratorTestName "Simple_${extraGenerator}Generator")
+ add_test(${extraGeneratorTestName} ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/Simple"
+ "${CMake_BINARY_DIR}/Tests/${extraGeneratorTestName}"
+ --build-two-config
+ --build-generator "${extraGenerator} - ${CMAKE_GENERATOR}"
+ --build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
+ --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
+ --build-project Simple
+ --test-command Simple)
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${extraGeneratorTestName}")
+ endforeach()
endif()
# test for correct sub-project generation
@@ -774,27 +788,6 @@ if(BUILD_TESTING)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SubProject")
endif()
- # macro to add a test that will build a nightly release
- # of CMake for given platform using the release scripts
- macro(ADD_NIGHTLY_BUILD_TEST name script)
- set(_TEST_DIR "${CMake_BINARY_DIR}/Tests/${name}")
- file(MAKE_DIRECTORY "${_TEST_DIR}")
- file(WRITE "${_TEST_DIR}/nightly-cmake.sh"
- "set -e
-cd ${_TEST_DIR}
-${CMake_BINARY_DIR}/bin/cmake -DCMAKE_CREATE_VERSION=nightly -P ${CMake_SOURCE_DIR}/Utilities/Release/${script}
-${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGHTLY_RELEASES}'
- ")
- add_test(${name} /bin/sh ${_TEST_DIR}/nightly-cmake.sh)
- if(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY)
- set_tests_properties (${name} PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
- endif()
- endmacro()
- if(CMake_BUILD_NIGHTLY_RELEASES)
- ADD_NIGHTLY_BUILD_TEST(CMakeNightlyOSX
- osx_release.cmake)
- endif()
-
# add tests with more complex invocations
add_test(Framework ${CMAKE_CTEST_COMMAND}
--build-and-test
@@ -1451,6 +1444,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
Patch
PostgreSQL
Protobuf
+ SDL
SQLite3
TIFF
Vulkan
@@ -1468,6 +1462,10 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
add_subdirectory(CudaOnly)
endif()
+ if(CMake_TEST_ISPC)
+ add_subdirectory(ISPC)
+ endif()
+
if(CMake_TEST_FindGTest)
add_subdirectory(FindGTest)
add_subdirectory(GoogleTest)
@@ -1635,7 +1633,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
set_tests_properties(${tutorial_test_name} PROPERTIES
PASS_REGULAR_EXPRESSION ${pass_regex})
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/${tutorial_build_dir}_Build")
+ list(APPEND TEST_BUILD_DIRS "${tutorial_build_dir}_Build")
endfunction()
if(NOT CMake_TEST_EXTERNAL_CMAKE)
@@ -1655,6 +1653,44 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
add_tutorial_test(Complete FALSE 25 ${pass_regex})
endif()
+ function(add_importexport_test export_name import_name)
+ set(install_dir
+ "${CMake_BINARY_DIR}/Tests/ImportExport/Install${export_name}")
+ set(export_build_dir "${CMake_BINARY_DIR}/Tests/ImportExport/${export_name}Build")
+ set(export_test_name "Guide.ImportExport.${export_name}")
+ add_test(${export_test_name} ${CMAKE_CTEST_COMMAND}
+ -C "Release"
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Help/guide/importing-exporting/${export_name}"
+ "${export_build_dir}"
+ ${build_generator_args}
+ --build-project ${export_name}
+ --build-target install
+ --build-options
+ "-DCMAKE_INSTALL_PREFIX:PATH=${install_dir}")
+ list(APPEND TEST_BUILD_DIRS "${export_build_dir}")
+
+ set(import_build_dir "${CMake_BINARY_DIR}/Tests/ImportExport/${import_name}Build")
+ set(import_test_name "Guide.ImportExport.${import_name}")
+ add_test(${import_test_name} ${CMAKE_CTEST_COMMAND}
+ -C "Release"
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Help/guide/importing-exporting/${import_name}"
+ "${import_build_dir}"
+ ${build_generator_args}
+ --build-project ${import_name}
+ --build-options
+ "-DCMAKE_PREFIX_PATH:PATH=${install_dir}/lib/cmake")
+ set_tests_properties(${import_test_name} PROPERTIES DEPENDS ${export_test_name})
+ list(APPEND TEST_BUILD_DIRS "${import_build_dir}")
+ endfunction()
+
+ if(NOT CMake_TEST_EXTERNAL_CMAKE)
+ add_importexport_test("MyExe" "Importing")
+ add_importexport_test("MathFunctions" "Downstream")
+ add_importexport_test("MathFunctionsComponents" "DownstreamComponents")
+ endif()
+
add_test(testing ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Testing"
@@ -2315,32 +2351,41 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
endforeach()
endif()
+ macro(add_test_VSAndroid name generator platform)
+ add_test(NAME "VSAndroid.${name}.${platform}" COMMAND ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/VSAndroid"
+ "${CMake_BINARY_DIR}/Tests/VSAndroid/${name}/${platform}"
+ --build-generator "${generator}"
+ --build-project VSAndroid
+ --build-config $<CONFIGURATION>
+ --build-options -DCMAKE_SYSTEM_NAME=Android "-A${platform}"
+ )
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSAndroid/${name}")
+ endmacro()
if(tegra AND NOT "${CMake_SOURCE_DIR};${CMake_BINARY_DIR}" MATCHES " ")
- macro(add_test_VSNsightTegra name generator)
- add_test(NAME VSNsightTegra.${name} COMMAND ${CMAKE_CTEST_COMMAND}
- --build-and-test
- "${CMake_SOURCE_DIR}/Tests/VSNsightTegra"
- "${CMake_BINARY_DIR}/Tests/VSNsightTegra/${name}"
- --build-generator "${generator}"
- --build-project VSNsightTegra
- --build-config $<CONFIGURATION>
- --build-options -DCMAKE_SYSTEM_NAME=Android
- )
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSNsightTegra/${name}")
- endmacro()
if(vs10)
- add_test_VSNsightTegra(vs10 "Visual Studio 10 2010")
+ add_test_VSAndroid(vs10 "Visual Studio 10 2010" "Tegra-Android")
endif()
if(vs11)
- add_test_VSNsightTegra(vs11 "Visual Studio 11 2012")
+ add_test_VSAndroid(vs11 "Visual Studio 11 2012" "Tegra-Android")
endif()
if(vs12)
- add_test_VSNsightTegra(vs12 "Visual Studio 12 2013")
+ add_test_VSAndroid(vs12 "Visual Studio 12 2013" "Tegra-Android")
endif()
if(vs14)
- add_test_VSNsightTegra(vs14 "Visual Studio 14 2015")
+ add_test_VSAndroid(vs14 "Visual Studio 14 2015" "Tegra-Android")
endif()
endif()
+ if(vs14 AND CMake_TEST_ANDROID_VS14)
+ add_test_VSAndroid(vs14 "Visual Studio 14 2015" "ARM")
+ endif()
+ if(vs15 AND CMake_TEST_ANDROID_VS15)
+ add_test_VSAndroid(vs15 "Visual Studio 15 2017" "ARM")
+ endif()
+ if(vs16 AND CMake_TEST_ANDROID_VS16)
+ add_test_VSAndroid(vs16 "Visual Studio 16 2019" "ARM")
+ endif()
if (APPLE)
if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
@@ -2397,36 +2442,6 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BundleGeneratorTest")
endif()
- add_test(WarnUnusedUnusedViaSet ${CMAKE_CTEST_COMMAND}
- --build-and-test
- "${CMake_SOURCE_DIR}/Tests/VariableUnusedViaSet"
- "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaSet"
- ${build_generator_args}
- --build-noclean
- --build-project WarnUnusedUnusedViaSet
- --build-options
- "--warn-unused-vars")
- set_tests_properties(WarnUnusedUnusedViaSet PROPERTIES
- PASS_REGULAR_EXPRESSION "unused variable \\(changing definition\\) 'UNUSED_VARIABLE'")
- set_tests_properties(WarnUnusedUnusedViaSet PROPERTIES
- FAIL_REGULAR_EXPRESSION "unused variable \\(unsetting\\) 'UNUSED_VARIABLE'")
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaSet")
-
- add_test(WarnUnusedUnusedViaUnset ${CMAKE_CTEST_COMMAND}
- --build-and-test
- "${CMake_SOURCE_DIR}/Tests/VariableUnusedViaUnset"
- "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaUnset"
- ${build_generator_args}
- --build-noclean
- --build-project WarnUnusedUnusedViaUnset
- --build-options
- "--warn-unused-vars")
- set_tests_properties(WarnUnusedUnusedViaUnset PROPERTIES
- PASS_REGULAR_EXPRESSION "CMake Warning \\(dev\\) at CMakeLists.txt:7 \\(set\\):")
- set_tests_properties(WarnUnusedUnusedViaUnset PROPERTIES
- FAIL_REGULAR_EXPRESSION "CMakeLists.txt:5 \\(set\\):")
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaUnset")
-
add_test(WarnUnusedCliUnused ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/WarnUnusedCliUnused"
@@ -2916,7 +2931,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
PASS_REGULAR_EXPRESSION "Failed")
else()
set_tests_properties(CTestTestCrash PROPERTIES
- PASS_REGULAR_EXPRESSION "(Illegal|SegFault|Child aborted)")
+ PASS_REGULAR_EXPRESSION "(Illegal|SegFault|Subprocess aborted)")
endif()
configure_file(
@@ -3250,6 +3265,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
COMMAND ${CMAKE_CMAKE_COMMAND}
-D "bootstrap=${bootstrap}"
-D "bin_dir=${CMake_BINARY_DIR}/Tests/BootstrapTest"
+ -D "generator=${CMAKE_GENERATOR}"
-P ${CMAKE_CURRENT_SOURCE_DIR}/BootstrapTest.cmake
)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BootstrapTest")
@@ -3516,6 +3532,10 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
add_subdirectory(CMakeTests)
endif()
+ if(BUILD_QtDialog AND CMake_TEST_GUI AND NOT CMake_TEST_EXTERNAL_CMAKE)
+ add_subdirectory(CMakeGUI)
+ endif()
+
# If this is not an in-source build, provide a target to wipe out
# all the test build directories. This must come at the end after
# all the above logic has finished adding to TEST_BUILD_DIRS