include(RunCMake) macro(run_cmake test) list(APPEND RunCMake_TEST_OPTIONS -DTEST_PROP=${TEST_PROP}) set(RunCMake-stderr-file ${test}-stderr_${TEST_PROP}.txt) _run_cmake(${test}) endmacro() # Protect tests from running inside the default install prefix. set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/NotDefaultPrefix") run_cmake(RelativePathInInterface) run_cmake(RelativePathInGenex) run_cmake(export-NOWARN) run_cmake(SourceDirectoryInInterface) run_cmake(BinaryDirectoryInInterface) set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/DirInInstallPrefix/prefix") run_cmake(DirInInstallPrefix) configure_file( "${RunCMake_SOURCE_DIR}/CMakeLists.txt" "${RunCMake_BINARY_DIR}/copy/CMakeLists.txt" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/empty.cpp" "${RunCMake_BINARY_DIR}/copy/empty.cpp" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/SourceDirectoryInInterface.cmake" "${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface.cmake" COPYONLY ) set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface/prefix" "-DTEST_FILE=${RunCMake_BINARY_DIR}/copy/SourceDirectoryInInterface.cmake" ) set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/copy") run_cmake(InstallInSrcDir) unset(RunCMake_TEST_SOURCE_DIR) set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallInBinDir-build/prefix") set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallInBinDir-build/prefix" "-DTEST_FILE=${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface.cmake" ) set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/InstallInBinDir-build") run_cmake(InstallInBinDir) unset(RunCMake_TEST_BINARY_DIR) configure_file( "${RunCMake_SOURCE_DIR}/CMakeLists.txt" "${RunCMake_BINARY_DIR}/prefix/src/CMakeLists.txt" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/empty.cpp" "${RunCMake_BINARY_DIR}/prefix/src/empty.cpp" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/SourceDirectoryInInterface.cmake" "${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface.cmake" COPYONLY ) foreach(policyStatus NEW OLD "") if (TEST_PROP STREQUAL INCLUDE_DIRECTORIES) if (NOT "${policyStatus}" STREQUAL "") set(policyOption -DCMAKE_POLICY_DEFAULT_CMP0052=${policyStatus}) else() unset(policyOption) set(policyStatus WARN) endif() set(policySuffix -CMP0052-${policyStatus}) endif() set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/prefix" ${policyOption} "-DTEST_FILE=${RunCMake_SOURCE_DIR}/BinaryDirectoryInInterface.cmake" ) # Set the RunCMake_TEST_SOURCE_DIR here to the copy too. This is needed to run # the test suite in-source properly. Otherwise the install directory would be # a subdirectory or the source directory, which is allowed and tested separately # below. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/prefix/src") set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/prefix/BinInInstallPrefix${policySuffix}-build") run_cmake(BinInInstallPrefix${policySuffix}) unset(RunCMake_TEST_BINARY_DIR) set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/prefix" ${policyOption} "-DTEST_FILE=${RunCMake_BINARY_DIR}/prefix/src/SourceDirectoryInInterface.cmake" ) run_cmake(SrcInInstallPrefix${policySuffix}) unset(RunCMake_TEST_SOURCE_DIR) if (NOT TEST_PROP STREQUAL INCLUDE_DIRECTORIES) break() endif() endforeach() set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/InstallPrefixInInterface-build/prefix") run_cmake(InstallPrefixInInterface) configure_file( "${RunCMake_SOURCE_DIR}/CMakeLists.txt" "${RunCMake_BINARY_DIR}/installToSrc/CMakeLists.txt" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/empty.cpp" "${RunCMake_BINARY_DIR}/installToSrc/empty.cpp" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake" "${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface.cmake" COPYONLY ) set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface/prefix" "-DTEST_FILE=${RunCMake_BINARY_DIR}/installToSrc/InstallPrefixInInterface.cmake" ) set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrc") run_cmake(InstallToPrefixInSrcDirOutOfSource) unset(RunCMake_TEST_SOURCE_DIR) file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}/installToSrcInSrc") set(RunCMake_TEST_NO_CLEAN ON) configure_file( "${RunCMake_SOURCE_DIR}/CMakeLists.txt" "${RunCMake_BINARY_DIR}/installToSrcInSrc/CMakeLists.txt" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/empty.cpp" "${RunCMake_BINARY_DIR}/installToSrcInSrc/empty.cpp" COPYONLY ) configure_file( "${RunCMake_SOURCE_DIR}/InstallPrefixInInterface.cmake" "${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface.cmake" COPYONLY ) set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface/prefix" "-DTEST_FILE=${RunCMake_BINARY_DIR}/installToSrcInSrc/InstallPrefixInInterface.cmake" ) set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc") set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/installToSrcInSrc") run_cmake(InstallToPrefixInSrcDirInSource) unset(RunCMake_TEST_SOURCE_DIR) unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN)