Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
89b08a2
Remove xtrans dependency from libICE, libSM, and libX11, delete xtran…
aleflm May 31, 2025
639dcf5
Remove native_clang package and dependency from native_libtapi and pa…
aleflm May 31, 2025
55e1fee
Remove native_cctools package and from Darwin build configuration and…
aleflm May 31, 2025
3d8bd44
Remove miniupnpc package and dependency from CMake and packages.mk
aleflm May 31, 2025
d9294fb
Remove libX11 package and dependency from libXext and qt46 package
aleflm Jun 1, 2025
eb6da11
Remove libSM package and dependency from qt46 package
aleflm Jun 1, 2025
10cd4e9
Remove xextproto package and dependency from libX11 and libXext package
aleflm May 31, 2025
9768186
Remove libXext package
aleflm Jun 1, 2025
dd7e128
Remove native_libdmg-hfsplus package
aleflm Jun 1, 2025
20bc4a4
Remove native_ds_store package
aleflm Jun 1, 2025
01a28d1
Remove native_libtapi package
aleflm Jun 1, 2025
df69222
Remove libICE package and dependency from libSM and qt46 package
aleflm Jun 1, 2025
c53791d
Remove dbus package and dependency from qt46 package
aleflm May 31, 2025
88b6bc6
Remove native_protobuf package
aleflm May 31, 2025
4b7a09b
Remove native_ccache package and dependency from packages.mk
aleflm May 31, 2025
61b5024
Remove native_cmake and rely on the platform cmake
aleflm Jun 1, 2025
2f5964e
remove qt46 package
aleflm Jun 1, 2025
41e0af9
native_b2.mk: fix to use it in Guix
aleflm Jun 1, 2025
1f6c4b9
Remove native_mac_alias package and dependency from packages.mk
aleflm Jun 1, 2025
31820a4
Update xproto config.guess/sub, since it does not support aarch64
aleflm May 24, 2025
2708c1e
Working draft
aleflm Jun 3, 2025
36ac8c3
starting to fix guix macOS
aleflm Jun 3, 2025
6ef9912
fixed boost build
aleflm Jun 3, 2025
5cff86a
fix tor build
aleflm Jun 3, 2025
1017dfa
Refactor build.sh and update boost by usin variable for conditions
aleflm Jun 4, 2025
eeda5c7
fix zlib, tor, fontconfig
aleflm Jun 4, 2025
fe7447e
fix gmp
aleflm Jun 4, 2025
06a6570
fix zlib ar
aleflm Jun 4, 2025
6f25823
fix zlib with cmake
aleflm Jun 4, 2025
f20cb28
fix mingw openssl local build issue, fix the zlib issue
aleflm Jun 4, 2025
8fc8fc8
fix qt zeromq windows-ext
aleflm Jun 4, 2025
ad6098d
Add linker and sdk path to build.sh for guix
aleflm Jun 4, 2025
41a1051
fix glibc version and CIs
aleflm Jun 12, 2025
cd3de82
fix compilation hosts
aleflm Jun 12, 2025
b24a5b5
Create windows installer
aleflm Jun 28, 2025
6051258
Rename man docs to firo
aleflm Jun 28, 2025
c6a4d2f
Add stripping and checksums for all target
aleflm Jun 28, 2025
8a626e1
Update cmake component for stripping for MacOS
aleflm Jun 28, 2025
8920fb7
Create AppImage for MacOS and update cmake module for it
aleflm Jun 28, 2025
47d3187
Write an alternative for sponge
aleflm Jun 29, 2025
05d0ae2
Update macdeployqtplus python script to not use cctools
aleflm Jun 29, 2025
beb55e7
Update CI
aleflm Jun 29, 2025
edb81b7
Fix two minor typo in CI
aleflm Jun 30, 2025
61a8947
Create a parent folder within tarball files
aleflm Jul 5, 2025
9da82fb
Copy README.md in tarball files
aleflm Jul 5, 2025
9102f2d
Fix nested folder structure for mingw in guix
aleflm Jul 6, 2025
8047e50
Fix commit versioning for cmake
aleflm Jul 7, 2025
2138c4c
Update the name and content of dist-archive
aleflm Jul 7, 2025
d68c991
Fix versioning for guix, no dirty suffix anymore and update clientve…
aleflm Jul 8, 2025
fde8f42
Update creating the source tarball to handle submodules
aleflm Jul 9, 2025
5051719
Build for windows statically and remove dlls copying
aleflm Jul 15, 2025
a45cd24
Fix windows installer
aleflm Jul 15, 2025
677c3a7
Update macdeploy signing scripts
aleflm Jul 20, 2025
ece7ab6
Update macdeploy to notarize too
aleflm Jul 20, 2025
ef465ec
Update signing script to be a single and simpler script with notarizi…
aleflm Jul 21, 2025
232950a
Update sign script to use an env variables for notarizing or skiping it
aleflm Jul 25, 2025
0139afc
Add dmg creation script + make both scripts executable
aleflm Jul 28, 2025
5a2c8f2
Copy dmg script where it needed
aleflm Jul 29, 2025
2c9a4aa
Fix typo in CI in detach sig script
aleflm Jul 29, 2025
b676fce
Add install-dmg.md documentation and update build scripts to include it
aleflm Jul 29, 2025
fd50ef5
Update CMake configuration to set CLIENT_VERSION_IS_RELEASE to true i…
aleflm Jul 31, 2025
9db3a47
Fix typo for windows artifacts, fix Jenkins
aleflm Sep 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
445 changes: 419 additions & 26 deletions .github/workflows/ci-master.yml

