Skip to content

Commit bb3263d

Browse files
committed
bitcoin-tidy: fix macOS build
LLVM uses these options for building as well, so there's precedent. Also fix the shared library extension which was incorrectly being set to dylib
1 parent b2ec032 commit bb3263d

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)