mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 16:32:14 -06:00
ExternalProject: Add test case for BUILD_ALWAYS
We did not previously have a dedicated explicit test for this option. Issue: #23820
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
.*-- once: configure
|
||||
.*-- once: build
|
||||
.*-- once: install
|
||||
.*-- always: configure
|
||||
.*-- always: build
|
||||
.*-- always: install
|
||||
@@ -0,0 +1,2 @@
|
||||
.*-- always: build
|
||||
.*-- always: install
|
||||
17
Tests/RunCMake/ExternalProject/BUILD_ALWAYS.cmake
Normal file
17
Tests/RunCMake/ExternalProject/BUILD_ALWAYS.cmake
Normal file
@@ -0,0 +1,17 @@
|
||||
include(ExternalProject)
|
||||
|
||||
ExternalProject_Add(once
|
||||
DOWNLOAD_COMMAND ""
|
||||
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -P ${CMAKE_CURRENT_BINARY_DIR}/once-configure.cmake
|
||||
BUILD_COMMAND "${CMAKE_COMMAND}" -P ${CMAKE_CURRENT_BINARY_DIR}/once-build.cmake
|
||||
INSTALL_COMMAND "${CMAKE_COMMAND}" -P ${CMAKE_CURRENT_BINARY_DIR}/once-install.cmake
|
||||
)
|
||||
|
||||
ExternalProject_Add(always
|
||||
DEPENDS once
|
||||
DOWNLOAD_COMMAND ""
|
||||
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -P ${CMAKE_CURRENT_BINARY_DIR}/always-configure.cmake
|
||||
BUILD_COMMAND "${CMAKE_COMMAND}" -P ${CMAKE_CURRENT_BINARY_DIR}/always-build.cmake
|
||||
BUILD_ALWAYS 1
|
||||
INSTALL_COMMAND "${CMAKE_COMMAND}" -P ${CMAKE_CURRENT_BINARY_DIR}/always-install.cmake
|
||||
)
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user