Browse Source

Merge topic 'ExternalProject-revert-install'

771387523a ExternalProject: Restore driving install through build system

Acked-by: Kitware Robot <[email protected]>
Tested-by: buildbot <[email protected]>
Acked-by: Craig Scott <[email protected]>
Reviewed-by: Ben Boeckel <[email protected]>
Merge-request: !8279
Brad King 2 years ago
parent
commit
697ca5d51c

+ 4 - 5
Modules/ExternalProject.cmake

@@ -1857,11 +1857,7 @@ function(_ep_get_build_command
       else()
         set(cmd "${CMAKE_COMMAND}")
       endif()
-      if(step STREQUAL "INSTALL")
-        set(args --install ".")
-      else()
-        set(args --build ".")
-      endif()
+      set(args --build ".")
       get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
       if(_isMultiConfig)
         if (CMAKE_CFG_INTDIR AND
@@ -1883,6 +1879,9 @@ function(_ep_get_build_command
         endif()
         list(APPEND args --config ${config})
       endif()
+      if(step STREQUAL "INSTALL")
+        list(APPEND args --target install)
+      endif()
       # But for "TEST" drive the project with corresponding "ctest".
       if("x${step}x" STREQUAL "xTESTx")
         string(REGEX REPLACE "^(.*/)cmake([^/]*)$" "\\1ctest\\2" cmd "${cmd}")

+ 2 - 0
Tests/RunCMake/ExternalProject/InstallBuilds-build-stdout.txt

@@ -0,0 +1,2 @@
+.*build command suppressed
+.*always builds

+ 7 - 0
Tests/RunCMake/ExternalProject/InstallBuilds.cmake

@@ -0,0 +1,7 @@
+include(ExternalProject)
+
+ExternalProject_Add(InstallBuilds
+  SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/InstallBuilds
+  DOWNLOAD_COMMAND ""
+  BUILD_COMMAND "${CMAKE_COMMAND}" -E echo "build command suppressed"
+  )

+ 4 - 0
Tests/RunCMake/ExternalProject/InstallBuilds/CMakeLists.txt

@@ -0,0 +1,4 @@
+cmake_minimum_required(VERSION 3.24)
+project(InstallBuilds NONE)
+add_custom_target(always ALL COMMAND ${CMAKE_COMMAND} -E echo "always builds")
+install(CODE "")

+ 1 - 0
Tests/RunCMake/ExternalProject/RunCMakeTest.cmake

@@ -147,6 +147,7 @@ endfunction()
 __ep_test_with_build(MultiCommand)
 
 set(RunCMake_TEST_OUTPUT_MERGE 1)
+__ep_test_with_build(InstallBuilds)
 __ep_test_with_build(PreserveEmptyArgs)
 set(RunCMake_TEST_OUTPUT_MERGE 0)