Skip to content

Commit 6c508ac

Browse files
committed
Merge bitcoin/bitcoin#28258: bitcoin-tidy: fix macOS build
bb3263d bitcoin-tidy: fix macOS build (Cory Fields) Pull request description: [LLVM uses these options](https://github.com/llvm/llvm-project/blob/main/llvm/cmake/modules/HandleLLVMOptions.cmake#L178) for building as well, so there's precedent. Also fix the shared library extension which was incorrectly being set to dylib. Thanks to jonatack for reporting and debugging. ACKs for top commit: jonatack: ACK bb3263d tested with arm64 macos 13.5, llvm 16.0.6 and cmake 3.27.2 Tree-SHA512: de7bfd497f38f1565a14d217d0b057cbfa788bdda702b5942b7f0b55947ae5e1c05af13e7d6a073ed036bc4db57035868f180034508b6e084ab9b901a5baaf2f
2 parents 3654d84 + bb3263d commit 6c508ac

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

contrib/devtools/bitcoin-tidy/CMakeLists.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ else()
2525
target_compile_options(bitcoin-tidy PRIVATE -fno-exceptions)
2626
endif()
2727

28+
if(CMAKE_HOST_APPLE)
29+
# ld64 expects no undefined symbols by default
30+
target_link_options(bitcoin-tidy PRIVATE -Wl,-flat_namespace)
31+
target_link_options(bitcoin-tidy PRIVATE -Wl,-undefined -Wl,suppress)
32+
endif()
33+
2834
# Add warnings
2935
if (MSVC)
3036
target_compile_options(bitcoin-tidy PRIVATE /W4)
@@ -33,7 +39,12 @@ else()
3339
target_compile_options(bitcoin-tidy PRIVATE -Wextra)
3440
endif()
3541

36-
set(CLANG_TIDY_COMMAND "${CLANG_TIDY_EXE}" "--load=${CMAKE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}bitcoin-tidy${CMAKE_SHARED_LIBRARY_SUFFIX}" "-checks=-*,bitcoin-*")
42+
if(CMAKE_VERSION VERSION_LESS 3.27)
43+
set(CLANG_TIDY_COMMAND "${CLANG_TIDY_EXE}" "--load=${CMAKE_BINARY_DIR}/${CMAKE_SHARED_MODULE_PREFIX}bitcoin-tidy${CMAKE_SHARED_MODULE_SUFFIX}" "-checks=-*,bitcoin-*")
44+
else()
45+
# CLANG_TIDY_COMMAND supports generator expressions as of 3.27
46+
set(CLANG_TIDY_COMMAND "${CLANG_TIDY_EXE}" "--load=$<TARGET_FILE:bitcoin-tidy>" "-checks=-*,bitcoin-*")
47+
endif()
3748

3849
# Create a dummy library that runs clang-tidy tests as a side-effect of building
3950
add_library(bitcoin-tidy-tests OBJECT EXCLUDE_FROM_ALL example_logprintf.cpp)

0 commit comments

Comments
 (0)