Large diffs are not rendered by default.

42 changes: 34 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ set(CLIENT_VERSION_MINOR 14)
set(CLIENT_VERSION_REVISION 14)
set(CLIENT_VERSION_BUILD 1)
set(CLIENT_VERSION_RC 0)
set(CLIENT_VERSION_IS_RELEASE "false")
set(CLIENT_VERSION_IS_RELEASE "false" CACHE STRING "Is this a release build?")
set(COPYRIGHT_YEAR "2024")

# During the enabling of the CXX and CXXOBJ languages, we modify
Expand Down Expand Up @@ -461,12 +461,20 @@ find_library(TOR_LIBRARY

# Find OpenSSL library
find_package(OpenSSL 1.1.1 REQUIRED)

# Find MiniUPNP library
find_library(MINIUPNP_LIBRARY
NAMES miniupnpc
REQUIRED
)
if(MINGW)
message(STATUS "Patching OpenSSL::Crypto INTERFACE_LINK_LIBRARIES for MinGW")
# Retrieve the current INTERFACE_LINK_LIBRARIES property (as a list)
get_target_property(_openssl_libs OpenSSL::Crypto INTERFACE_LINK_LIBRARIES)
if(_openssl_libs)
message(STATUS "Before patch: ${_openssl_libs}")
# Remove the 'dl' element from the list
list(REMOVE_ITEM _openssl_libs "dl")
message(STATUS "After patch: ${_openssl_libs}")
set_target_properties(OpenSSL::Crypto PROPERTIES
INTERFACE_LINK_LIBRARIES "${_openssl_libs}"
)
endif()
endif()

# Find GMP library
find_package(GMP 6.2.1 REQUIRED)
Expand Down Expand Up @@ -892,4 +900,22 @@ include(WarnAboutGlobalProperties)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Firo client software")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_VERBATIM_VARIABLES YES)
include(CPack)
include(CPack)

# Static linking option for Windows
if(WIN32 AND MINGW AND STATIC_BUILD)
option(STATIC_BUILD "Build with static linking" OFF)

if(STATIC_BUILD)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".lib")
set(BUILD_SHARED_LIBS OFF)

# Force static runtime
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static -static-libgcc -static-libstdc++")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static -static-libgcc")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -static-libgcc -static-libstdc++")

