Skip to content

Commit 9cc3479

Browse files
committed
Merge #291: cmake: Add mp_headers custom target
16362f4 cmake: Add `mp_headers` custom target (Hennadii Stepanov) Pull request description: The new `mp_headers` target acts as a build-graph node for generated Cap'n Proto C++ headers. By providing this custom target, other targets that include the headers can properly order themselves after the generation step without needing to depend on the library target that also uses them. This convenience target is necessary for proper build dependency management, as the underlying `capnp_generate_cpp` function is not [`CODEGEN`](https://cmake.org/cmake/help/latest/policy/CMP0171.html)-aware. Required for bitcoin/bitcoin#35468. ACKs for top commit: ryanofsky: Code review ACK 16362f4. Thanks for implementing this. It should make it easier to have control over generated code. Tree-SHA512: c3551b14fce54a65ac0577c8e39e25a3b0c6cff7a58a9383c73bc8f21078c1a944be57c0ccab2080d67b836a0b6cc4e33a60255fc9ca7dc1a8aa2a222c9152df
2 parents 201abd9 + 16362f4 commit 9cc3479

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ configure_file(include/mp/config.h.in "${CMAKE_CURRENT_BINARY_DIR}/include/mp/co
139139
# Generated C++ Capn'Proto schema files
140140
capnp_generate_cpp(MP_PROXY_SRCS MP_PROXY_HDRS include/mp/proxy.capnp)
141141
set_source_files_properties("${MP_PROXY_SRCS}" PROPERTIES SKIP_LINTING TRUE) # Ignored before cmake 3.27
142+
# Build-graph node for generated headers. This lets targets that include
143+
# the headers order themselves after generation without depending on the
144+
# library target that also uses them.
145+
add_custom_target(mp_headers DEPENDS ${MP_PROXY_HDRS})
142146

143147
# util library
144148
add_library(mputil OBJECT src/mp/util.cpp)

0 commit comments

Comments
 (0)