diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2024-10-14 10:16:17 -0400 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2024-10-14 10:16:17 -0400 |
| commit | 58a1d54a4f90a235616ede3f8ebae2b8dca41589 (patch) | |
| tree | 81a31664f0a44350c5d123727643108a03977b21 | |
| parent | 83dd5152e6d115426afbb57a94a832ec91b58a46 (diff) | |
| parent | 366eb60ee33396bd9f79bf445b0b1e3339063a55 (diff) | |
| download | monzero-core-58a1d54a4f90a235616ede3f8ebae2b8dca41589.tar.gz monzero-core-58a1d54a4f90a235616ede3f8ebae2b8dca41589.tar.xz monzero-core-58a1d54a4f90a235616ede3f8ebae2b8dca41589.zip | |
Merge pull request #9517
366eb60 cmake: boost: fix header-only library search, bump minimum (tobtoht)
| -rw-r--r-- | CMakeLists.txt | 42 | ||||
| -rw-r--r-- | README.md | 2 |
2 files changed, 27 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b77c3739..d49316a7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1075,29 +1075,39 @@ if(STATIC) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_RUNTIME ON) endif() -find_package(Boost 1.58 QUIET REQUIRED COMPONENTS system filesystem thread date_time chrono regex serialization program_options locale) -add_definitions(-DBOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) -add_definitions(-DBOOST_NO_AUTO_PTR) -add_definitions(-DBOOST_UUID_DISABLE_ALIGNMENT) # This restores UUID's std::has_unique_object_representations property -set(CMAKE_FIND_LIBRARY_SUFFIXES ${OLD_LIB_SUFFIXES}) +# Find Boost headers +set(BOOST_MIN_VER 1.62) +find_package(Boost ${BOOST_MIN_VER} QUIET REQUIRED) + if(NOT Boost_FOUND) - die("Could not find Boost libraries, please make sure you have installed Boost or libboost-all-dev (>=1.58) or the equivalent") + die("Could not find Boost libraries, please make sure you have installed Boost or libboost-all-dev (>=${BOOST_MIN_VER}) or the equivalent") elseif(Boost_FOUND) - message(STATUS "Found Boost Version: ${Boost_VERSION}") - if (Boost_VERSION VERSION_LESS 10 AND Boost_VERSION VERSION_LESS 1.62.0 AND NOT (OPENSSL_VERSION VERSION_LESS 1.1)) - set(BOOST_BEFORE_1_62 true) - endif() - if (NOT Boost_VERSION VERSION_LESS 10 AND Boost_VERSION VERSION_LESS 106200 AND NOT (OPENSSL_VERSION VERSION_LESS 1.1)) - set(BOOST_BEFORE_1_62 true) + message(STATUS "Found Boost Version: ${Boost_VERSION_STRING}") + + set(BOOST_COMPONENTS filesystem thread date_time chrono serialization program_options locale) + + # Boost System is header-only since 1.69 + if (Boost_VERSION_STRING VERSION_LESS 1.69.0) + list(APPEND BOOST_COMPONENTS system) endif() - if (BOOST_BEFORE_1_62) - message(FATAL_ERROR "Boost ${Boost_VERSION} (older than 1.62) is too old to link with OpenSSL ${OPENSSL_VERSION} (1.1 or newer) found at ${OPENSSL_INCLUDE_DIR} and ${OPENSSL_LIBRARIES}. " - "Update Boost or install OpenSSL 1.0 and set path to it when running cmake: " - "cmake -DOPENSSL_ROOT_DIR='/usr/include/openssl-1.0'") + + # Boost Regex is header-only since 1.77 + if (Boost_VERSION_STRING VERSION_LESS 1.77.0) + list(APPEND BOOST_COMPONENTS regex) endif() + + message(STATUS "Boost components: ${BOOST_COMPONENTS}") + + # Find required Boost libraries + find_package(Boost ${BOOST_MIN_VER} QUIET REQUIRED COMPONENTS ${BOOST_COMPONENTS}) + set(CMAKE_FIND_LIBRARY_SUFFIXES ${OLD_LIB_SUFFIXES}) endif() +add_definitions(-DBOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) +add_definitions(-DBOOST_NO_AUTO_PTR) +add_definitions(-DBOOST_UUID_DISABLE_ALIGNMENT) # This restores UUID's std::has_unique_object_representations property + include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) if(MINGW) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wa,-mbig-obj") @@ -168,7 +168,7 @@ library archives (`.a`). | GCC | 5 | NO | `build-essential` | `base-devel` | `base-devel` | `gcc` | NO | | | CMake | 3.5 | NO | `cmake` | `cmake` | `cmake` | `cmake` | NO | | | pkg-config | any | NO | `pkg-config` | `base-devel` | `base-devel` | `pkgconf` | NO | | -| Boost | 1.58 | NO | `libboost-all-dev` | `boost` | `boost-devel` | `boost-devel` | NO | C++ libraries | +| Boost | 1.62 | NO | `libboost-all-dev` | `boost` | `boost-devel` | `boost-devel` | NO | C++ libraries | | OpenSSL | basically any | NO | `libssl-dev` | `openssl` | `libressl-devel` | `openssl-devel` | NO | sha256 sum | | libzmq | 4.2.0 | NO | `libzmq3-dev` | `zeromq` | `zeromq-devel` | `zeromq-devel` | NO | ZeroMQ library | | OpenPGM | ? | NO | `libpgm-dev` | `libpgm` | | `openpgm-devel` | NO | For ZeroMQ | |
