diff --git a/CMakeLists.txt b/CMakeLists.txt index b0026414154..edfb63926a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,6 +71,13 @@ set(CMAKE_CXX_EXTENSIONS OFF) list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/module) +# Flatten static lib dependencies. +# Without this, if libfoo.a depends on libbar.a, libfoo's objects can't begin +# to be compiled until libbar.a has been created. +if (NOT DEFINED CMAKE_OPTIMIZE_DEPENDENCIES) + set(CMAKE_OPTIMIZE_DEPENDENCIES TRUE) +endif() + #============================= # Configurable options #============================= diff --git a/cmake/minisketch.cmake b/cmake/minisketch.cmake index bb93c804672..7407739ed94 100644 --- a/cmake/minisketch.cmake +++ b/cmake/minisketch.cmake @@ -74,6 +74,9 @@ add_library(minisketch STATIC EXCLUDE_FROM_ALL ${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_8bytes.cpp ) +# Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/24058 +set_target_properties(minisketch PROPERTIES OPTIMIZE_DEPENDENCIES OFF) + target_include_directories(minisketch PUBLIC $ diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 4999dbf13f0..9ca26a9e27b 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -36,6 +36,9 @@ add_library(bitcoin_util STATIC EXCLUDE_FROM_ALL ../sync.cpp ) +# Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/24058 +set_target_properties(bitcoin_util PROPERTIES OPTIMIZE_DEPENDENCIES OFF) + target_link_libraries(bitcoin_util PRIVATE core_interface