From 9bac4bb88d56d1a4c5fad2ea1e5baf924d1cb024 Mon Sep 17 00:00:00 2001 From: William Sciaroni Date: Fri, 13 Oct 2023 15:32:47 -0500 Subject: ExternalProject: Fix INSTALL step for GHS generator Fixes: #25267 --- Modules/ExternalProject.cmake | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index f43f48d..67b805b 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -1934,8 +1934,10 @@ function(_ep_get_build_command set(args) _ep_get_configure_command_id(${name} cfg_cmd_id) if(cfg_cmd_id STREQUAL "cmake") - # CMake project. Select build command based on generator. - get_target_property(cmake_generator ${name} _EP_CMAKE_GENERATOR) + # Adding a CMake project as an External Project. Select command based on generator + get_property(cmake_generator TARGET ${name} PROPERTY _EP_CMAKE_GENERATOR) + # cmake_generator is the CMake generator of the ExternalProject target being added + # CMAKE_GENERATOR is the CMake generator of the Current Project if("${CMAKE_GENERATOR}" MATCHES "Make" AND ("${cmake_generator}" MATCHES "Make" OR NOT cmake_generator)) # The project uses the same Makefile generator. Use recursive make. @@ -1948,6 +1950,11 @@ function(_ep_get_build_command endif() else() # Drive the project with "cmake --build". + if(NOT cmake_generator) + # If there is no CMake Generator defined on the ExternalProject, + # use the same Generator as the current project + set(cmake_generator "${CMAKE_GENERATOR}") + endif() get_target_property(cmake_command ${name} _EP_CMAKE_COMMAND) if(cmake_command) set(cmd "${cmake_command}") @@ -1977,7 +1984,11 @@ function(_ep_get_build_command list(APPEND args --config ${config}) endif() if(step STREQUAL "INSTALL") - list(APPEND args --target install) + if("${cmake_generator}" MATCHES "Green Hills MULTI") + list(APPEND args --target INSTALL) + else() + list(APPEND args --target install) + endif() endif() # But for "TEST" drive the project with corresponding "ctest". if("x${step}x" STREQUAL "xTESTx") -- cgit v0.12