# Ensure we link against static versions of system libraries
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Bstatic")
endif()
endif()
54 changes: 40 additions & 14 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,49 +7,75 @@ pipeline {
}
environment {
CCACHE_DIR = '/tmp/.ccache'
HOST = 'x86_64-linux-gnu'
}
stages {
stage('Build dependencies') {
steps {
sh 'git clean -d -f -f -q -x'
dir('depends') {
sh 'make -j`nproc` HOST=x86_64-linux-gnu'
sh 'make -j`nproc` HOST=${HOST}'
}
}
}
stage('Build') {
steps {
sh './autogen.sh'
sh './configure --prefix=`pwd`/depends/x86_64-linux-gnu'
sh 'make dist'
sh 'mkdir -p dist'
sh 'tar -C dist --strip-components=1 -xzf firo-*.tar.gz'
dir('dist') {
sh './configure --prefix=`pwd`/../depends/x86_64-linux-gnu --enable-tests --enable-crash-hooks'
sh '''
export HOST_TRIPLET=${HOST}
env PKG_CONFIG_PATH="$(pwd)/depends/$HOST_TRIPLET/lib/pkgconfig:$PKG_CONFIG_PATH" \\
cmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/depends/$HOST_TRIPLET/toolchain.cmake \\
-DBUILD_CLI=ON -DBUILD_TESTS=ON -DBUILD_GUI=ON -DCMAKE_BUILD_TYPE=Release \\
-DCLIENT_VERSION_IS_RELEASE=true -DENABLE_CRASH_HOOKS=ON \\
-S$(pwd) -B$(pwd)/build
'''
dir('build') {
sh 'make -j`nproc`'
}
}
}
stage('Test') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE'){
dir('dist') {
sh 'make check'
dir('build') {
sh 'make test'
}
Comment on lines +39 to 41
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Prefer ctest with failure output and emit JUnit for Jenkins.

Also set a safe UTF-8 locale and clear LC_ALL to avoid WSL/Guix issues noted in the PR.

-                        sh 'make test'
+                        sh '''
+                            export LANG=C.UTF-8
+                            unset LC_ALL || true
+                            mkdir -p ../test-logs
+                            ctest --output-on-failure -j"${JOBS:-$(nproc)}" --output-junit ../test-logs/ctest.xml
+                        '''
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
dir('build') {
sh 'make test'
}
dir('build') {
sh '''
export LANG=C.UTF-8
unset LC_ALL || true
mkdir -p ../test-logs
ctest --output-on-failure -j"${JOBS:-$(nproc)}" --output-junit ../test-logs/ctest.xml
'''
}
🤖 Prompt for AI Agents
Jenkinsfile lines 39-41: replace the 'make test' step with a shell that clears
LC_ALL, sets a safe UTF-8 locale (e.g. export LANG=C.UTF-8), then runs ctest
with failure output and JUnit output (e.g. ctest --output-on-failure
--output-junit test-results.xml), and ensure the produced test-results.xml is
available to Jenkins for JUnit reporting (archive/record the file in the
pipeline).

}
}
}
stage('Archive unit tests logs') {
steps {
archiveArtifacts artifacts: 'dist/src/test-suite.log',
allowEmptyArchive: true
script {
sh '''
mkdir -p test-logs
find build -name "LastTest.log" -exec cp {} test-logs/ctest-last.log \\; || true
find build -name "LastTestsFailed.log" -exec cp {} test-logs/ctest-failed.log \\; || true
find build -path "*/Testing/Temporary/*" -name "*.log" -exec cp {} test-logs/ \\; || true
find build -name "*test*.log" -exec cp {} test-logs/ \\; || true
'''
}
archiveArtifacts artifacts: 'test-logs/**',
allowEmptyArchive: true
}
}
stage('RPC Tests') {
steps {
dir('dist') {
sh 'qa/pull-tester/rpc-tests.py -extended'
sh '''
export FIROD="$(pwd)/build/bin/firod"
export FIROCLI="$(pwd)/build/bin/firo-cli"
qa/pull-tester/rpc-tests.py -extended
'''
}
}
stage('Archive Binaries') {
steps {
script {
sh '''
mkdir -p artifacts
cp build/bin/firo* artifacts/ || true
'''
}
archiveArtifacts artifacts: 'artifacts/**',
allowEmptyArchive: true
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \

OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_INSTALLER_ICONS) \
$(top_srcdir)/contrib/macdeploy/$(OSX_BACKGROUND_SVG) \
$(top_srcdir)/contrib/macdeploy/detached-sig-apply.sh \
$(top_srcdir)/contrib/macdeploy/detached-sig-create.sh

$(top_srcdir)/contrib/macdeploy/detached-sig.sh \
$(top_srcdir)/contrib/macdeploy/create-dmg.sh \
$(top_srcdir)/contrib/macdeploy/install-dmg.md
COVERAGE_INFO = baseline_filtered_combined.info baseline.info \
leveldb_baseline.info test_bitcoin_filtered.info total_coverage.info \
baseline_filtered.info rpc_test.info rpc_test_filtered.info \
Expand Down
1 change: 1 addition & 0 deletions cmake/module/AddBoostIfNeeded.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ function(add_boost_if_needed)
cmake_policy(SET CMP0167 OLD)
endif()
set(Boost_NO_BOOST_CMAKE OFF)
set(Boost_USE_STATIC_RUNTIME ON)
set(_boost_components atomic chrono filesystem program_options system thread)
if(BUILD_TESTS)
list(APPEND _boost_components unit_test_framework)
Expand Down
7 changes: 7 additions & 0 deletions cmake/module/FindQt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,13 @@ target_link_libraries(Qt5_Dependencies
${LIB_Z}
)

if(NOT WIN32 AND NOT MINGW)
target_link_libraries(Qt5_Dependencies
INTERFACE
${CMAKE_DL_LIBS} # Ensure dynamic loading is available.
)
endif()

add_library(Qt5::Dependencies ALIAS Qt5_Dependencies)

# Restore CMAKE_FIND_LIBRARY_SUFFIXES state.
Expand Down
13 changes: 12 additions & 1 deletion cmake/module/GenerateSetupNsi.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,24 @@ 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 "firo")
set(PACKAGE_URL ${PROJECT_HOMEPAGE_URL})
set(CLIENT_TARNAME "Firo")
set(PACKAGE_TARNAME "Firo")
set(PACKAGE_NAME "Firo")
set(WINDOWS_BITS "64")
set(CLIENT_VERSION_MAJOR ${CLIENT_VERSION_MAJOR})
set(CLIENT_VERSION_MINOR ${CLIENT_VERSION_MINOR})
set(CLIENT_VERSION_REVISION ${CLIENT_VERSION_REVISION})
set(CLIENT_VERSION_BUILD ${CLIENT_VERSION_BUILD})
set(BITCOIN_GUI_NAME "firo-qt")
set(BITCOIN_DAEMON_NAME "firod")
set(BITCOIN_CLI_NAME "firo-cli")
set(BITCOIN_TX_NAME "firo-tx")
set(BITCOIN_WALLET_TOOL_NAME "firo-wallet")
set(BITCOIN_TEST_NAME "test_firo")
set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
# Set executable directory based on build system
# CMake/Guix builds put executables in bin/, autotools in release/
set(EXECUTABLE_DIR "bin")
configure_file(${PROJECT_SOURCE_DIR}/share/setup.nsi.in ${PROJECT_BINARY_DIR}/firo-win64-setup.nsi USE_SOURCE_PERMISSIONS @ONLY)
endfunction()
24 changes: 19 additions & 5 deletions cmake/module/Maintenance.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ function(add_maintenance_targets)
endfunction()

function(add_windows_deploy_target)
if(MINGW AND TARGET firo-qt AND TARGET firod AND TARGET firo-cli AND TARGET firo-tx AND TARGET firo-wallet AND TARGET firo-util AND TARGET test_firo)
if(MINGW AND TARGET firo-qt AND TARGET firod AND TARGET firo-cli AND TARGET firo-tx)
# TODO: Consider replacing this code with the CPack NSIS Generator.
# See https://cmake.org/cmake/help/latest/cpack_gen/nsis.html
include(GenerateSetupNsi)
Expand All @@ -78,9 +78,6 @@ function(add_windows_deploy_target)
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:firod> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:firod>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:firo-cli> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:firo-cli>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:firo-tx> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:firo-tx>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:firo-wallet> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:firo-wallet>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:firo-util> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:firo-util>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:test_firo> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:test_firo>
COMMAND makensis -V2 ${PROJECT_BINARY_DIR}/firo-win64-setup.nsi
VERBATIM
)
Expand All @@ -100,16 +97,33 @@ function(add_macos_deploy_target)
file(CONFIGURE OUTPUT ${macos_app}/Contents/Resources/Base.lproj/InfoPlist.strings
CONTENT "{ CFBundleDisplayName = \"@CLIENT_NAME@\"; CFBundleName = \"@CLIENT_NAME@\"; }"
)

