mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
The `BUILD_BYPRODUCTS` option causes the ExternalProject's `build` step in `build.ninja` to have `restat = 1`, so its "always out-of-date" status caused by `BUILD_ALWAYS` does not propagate to the `install` step. Mark the latter step as explicitly always out-of-date too. Fixes: #23820
21 lines
900 B
CMake
21 lines
900 B
CMake
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
|
|
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${CMAKE_CURRENT_LIST_FILE}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/byproduct.txt"
|
|
BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/byproduct.txt"
|
|
BUILD_ALWAYS 1
|
|
INSTALL_COMMAND "${CMAKE_COMMAND}" -P ${CMAKE_CURRENT_BINARY_DIR}/always-install.cmake
|
|
)
|