Skip to content

Commit d3f3967

Browse files
committed
Merge #34: cmake: Avoid overlinking
8342981 fixup! cmake: Build `test_bitcoin` executable (Hennadii Stepanov) ab9853a fixup! cmake: Build `bench_bitcoin` executable (Hennadii Stepanov) 9a0a914 fixup! cmake: Add wallet functionality (Hennadii Stepanov) e4b4fdd fixup! cmake: Add `libzmq` optional package support (Hennadii Stepanov) 0f0dcca fixup! cmake: Build `bitcoin_util` static library (Hennadii Stepanov) Pull request description: Additionally, this PR fixes "ld: warning: ignoring duplicate libraries" on macOS: ``` [....] Linking CXX executable test_bitcoin ld: warning: ignoring duplicate libraries: '../../libleveldb.a', '../libbitcoin_common.a', '../univalue/libunivalue.a', '../util/libbitcoin_util.a' ``` ``` [....] Linking CXX executable bench_bitcoin ld: warning: ignoring duplicate libraries: '../../libleveldb.a', '../univalue/libunivalue.a', '../wallet/libbitcoin_wallet.a' ``` The third [commit](aaf50ac) makes the `bitcoin_wallet` library a direct dependency of `bitcoind` rather `bitcoin_node`, that is outlined in https://github.com/bitcoin/bitcoin/blob/master/doc/design/libraries.md. ACKs for top commit: theuni: ACK 8342981 Tree-SHA512: 0f83b10771d22b93ce23122867f2dc2915c39fe2a892b7140aa4d79a21ec5c5eb98431fa1174b1b0b8786ffae6b0f29020d4dac0d7505971cbed0c263593e5fd
2 parents bef9a2f + 8342981 commit d3f3967

File tree

6 files changed

+18
-38
lines changed

6 files changed

+18
-38
lines changed

src/CMakeLists.txt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,13 +217,9 @@ add_library(bitcoin_node STATIC EXCLUDE_FROM_ALL
217217
validation.cpp
218218
validationinterface.cpp
219219
versionbits.cpp
220+
$<$<TARGET_EXISTS:bitcoin_wallet>:wallet/init.cpp>
221+
$<$<NOT:$<TARGET_EXISTS:bitcoin_wallet>>:dummywallet.cpp>
220222
)
221-
if(ENABLE_WALLET)
222-
target_sources(bitcoin_node PRIVATE wallet/init.cpp)
223-
target_link_libraries(bitcoin_node PRIVATE bitcoin_wallet)
224-
else()
225-
target_sources(bitcoin_node PRIVATE dummywallet.cpp)
226-
endif()
227223
target_link_libraries(bitcoin_node
228224
PRIVATE
229225
core
@@ -250,6 +246,7 @@ if(BUILD_DAEMON)
250246
target_link_libraries(bitcoind
251247
core
252248
bitcoin_node
249+
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
253250
)
254251
list(APPEND installable_targets bitcoind)
255252
endif()

src/bench/CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Copyright (c) 2023 The Bitcoin Core developers
1+
# Copyright (c) 2023-present The Bitcoin Core developers
22
# Distributed under the MIT software license, see the accompanying
3-
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
3+
# file COPYING or https://opensource.org/license/mit/.
44

55
include(GenerateHeaders)
66
generate_header_from_raw(data/block413567.raw)
@@ -52,8 +52,7 @@ add_executable(bench_bitcoin
5252
target_link_libraries(bench_bitcoin
5353
core
5454
test_util
55-
leveldb
56-
univalue
55+
bitcoin_node
5756
Boost::headers
5857
)
5958

src/test/CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Copyright (c) 2023 The Bitcoin Core developers
1+
# Copyright (c) 2023-present The Bitcoin Core developers
22
# Distributed under the MIT software license, see the accompanying
3-
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
3+
# file COPYING or https://opensource.org/license/mit/.
44

55
include(GenerateHeaders)
66
generate_header_from_json(data/base58_encode_decode.json)
@@ -140,13 +140,8 @@ target_link_libraries(test_bitcoin
140140
test_util
141141
bitcoin_cli
142142
bitcoin_node
143-
bitcoin_common
144-
bitcoin_util
145143
minisketch
146-
leveldb
147-
univalue
148144
Boost::headers
149-
libevent::libevent
150145
)
151146

152147
if(ENABLE_WALLET)

src/test/util/CMakeLists.txt

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Copyright (c) 2023 The Bitcoin Core developers
1+
# Copyright (c) 2023-present The Bitcoin Core developers
22
# Distributed under the MIT software license, see the accompanying
3-
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
3+
# file COPYING or https://opensource.org/license/mit/.
44

55
add_library(test_util STATIC EXCLUDE_FROM_ALL
66
blockfilter.cpp
@@ -17,22 +17,13 @@ add_library(test_util STATIC EXCLUDE_FROM_ALL
1717
transaction_utils.cpp
1818
txmempool.cpp
1919
validation.cpp
20+
$<$<BOOL:${ENABLE_WALLET}>:${PROJECT_SOURCE_DIR}/src/wallet/test/util.cpp>
2021
)
22+
2123
target_link_libraries(test_util
2224
PRIVATE
2325
core
24-
bitcoin_common
25-
bitcoin_node
26-
leveldb
27-
univalue
2826
Boost::headers
27+
PUBLIC
28+
univalue
2929
)
30-
31-
if(ENABLE_WALLET)
32-
target_sources(test_util
33-
PRIVATE
34-
../../wallet/test/util.cpp
35-
)
36-
endif()
37-
38-
target_link_libraries(test_util PRIVATE core)

src/util/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Copyright (c) 2023 The Bitcoin Core developers
1+
# Copyright (c) 2023-present The Bitcoin Core developers
22
# Distributed under the MIT software license, see the accompanying
3-
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
3+
# file COPYING or https://opensource.org/license/mit/.
44

55
add_library(bitcoin_util STATIC EXCLUDE_FROM_ALL
66
asmap.cpp
@@ -53,7 +53,6 @@ target_link_libraries(bitcoin_util
5353
PRIVATE
5454
core
5555
bitcoin_crypto
56-
univalue
5756
Threads::Threads
5857
$<$<BOOL:${MINGW}>:ws2_32>
5958
)

src/zmq/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Copyright (c) 2023 The Bitcoin Core developers
1+
# Copyright (c) 2023-present The Bitcoin Core developers
22
# Distributed under the MIT software license, see the accompanying
3-
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
3+
# file COPYING or https://opensource.org/license/mit/.
44

55
add_library(bitcoin_zmq STATIC
66
zmqabstractnotifier.cpp
@@ -16,7 +16,6 @@ target_compile_definitions(bitcoin_zmq
1616
target_link_libraries(bitcoin_zmq
1717
PRIVATE
1818
core
19-
leveldb
2019
univalue
2120
$<TARGET_NAME_IF_EXISTS:libzmq>
2221
$<TARGET_NAME_IF_EXISTS:PkgConfig::libzmq>

0 commit comments

Comments
 (0)