# Find appropriate strip command
if(CMAKE_STRIP)
set(STRIP_COMMAND ${CMAKE_STRIP})
elseif(CMAKE_HOST_APPLE)
set(STRIP_COMMAND strip) # macOS native strip
else()
find_program(STRIP_COMMAND NAMES llvm-strip strip)
endif()


add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Firo-Qt
COMMAND ${CMAKE_COMMAND} --install ${PROJECT_BINARY_DIR} --config $<CONFIG> --component GUI --prefix ${macos_app}/Contents/MacOS --strip
COMMAND ${CMAKE_COMMAND} --install ${PROJECT_BINARY_DIR} --config $<CONFIG> --component GUI --prefix ${macos_app}/Contents/MacOS
COMMAND ${CMAKE_COMMAND} -E rename ${macos_app}/Contents/MacOS/bin/$<TARGET_FILE_NAME:firo-qt> ${macos_app}/Contents/MacOS/Firo-Qt
COMMAND ${CMAKE_COMMAND} -E rm -rf ${macos_app}/Contents/MacOS/bin
COMMAND ${STRIP_COMMAND} ${macos_app}/Contents/MacOS/Firo-Qt || true
VERBATIM
)

string(REPLACE " " "-" osx_volname ${CLIENT_NAME})

add_custom_target(osx_volname
COMMAND ${CMAKE_COMMAND} -E echo "${osx_volname}" > osx_volname
COMMENT "Creating OSX volume name"
)

