From e6c470997f5d59b0ea4249af64172edb7d1ee0db Mon Sep 17 00:00:00 2001 From: Yacoub Hossain Date: Fri, 14 Feb 2020 14:02:52 -0500 Subject: [PATCH] CPack/NuGet: Provide more granular errors Address the problem of not knowing when cpack fails to create a nuget package which occurs when creating multiple nupkgs. Fixes: #20094 --- Modules/Internal/CPack/CPackNuGet.cmake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Modules/Internal/CPack/CPackNuGet.cmake b/Modules/Internal/CPack/CPackNuGet.cmake index 1f4bcfdcd1..20eed2eef8 100644 --- a/Modules/Internal/CPack/CPackNuGet.cmake +++ b/Modules/Internal/CPack/CPackNuGet.cmake @@ -287,7 +287,11 @@ if(CPACK_NUGET_ORDINAL_MONOLITIC) execute_process( COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" + RESULT_VARIABLE _nuget_result ) + if(NOT _nuget_result EQUAL 0) + message(FATAL_ERROR "Nuget pack failed") + endif() elseif(CPACK_NUGET_ALL_IN_ONE) # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code: @@ -300,7 +304,11 @@ elseif(CPACK_NUGET_ALL_IN_ONE) execute_process( COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" + RESULT_VARIABLE _nuget_result ) + if(NOT _nuget_result EQUAL 0) + message(FATAL_ERROR "Nuget pack failed") + endif() else() # Is there any grouped component? @@ -322,7 +330,11 @@ else() execute_process( COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" + RESULT_VARIABLE _nuget_result ) + if(NOT _nuget_result EQUAL 0) + message(FATAL_ERROR "Nuget pack failed") + endif() endforeach() endif() # Is there any single component package needed? @@ -341,7 +353,11 @@ else() execute_process( COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" + RESULT_VARIABLE _nuget_result ) + if(NOT _nuget_result EQUAL 0) + message(FATAL_ERROR "Nuget pack failed") + endif() endforeach() endif() endif()