Skip to content

Commit 6640654

Browse files
committed
Merge #180: cmake: Port PR29890 from the master branch
772769a fixup! cmake: Add `Maintenance` module (Hennadii Stepanov) fa36e33 fixup! cmake: Add platform-specific linker flags (Hennadii Stepanov) c6dc19f fixup! build: Generate `toolchain.cmake` in depends (Hennadii Stepanov) cddeb04 fixup! cmake: Add root `CMakeLists.txt` file (Hennadii Stepanov) Pull request description: This PR ports bitcoin#29890 and fixes cross-compiling for macOS been broken since the recent sync/rebase [PR](#179). ACKs for top commit: m3dwards: Giving a utACK 772769a Tree-SHA512: f0f10317b1fd5e46d1b7f340f4efb9f1b27a6a7a9b11191736c8edf32c278ba6d9ca4ef38d03a78cb40d58637e7e9746020b264a3f7eeb9903c23cb726f18fbf
2 parents 101f3ef + 772769a commit 6640654

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

CMakeLists.txt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ if(POLICY CMP0141)
1515
endif()
1616
cmake_minimum_required(VERSION 3.22)
1717

18+
#=============================
19+
# Project / Package metadata
20+
#=============================
1821
set(PACKAGE_NAME "Bitcoin Core")
1922
set(CLIENT_VERSION_MAJOR 27)
2023
set(CLIENT_VERSION_MINOR 99)
@@ -27,7 +30,7 @@ project(BitcoinCore
2730
VERSION ${CLIENT_VERSION_MAJOR}.${CLIENT_VERSION_MINOR}.${CLIENT_VERSION_BUILD}
2831
DESCRIPTION "Bitcoin client software"
2932
HOMEPAGE_URL "https://bitcoincore.org/"
30-
LANGUAGES CXX
33+
LANGUAGES NONE
3134
)
3235

3336
set(PACKAGE_VERSION ${PROJECT_VERSION})
@@ -39,6 +42,15 @@ set(COPYRIGHT_HOLDERS "The %s developers")
3942
set(COPYRIGHT_HOLDERS_FINAL "The ${PACKAGE_NAME} developers")
4043
set(PACKAGE_BUGREPORT "https://github.com/bitcoin/bitcoin/issues")
4144

45+
#=============================
46+
# Language setup
47+
#=============================
48+
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT CMAKE_HOST_APPLE)
49+
# We do not use the install_name_tool when cross-compiling for macOS.
50+
# So disable this tool check in further enable_language() commands.
51+
set(CMAKE_PLATFORM_HAS_INSTALLNAME FALSE)
52+
endif()
53+
enable_language(CXX)
4254
set(CMAKE_CXX_STANDARD 20)
4355
set(CMAKE_CXX_STANDARD_REQUIRED ON)
4456
set(CMAKE_CXX_EXTENSIONS OFF)
@@ -253,7 +265,9 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
253265
# "ad_strip" as the symbol for the entry point.
254266
try_append_linker_flag("-Wl,-dead_strip" TARGET core_base_interface)
255267
try_append_linker_flag("-Wl,-dead_strip_dylibs" TARGET core_base_interface)
256-
try_append_linker_flag("-Wl,-headerpad_max_install_names" TARGET core_base_interface)
268+
if(CMAKE_HOST_APPLE)
269+
try_append_linker_flag("-Wl,-headerpad_max_install_names" TARGET core_base_interface)
270+
endif()
257271
endif()
258272

259273
include(AddThreadsIfNeeded)

cmake/module/Maintenance.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ function(add_macos_deploy_target)
114114
if(CMAKE_CROSSCOMPILING)
115115
add_custom_command(
116116
OUTPUT ${CMAKE_BINARY_DIR}/dist/${macos_app}/Contents/MacOS/Bitcoin-Qt
117-
COMMAND INSTALL_NAME_TOOL=${CMAKE_INSTALL_NAME_TOOL} OTOOL=${OTOOL} STRIP=${CMAKE_STRIP} ${PYTHON_COMMAND} ${CMAKE_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR}
117+
COMMAND OTOOL=${OTOOL} ${PYTHON_COMMAND} ${CMAKE_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR}
118118
DEPENDS ${CMAKE_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt
119119
VERBATIM
120120
)

depends/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,6 @@ $(host_prefix)/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(fina
269269
-e 's|@RANLIB@|$(host_RANLIB)|' \
270270
-e 's|@STRIP@|$(host_STRIP)|' \
271271
-e 's|@OBJCOPY@|$(host_OBJCOPY)|' \
272-
-e 's|@INSTALL_NAME_TOOL@|$(host_INSTALL_NAME_TOOL)|' \
273272
-e 's|@OTOOL@|$(host_OTOOL)|' \
274273
-e 's|@depends_prefix@|$(host_prefix)|' \
275274
-e 's|@CFLAGS@|$(strip $(host_CFLAGS))|' \

depends/toolchain.cmake.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ set(CMAKE_AR "@AR@")
8787
set(CMAKE_RANLIB "@RANLIB@")
8888
set(CMAKE_STRIP "@STRIP@")
8989
set(CMAKE_OBJCOPY "@OBJCOPY@")
90-
set(CMAKE_INSTALL_NAME_TOOL "@INSTALL_NAME_TOOL@")
9190
set(OTOOL "@OTOOL@")
9291

9392
# Using our own built dependencies should not be

0 commit comments

Comments
 (0)