if(CMAKE_HOST_APPLE)
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/${osx_volname}.zip
Expand Down
30 changes: 22 additions & 8 deletions cmake/module/WindowsSystemConfiguration.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ if(WIN32)
find_library(LIBEVENT_EXTRA event_extra REQUIRED)
find_library(LIBEVENT_CORE event_core REQUIRED)

if(MINGW)
if(MINGW AND NOT STATIC_BUILD)
message(STATUS "Configuring extra DLL copy steps for MinGW runtime dependencies (${MINGW_ARCH}-bit).")

# Determine architecture-specific settings
Expand All @@ -44,16 +44,30 @@ if(WIN32)
# We use CMAKE_C_COMPILER as it should be set to the appropriate MinGW gcc.
set(FOUND_DLLS "")
foreach(dll ${NEEDED_DLLS})
# Check if this DLL is on the PATH
execute_process(
COMMAND ${CMAKE_C_COMPILER} -print-file-name=${dll}
OUTPUT_VARIABLE DLL_PATH
COMMAND ${CMAKE_COMMAND} -E which ${dll}
OUTPUT_VARIABLE DLL_IN_PATH
RESULT_VARIABLE FOUND_IN_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT DLL_PATH OR DLL_PATH STREQUAL "${dll}")
message(FATAL_ERROR "Could not determine path for DLL: ${dll} using ${CMAKE_C_COMPILER}")
if(FOUND_IN_PATH EQUAL 0 AND EXISTS "${DLL_IN_PATH}")
message(STATUS "Found ${dll} in PATH at ${DLL_IN_PATH}")
list(APPEND FOUND_DLLS "${DLL_IN_PATH}")
else()
message(STATUS "Found ${dll} at ${DLL_PATH}")
list(APPEND FOUND_DLLS ${DLL_PATH})
# Fallback to compiler detection
message(STATUS "Not found in PATH, checking with -print-file-name for ${dll}")
execute_process(
COMMAND ${CMAKE_C_COMPILER} -print-file-name=${dll}
OUTPUT_VARIABLE DLL_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT DLL_PATH OR DLL_PATH STREQUAL "${dll}")
message(WARNING "Could not determine path for DLL: ${dll}, skipping.")
else()
message(STATUS "Found ${dll} at ${DLL_PATH}")
list(APPEND FOUND_DLLS "${DLL_PATH}")
endif()
endif()
endforeach()

Expand All @@ -73,6 +87,6 @@ if(WIN32)

# Install the DLLs to the install package bin folder
install(FILES ${FOUND_DLLS} DESTINATION bin)
endif()
endif() # MINGW AND NOT STATIC_BUILD

endif()
8 changes: 2 additions & 6 deletions cmake/utilities.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,5 @@ endfunction()
# Set platform-specific output name for an executable target
# Usage: set_platform_output_name(target_name base_name_variable)
function(set_platform_output_name target_name base_name_variable)
if(WIN32)
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME "${${base_name_variable}}.exe")
else()
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME "${${base_name_variable}}")
endif()
endfunction()
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME "${${base_name_variable}}")
endfunction()
3 changes: 3 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1324,6 +1324,9 @@ AC_SUBST(BITCOIN_GUI_NAME)
AC_SUBST(BITCOIN_CLI_NAME)
AC_SUBST(BITCOIN_TX_NAME)

dnl For Windows installer: autotools puts executables in release/, cmake in bin/
AC_SUBST(EXECUTABLE_DIR, "release")

AC_SUBST(RELDFLAGS)
AC_SUBST(DEBUG_CPPFLAGS)
AC_SUBST(WARN_CXXFLAGS)
Expand Down
5 changes: 3 additions & 2 deletions contrib/gitian-descriptors/gitian-osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,9 @@ script: |
make deploydir
mkdir -p unsigned-app-${i}
cp osx_volname unsigned-app-${i}/
cp contrib/macdeploy/detached-sig-apply.sh unsigned-app-${i}
cp contrib/macdeploy/detached-sig-create.sh unsigned-app-${i}
cp contrib/macdeploy/detached-sig.sh unsigned-app-${i}
cp contrib/macdeploy/create-dmg.sh unsigned-app-${i}
cp contrib/macdeploy/install-dmg.md unsigned-app-${i}
cp ${BASEPREFIX}/${i}/native/bin/dmg unsigned-app-${i}
mv dist unsigned-app-${i}
pushd unsigned-app-${i}
Expand Down
Loading
Loading