From 0aeff2995138c247f1b1f843c30eb547e199f5f7 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Thu, 13 Mar 2025 11:22:05 +0000 Subject: [PATCH 1/2] cmake: Check for `makensis` tool before using it --- cmake/module/Maintenance.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cmake/module/Maintenance.cmake b/cmake/module/Maintenance.cmake index a1ae7c9e8f6..e5538a0368a 100644 --- a/cmake/module/Maintenance.cmake +++ b/cmake/module/Maintenance.cmake @@ -44,6 +44,14 @@ endfunction() function(add_windows_deploy_target) if(MINGW AND TARGET bitcoin-qt AND TARGET bitcoind AND TARGET bitcoin-cli AND TARGET bitcoin-tx AND TARGET bitcoin-wallet AND TARGET bitcoin-util AND TARGET test_bitcoin) + find_program(MAKENSIS_EXECUTABLE makensis) + if(NOT MAKENSIS_EXECUTABLE) + add_custom_target(deploy + COMMAND ${CMAKE_COMMAND} -E echo "Error: NSIS not found" + ) + return() + endif() + # TODO: Consider replacing this code with the CPack NSIS Generator. # See https://cmake.org/cmake/help/latest/cpack_gen/nsis.html include(GenerateSetupNsi) @@ -58,7 +66,7 @@ function(add_windows_deploy_target) COMMAND ${CMAKE_STRIP} $ -o ${PROJECT_BINARY_DIR}/release/$ COMMAND ${CMAKE_STRIP} $ -o ${PROJECT_BINARY_DIR}/release/$ COMMAND ${CMAKE_STRIP} $ -o ${PROJECT_BINARY_DIR}/release/$ - COMMAND makensis -V2 ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.nsi + COMMAND ${MAKENSIS_EXECUTABLE} -V2 ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.nsi VERBATIM ) add_custom_target(deploy DEPENDS ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.exe) From 1f9b2e150ce5aa192226d2daae73f7d678c47d65 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Thu, 13 Mar 2025 11:22:30 +0000 Subject: [PATCH 2/2] cmake: Require `zip` only for `deploy` target --- cmake/module/Maintenance.cmake | 26 ++++++++++++++++---------- doc/build-osx.md | 2 +- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/cmake/module/Maintenance.cmake b/cmake/module/Maintenance.cmake index e5538a0368a..177a70e4599 100644 --- a/cmake/module/Maintenance.cmake +++ b/cmake/module/Maintenance.cmake @@ -119,16 +119,22 @@ function(add_macos_deploy_target) DEPENDS ${PROJECT_BINARY_DIR}/dist/${macos_app}/Contents/MacOS/Bitcoin-Qt ) - find_program(ZIP_COMMAND zip REQUIRED) - add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/dist/${osx_volname}.zip - WORKING_DIRECTORY dist - COMMAND ${PROJECT_SOURCE_DIR}/cmake/script/macos_zip.sh ${ZIP_COMMAND} ${osx_volname}.zip - VERBATIM - ) - add_custom_target(deploy - DEPENDS ${PROJECT_BINARY_DIR}/dist/${osx_volname}.zip - ) + find_program(ZIP_EXECUTABLE zip) + if(NOT ZIP_EXECUTABLE) + add_custom_target(deploy + COMMAND ${CMAKE_COMMAND} -E echo "Error: ZIP not found" + ) + else() + add_custom_command( + OUTPUT ${PROJECT_BINARY_DIR}/dist/${osx_volname}.zip + WORKING_DIRECTORY dist + COMMAND ${PROJECT_SOURCE_DIR}/cmake/script/macos_zip.sh ${ZIP_EXECUTABLE} ${osx_volname}.zip + VERBATIM + ) + add_custom_target(deploy + DEPENDS ${PROJECT_BINARY_DIR}/dist/${osx_volname}.zip + ) + endif() endif() add_dependencies(deploydir bitcoin-qt) add_dependencies(deploy deploydir) diff --git a/doc/build-osx.md b/doc/build-osx.md index 51f3446e44f..4d92abfc215 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -141,7 +141,7 @@ brew install python #### Deploy Dependencies You can [deploy](#3-deploy-optional) a `.zip` containing the Bitcoin Core application. -It is required that you have `python` installed. +It is required that you have `python` and `zip` installed. ## Building Bitcoin Core