|
|
@@ -177,6 +177,28 @@ if(doSubstitutionTest)
|
|
|
__ep_test_with_build(Substitutions)
|
|
|
endif()
|
|
|
|
|
|
+function(__ep_test_BUILD_ALWAYS)
|
|
|
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/BUILD_ALWAYS-build)
|
|
|
+ run_cmake(BUILD_ALWAYS)
|
|
|
+ set(RunCMake_TEST_NO_CLEAN 1)
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/once-configure.cmake" [[message(STATUS "once: configure")]])
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/once-build.cmake" [[message(STATUS "once: build")]])
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/once-install.cmake" [[message(STATUS "once: install")]])
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/always-configure.cmake" [[message(STATUS "always: configure")]])
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/always-build.cmake" [[message(STATUS "always: build")]])
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/always-install.cmake" [[message(STATUS "always: install")]])
|
|
|
+ run_cmake_command(BUILD_ALWAYS-build1 ${CMAKE_COMMAND} --build . --target always)
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/once-configure.cmake" [[message(FATAL_ERROR "once: configure should not run again")]])
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/once-build.cmake" [[message(FATAL_ERROR "once: build should not run again")]])
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/once-install.cmake" [[message(FATAL_ERROR "once: install should not run again")]])
|
|
|
+ if(NOT RunCMake_GENERATOR MATCHES "^(Xcode|Visual Studio 9 )")
|
|
|
+ # The Xcode and VS 9 build systems decide to run this every time.
|
|
|
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/always-configure.cmake" [[message(FATAL_ERROR "always: configure should not run again")]])
|
|
|
+ endif()
|
|
|
+ run_cmake_command(BUILD_ALWAYS-build2 ${CMAKE_COMMAND} --build . --target always)
|
|
|
+endfunction()
|
|
|
+__ep_test_BUILD_ALWAYS()
|
|
|
+
|
|
|
function(__ep_test_CONFIGURE_HANDLED_BY_BUILD)
|
|
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CONFIGURE_HANDLED_BY_BUILD-build)
|
|
|
run_cmake(CONFIGURE_HANDLED_BY_BUILD)
|