include(RunCMake) function(build_project test) if (NOT RunCMake_GENERATOR_IS_MULTI_CONFIG) set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release) endif() run_cmake(${test}) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build) set(RunCMake_TEST_NO_CLEAN 1) run_cmake_command(${test}-build ${CMAKE_COMMAND} --build . --config Release) if ("${ARGC}" GREATER "1") # custom install step cmake_language(CALL ${ARGV1}) else() run_cmake_command(${test}-install ${CMAKE_COMMAND} --install . --config Release) endif() endfunction() build_project(Simple) build_project(Framework) function(LibraryWithOutputs-run) run_cmake_command(${test}-run ${CMAKE_COMMAND} --build . --target run --config Release) endfunction() build_project(LibraryWithOutputs LibraryWithOutputs-run) function(LibraryWithVersions-install) run_cmake_command(LibraryWithVersions-install-component-lib3 ${CMAKE_COMMAND} --install . --config Release --component lib3) run_cmake_command(LibraryWithVersions-install-component-lib4 ${CMAKE_COMMAND} --install . --config Release --component lib4) run_cmake_command(LibraryWithVersions-install-components-dev4 ${CMAKE_COMMAND} --install . --config Release --component dev4) run_cmake_command(LibraryWithVersions-install ${CMAKE_COMMAND} --install . --config Release --component default) endfunction() build_project(LibraryWithVersions LibraryWithVersions-install) function(build_ExportImport_project test) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-export-build) set(CMAKE_INSTALL_PREFIX ${RunCMake_TEST_BINARY_DIR}/root) if (NOT RunCMake_GENERATOR_IS_MULTI_CONFIG) set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release) endif() run_cmake(${test}-export) unset(RunCMake_TEST_OPTIONS) set(RunCMake_TEST_NO_CLEAN 1) run_cmake_command(${test}-export-build ${CMAKE_COMMAND} --build . --config Release) run_cmake_command(${test}-export-install ${CMAKE_COMMAND} --install . --prefix ${CMAKE_INSTALL_PREFIX} --config Release) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-import-build) set (foo_BUILD "${RunCMake_BINARY_DIR}/${test}-export-build") if (RunCMake_GENERATOR_IS_MULTI_CONFIG) string (APPEND foo_BUILD "/Release") endif() run_cmake_with_options(${test}-import -Dfoo_DIR=${CMAKE_INSTALL_PREFIX}/lib/foo -Dfoo_BUILD=${RunCMake_BINARY_DIR}/${test}-export-build/Release) run_cmake_command(${test}-import-build ${CMAKE_COMMAND} --build . --config Release) endfunction() build_ExportImport_project(Library) build_ExportImport_project(Framework)