From 5359386ca9bbbc1ec63cb37de77dc7ee406e5516 Mon Sep 17 00:00:00 2001 From: Daniel Pfeifer Date: Mon, 22 Sep 2025 15:52:15 +0200 Subject: [PATCH 1/4] cmake: Make sure that install components are c identifiers --- cmake/module/InstallBinaryComponent.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/module/InstallBinaryComponent.cmake b/cmake/module/InstallBinaryComponent.cmake index 42bcd88efb4..10693f592d2 100644 --- a/cmake/module/InstallBinaryComponent.cmake +++ b/cmake/module/InstallBinaryComponent.cmake @@ -5,25 +5,25 @@ include_guard(GLOBAL) include(GNUInstallDirs) -function(install_binary_component component) +function(install_binary_component target) cmake_parse_arguments(PARSE_ARGV 1 IC # prefix "HAS_MANPAGE;INTERNAL" # options "" # one_value_keywords "" # multi_value_keywords ) - set(target_name ${component}) + string(MAKE_C_IDENTIFIER ${target} component) if(IC_INTERNAL) set(runtime_dest ${CMAKE_INSTALL_LIBEXECDIR}) else() set(runtime_dest ${CMAKE_INSTALL_BINDIR}) endif() - install(TARGETS ${target_name} + install(TARGETS ${target} RUNTIME DESTINATION ${runtime_dest} COMPONENT ${component} ) if(INSTALL_MAN AND IC_HAS_MANPAGE) - install(FILES ${PROJECT_SOURCE_DIR}/doc/man/${target_name}.1 + install(FILES ${PROJECT_SOURCE_DIR}/doc/man/${target}.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT ${component} ) From 16fe6f253b569d19ae501008e56443076a53f164 Mon Sep 17 00:00:00 2001 From: Daniel Pfeifer Date: Wed, 25 Jun 2025 17:31:07 +0200 Subject: [PATCH 2/4] cmake: Use CPack to build Windows installer --- CMakeLists.txt | 1 - cmake/module/GenerateSetupNsi.cmake | 19 --- cmake/module/Maintenance.cmake | 43 ++---- doc/build-windows.md | 2 +- share/setup.nsi.in | 198 ---------------------------- 5 files changed, 12 insertions(+), 251 deletions(-) delete mode 100644 cmake/module/GenerateSetupNsi.cmake delete mode 100644 share/setup.nsi.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c10fb73fad..29ef5860240 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -640,7 +640,6 @@ add_subdirectory(src) include(Maintenance) setup_split_debug_script() add_maintenance_targets() -add_windows_deploy_target() add_macos_deploy_target() message("\n") diff --git a/cmake/module/GenerateSetupNsi.cmake b/cmake/module/GenerateSetupNsi.cmake deleted file mode 100644 index c8d5bd67c5f..00000000000 --- a/cmake/module/GenerateSetupNsi.cmake +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2023-present The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or https://opensource.org/license/mit/. - -function(generate_setup_nsi) - set(abs_top_srcdir ${PROJECT_SOURCE_DIR}) - set(abs_top_builddir ${PROJECT_BINARY_DIR}) - set(CLIENT_URL ${PROJECT_HOMEPAGE_URL}) - set(CLIENT_TARNAME "bitcoin") - set(BITCOIN_WRAPPER_NAME "bitcoin") - set(BITCOIN_GUI_NAME "bitcoin-qt") - set(BITCOIN_DAEMON_NAME "bitcoind") - set(BITCOIN_CLI_NAME "bitcoin-cli") - set(BITCOIN_TX_NAME "bitcoin-tx") - set(BITCOIN_WALLET_TOOL_NAME "bitcoin-wallet") - set(BITCOIN_TEST_NAME "test_bitcoin") - set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX}) - configure_file(${PROJECT_SOURCE_DIR}/share/setup.nsi.in ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.nsi USE_SOURCE_PERMISSIONS @ONLY) -endfunction() diff --git a/cmake/module/Maintenance.cmake b/cmake/module/Maintenance.cmake index 5f4b1d8aa8e..18c99b48fa7 100644 --- a/cmake/module/Maintenance.cmake +++ b/cmake/module/Maintenance.cmake @@ -4,6 +4,17 @@ include_guard(GLOBAL) +set(CPACK_NSIS_COMPRESSOR "/SOLID lzma") +set(CPACK_NSIS_MUI_ICON "${BitcoinCore_SOURCE_DIR}/share/pixmaps/bitcoin.ico") +set(CPACK_NSIS_MUI_HEADERIMAGE "${BitcoinCore_SOURCE_DIR}/share/pixmaps/nsis-header.bmp") +set(CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${BitcoinCore_SOURCE_DIR}/share/pixmaps/nsis-wizard.bmp") +set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "${BitcoinCore_SOURCE_DIR}/share/pixmaps/nsis-wizard.bmp") + +set(CPACK_RESOURCE_FILE_LICENSE "${BitcoinCore_SOURCE_DIR}/COPYING") +set(CPACK_STRIP_FILES ON) + +include(CPack) + function(setup_split_debug_script) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") set(OBJCOPY ${CMAKE_OBJCOPY}) @@ -42,38 +53,6 @@ function(add_maintenance_targets) ) endfunction() -function(add_windows_deploy_target) - if(MINGW AND TARGET bitcoin 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) - generate_setup_nsi() - add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.exe - COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/release - 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 ${CMAKE_STRIP} $ -o ${PROJECT_BINARY_DIR}/release/$ - 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 ${CMAKE_STRIP} $ -o ${PROJECT_BINARY_DIR}/release/$ - COMMAND ${MAKENSIS_EXECUTABLE} -V2 ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.nsi - VERBATIM - ) - add_custom_target(deploy DEPENDS ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.exe) - endif() -endfunction() - function(add_macos_deploy_target) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND TARGET bitcoin-qt) set(macos_app "Bitcoin-Qt.app") diff --git a/doc/build-windows.md b/doc/build-windows.md index 84db7fa4b5f..fe17b477e88 100644 --- a/doc/build-windows.md +++ b/doc/build-windows.md @@ -74,5 +74,5 @@ cmake --install build --prefix /mnt/c/workspace/bitcoin --strip You can also create an installer using: ```shell -cmake --build build --target deploy +cpack -G NSIS64 ``` diff --git a/share/setup.nsi.in b/share/setup.nsi.in deleted file mode 100644 index 387d78116b8..00000000000 --- a/share/setup.nsi.in +++ /dev/null @@ -1,198 +0,0 @@ -Name "@CLIENT_NAME@" - -RequestExecutionLevel highest -SetCompressor /SOLID lzma -SetDateSave off -Unicode true - -# Uncomment these lines when investigating reproducibility errors -#SetCompress off -#SetDatablockOptimize off - -# General Symbol Definitions -!define REGKEY "SOFTWARE\$(^Name)" -!define COMPANY "@CLIENT_NAME@ project" -!define URL @CLIENT_URL@ - -# MUI Symbol Definitions -!define MUI_ICON "@abs_top_srcdir@/share/pixmaps/bitcoin.ico" -!define MUI_WELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp" -!define MUI_HEADERIMAGE -!define MUI_HEADERIMAGE_RIGHT -!define MUI_HEADERIMAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-header.bmp" -!define MUI_FINISHPAGE_NOAUTOCLOSE -!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM -!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY} -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup -!define MUI_STARTMENUPAGE_DEFAULTFOLDER "@CLIENT_NAME@" -!define MUI_FINISHPAGE_RUN "$WINDIR\explorer.exe" -!define MUI_FINISHPAGE_RUN_PARAMETERS $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ -!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" -!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp" -!define MUI_UNFINISHPAGE_NOAUTOCLOSE - -# Included files -!include Sections.nsh -!include MUI2.nsh -!include x64.nsh - -# Variables -Var StartMenuGroup - -# Installer pages -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_PAGE_FINISH -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - -# Installer languages -!insertmacro MUI_LANGUAGE English - -# Installer attributes -InstallDir $PROGRAMFILES64\Bitcoin -CRCCheck force -XPStyle on -BrandingText " " -ShowInstDetails show -VIProductVersion @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_BUILD@.0 -VIAddVersionKey ProductName "@CLIENT_NAME@" -VIAddVersionKey ProductVersion "@CLIENT_VERSION_STRING@" -VIAddVersionKey CompanyName "${COMPANY}" -VIAddVersionKey CompanyWebsite "${URL}" -VIAddVersionKey FileVersion "@CLIENT_VERSION_STRING@" -VIAddVersionKey FileDescription "Installer for @CLIENT_NAME@" -VIAddVersionKey LegalCopyright "Copyright (C) 2009-@COPYRIGHT_YEAR@ @COPYRIGHT_HOLDERS_FINAL@" -InstallDirRegKey HKCU "${REGKEY}" Path -ShowUninstDetails show - -# Installer sections -Section -Main SEC0000 - SetOutPath $INSTDIR - SetOverwrite on - File @abs_top_builddir@/release/@BITCOIN_GUI_NAME@@EXEEXT@ - File @abs_top_builddir@/release/@BITCOIN_WRAPPER_NAME@@EXEEXT@ - File /oname=COPYING.txt @abs_top_srcdir@/COPYING - File /oname=readme.txt @abs_top_srcdir@/doc/README_windows.txt - File @abs_top_srcdir@/share/examples/bitcoin.conf - SetOutPath $INSTDIR\share\rpcauth - File @abs_top_srcdir@/share/rpcauth/*.* - SetOutPath $INSTDIR\daemon - File @abs_top_builddir@/release/@BITCOIN_DAEMON_NAME@@EXEEXT@ - File @abs_top_builddir@/release/@BITCOIN_CLI_NAME@@EXEEXT@ - File @abs_top_builddir@/release/@BITCOIN_TX_NAME@@EXEEXT@ - File @abs_top_builddir@/release/@BITCOIN_WALLET_TOOL_NAME@@EXEEXT@ - File @abs_top_builddir@/release/@BITCOIN_TEST_NAME@@EXEEXT@ - SetOutPath $INSTDIR - WriteRegStr HKCU "${REGKEY}\Components" Main 1 -SectionEnd - -Section -post SEC0001 - WriteRegStr HKCU "${REGKEY}" Path $INSTDIR - SetOutPath $INSTDIR - WriteUninstaller $INSTDIR\uninstall.exe - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory $SMPROGRAMS\$StartMenuGroup - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\@CLIENT_NAME@ (testnet).lnk" "$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "-testnet" "$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" 1 - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\@CLIENT_NAME@ (test signet).lnk" "$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "-signet" "$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" 2 - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\@CLIENT_NAME@ (testnet4).lnk" "$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "-testnet4" "$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" 3 - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" $INSTDIR\uninstall.exe - !insertmacro MUI_STARTMENU_WRITE_END - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "@CLIENT_VERSION_STRING@" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\bitcoin-qt.exe - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe - WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1 - WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1 - WriteRegStr HKCR "@CLIENT_TARNAME@" "URL Protocol" "" - WriteRegStr HKCR "@CLIENT_TARNAME@" "" "URL:Bitcoin" - WriteRegStr HKCR "@CLIENT_TARNAME@\DefaultIcon" "" $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ - WriteRegStr HKCR "@CLIENT_TARNAME@\shell\open\command" "" '"$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "%1"' - - # Lingering since fb2b05b1259d3e69e6e675adfa30b429424c7625 which removed the suffix - DeleteRegValue HKCU "${REGKEY} (64-bit)\Components" Main - DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name) (64-bit)" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name) (64-bit).lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name) (64-bit).lnk" - DeleteRegValue HKCU "${REGKEY} (64-bit)" StartMenuGroup - DeleteRegValue HKCU "${REGKEY} (64-bit)" Path - DeleteRegKey /IfEmpty HKCU "${REGKEY} (64-bit)\Components" - DeleteRegKey /IfEmpty HKCU "${REGKEY} (64-bit)" - - # Lingering since 77b2923f87131a407f7d4193c54db22375130403 - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Bitcoin Core (testnet, 64-bit).lnk" -SectionEnd - -# Macro for selecting uninstaller sections -!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID - Push $R0 - ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}" - StrCmp $R0 1 0 next${UNSECTION_ID} - !insertmacro SelectSection "${UNSECTION_ID}" - GoTo done${UNSECTION_ID} -next${UNSECTION_ID}: - !insertmacro UnselectSection "${UNSECTION_ID}" -done${UNSECTION_ID}: - Pop $R0 -!macroend - -# Uninstaller sections -Section /o -un.Main UNSEC0000 - Delete /REBOOTOK $INSTDIR\@BITCOIN_WRAPPER_NAME@@EXEEXT@ - Delete /REBOOTOK $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ - Delete /REBOOTOK $INSTDIR\COPYING.txt - Delete /REBOOTOK $INSTDIR\readme.txt - Delete /REBOOTOK $INSTDIR\bitcoin.conf - RMDir /r /REBOOTOK $INSTDIR\share - RMDir /r /REBOOTOK $INSTDIR\daemon - DeleteRegValue HKCU "${REGKEY}\Components" Main -SectionEnd - -Section -un.post UNSEC0001 - DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@CLIENT_NAME@ (testnet).lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@CLIENT_NAME@ (testnet4).lnk" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@CLIENT_NAME@ (test signet).lnk" - Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk" - Delete /REBOOTOK $INSTDIR\uninstall.exe - Delete /REBOOTOK $INSTDIR\debug.log - Delete /REBOOTOK $INSTDIR\db.log - DeleteRegValue HKCU "${REGKEY}" StartMenuGroup - DeleteRegValue HKCU "${REGKEY}" Path - DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components" - DeleteRegKey /IfEmpty HKCU "${REGKEY}" - DeleteRegKey HKCR "@CLIENT_TARNAME@" - RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup - RmDir /REBOOTOK $INSTDIR - Push $R0 - StrCpy $R0 $StartMenuGroup 1 - StrCmp $R0 ">" no_smgroup -no_smgroup: - Pop $R0 -SectionEnd - -# Installer functions -Function .onInit - InitPluginsDir - ${If} ${RunningX64} - ; disable registry redirection (enable access to 64-bit portion of registry) - SetRegView 64 - ${Else} - MessageBox MB_OK|MB_ICONSTOP "Cannot install 64-bit version on a 32-bit system." - Abort - ${EndIf} -FunctionEnd - -# Uninstaller functions -Function un.onInit - ReadRegStr $INSTDIR HKCU "${REGKEY}" Path - !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup - !insertmacro SELECT_UNSECTION Main ${UNSEC0000} -FunctionEnd From fb1da00f04a63594b9434fd688723ef9e822495f Mon Sep 17 00:00:00 2001 From: Daniel Pfeifer Date: Mon, 22 Sep 2025 16:54:53 +0200 Subject: [PATCH 3/4] cmake: set CPACK_SOURCE_IGNORE_FILES --- cmake/module/Maintenance.cmake | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cmake/module/Maintenance.cmake b/cmake/module/Maintenance.cmake index 18c99b48fa7..6adf3e600f6 100644 --- a/cmake/module/Maintenance.cmake +++ b/cmake/module/Maintenance.cmake @@ -13,6 +13,25 @@ set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "${BitcoinCore_SOURCE_DIR}/share/p set(CPACK_RESOURCE_FILE_LICENSE "${BitcoinCore_SOURCE_DIR}/COPYING") set(CPACK_STRIP_FILES ON) +set(CPACK_SOURCE_IGNORE_FILES + "/\\\\.cache/" + "/\\\\.git/" + "/depends/SDKs/" + "/depends/work/" + "/depends/built/" + "/depends/sources/" + "/depends/x86_64.*" + "/depends/amd64.*" + "/depends/i686.*" + "/depends/mips.*" + "/depends/arm.*" + "/depends/aarch64.*" + "/depends/powerpc.*" + "/depends/riscv32.*" + "/depends/riscv64.*" + "/depends/s390x.*" +) + include(CPack) function(setup_split_debug_script) From fe2dd036f4ce06d72c65843c5f4a3888422181e3 Mon Sep 17 00:00:00 2001 From: Daniel Pfeifer Date: Mon, 22 Sep 2025 17:17:14 +0200 Subject: [PATCH 4/4] ci: set GOAL to `package` for Windows --- ci/test/00_setup_env_win64.sh | 2 +- doc/build-windows.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/test/00_setup_env_win64.sh b/ci/test/00_setup_env_win64.sh index 13e794bd6d1..3da92403956 100755 --- a/ci/test/00_setup_env_win64.sh +++ b/ci/test/00_setup_env_win64.sh @@ -13,6 +13,6 @@ export HOST=x86_64-w64-mingw32 export PACKAGES="g++-mingw-w64-x86-64-posix nsis" export RUN_UNIT_TESTS=false export RUN_FUNCTIONAL_TESTS=false -export GOAL="deploy" +export GOAL="package" export BITCOIN_CONFIG="-DREDUCE_EXPORTS=ON -DBUILD_GUI_TESTS=OFF \ -DCMAKE_CXX_FLAGS='-Wno-error=maybe-uninitialized'" diff --git a/doc/build-windows.md b/doc/build-windows.md index fe17b477e88..9bd9d66e3ce 100644 --- a/doc/build-windows.md +++ b/doc/build-windows.md @@ -31,7 +31,7 @@ installing the toolchain will be different. See [README.md](../depends/README.md) in the depends directory for which dependencies to install and [dependencies.md](dependencies.md) for a complete overview. -If you want to build the Windows installer using the `deploy` build target, you will need [NSIS](https://nsis.sourceforge.io/Main_Page): +If you want to build the Windows installer using the `package` build target, you will need [NSIS](https://nsis.sourceforge.io/Main_Page): apt install nsis