Some checks reported errors
BlockStorage/repertory/pipeline/head Something is wrong with the build of this commit
## v2.0.2-rc ### BREAKING CHANGES * Refactored `config.json` - will need to verify configuration settings prior to mounting ### Issues * \#12 \[Unit Test\] Complete all providers unit tests * \#14 \[Unit Test\] SQLite mini-ORM unit tests and cleanup * \#16 Add support for bucket name in Sia provider * \#17 Update to common c++ build system * A single 64-bit Linux Jenkins server is used to build all Linux and Windows versions * All dependency sources are now included * MSVC is no longer supported * MSYS2 is required for building Windows binaries on Windows * OS X support is temporarily disabled * \#19 \[bug\] Rename file is broken for files that are existing * \#23 \[bug\] Incorrect file size displayed while upload is pending * \#24 RocksDB implementations should be transactional * \#25 Writes should block when maximum cache size is reached * \#26 Complete ring buffer and direct download support ### Changes from v2.0.1-rc * Ability to choose between RocksDB and SQLite databases * Added direct reads and implemented download fallback * Corrected file times on S3 and Sia providers * Corrected handling of `chown()` and `chmod()` * Fixed erroneous download of chunks after resize Reviewed-on: #27
140 lines
3.7 KiB
CMake
140 lines
3.7 KiB
CMake
if(PROJECT_ENABLE_BOOST)
|
|
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
|
|
set(BOOST_MAJOR_VERSION ${BOOST2_MAJOR_VERSION})
|
|
set(BOOST_MINOR_VERSION ${BOOST2_MINOR_VERSION})
|
|
set(BOOST_PATCH_VERSION ${BOOST2_PATCH_VERSION})
|
|
endif()
|
|
|
|
set(BOOST_ROOT ${PROJECT_EXTERNAL_BUILD_ROOT})
|
|
set(BOOST_INCLUDE_DIR ${BOOST_ROOT}/include/boost-${BOOST_MINOR_VERSION}_${BOOST_MINOR_VERSION})
|
|
|
|
set(PROJECT_EXTERNAL_CMAKE_FLAGS
|
|
${PROJECT_EXTERNAL_CMAKE_FLAGS}
|
|
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
|
|
-DBOOST_INCLUDE_DIR=${BOOST_INCLUDE_DIR}
|
|
-DBOOST_ROOT=${BOOST_ROOT}
|
|
)
|
|
|
|
if(PROJECT_BUILD)
|
|
add_definitions(-DPROJECT_ENABLE_BOOST)
|
|
|
|
if (PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
|
|
find_package(Boost ${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_VERSION} EXACT
|
|
REQUIRED
|
|
COMPONENTS
|
|
atomic
|
|
chrono
|
|
date_time
|
|
filesystem
|
|
iostreams
|
|
locale
|
|
log
|
|
log_setup
|
|
program_options
|
|
random
|
|
regex
|
|
serialization
|
|
system
|
|
thread
|
|
wserialization
|
|
)
|
|
else()
|
|
find_package(Boost ${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_VERSION}
|
|
REQUIRED
|
|
COMPONENTS
|
|
atomic
|
|
chrono
|
|
date_time
|
|
filesystem
|
|
iostreams
|
|
locale
|
|
log
|
|
log_setup
|
|
program_options
|
|
random
|
|
regex
|
|
serialization
|
|
system
|
|
thread
|
|
wserialization
|
|
)
|
|
endif()
|
|
|
|
include_directories(BEFORE SYSTEM
|
|
${Boost_INCLUDE_DIRS}
|
|
)
|
|
|
|
link_libraries(
|
|
${Boost_LIBRARIES}
|
|
)
|
|
elseif(NOT PROJECT_IS_MINGW OR CMAKE_HOST_WIN32)
|
|
if (PROJECT_ENABLE_LIBBITCOIN_SYSTEM OR NOT CMAKE_HOST_WIN32)
|
|
if(PROJECT_CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
set(BOOST_BUILD_TYPE_LOWER debug)
|
|
else()
|
|
set(BOOST_BUILD_TYPE_LOWER release)
|
|
endif()
|
|
|
|
if(PROJECT_IS_ARM64)
|
|
set(BOOST_ARCH arm)
|
|
else()
|
|
set(BOOST_ARCH x86)
|
|
endif()
|
|
|
|
if(PROJECT_STATIC_LINK)
|
|
set(BOOST_LINK static)
|
|
else()
|
|
set(BOOST_LINK "static,shared")
|
|
endif()
|
|
|
|
set(BOOST_BUILD_ARGS
|
|
--openssldir=$ENV{OPENSSL_ROOT_DIR}
|
|
--prefix=${PROJECT_EXTERNAL_BUILD_ROOT}
|
|
address-model=64
|
|
architecture=${BOOST_ARCH}
|
|
cxxstd=20
|
|
cxxstd-dialect=gnu
|
|
cxxflags=-std=gnu++${CMAKE_CXX_STANDARD}
|
|
cxxstd=${CMAKE_CXX_STANDARD}
|
|
define=BOOST_ASIO_HAS_STD_STRING_VIEW
|
|
define=BOOST_SYSTEM_NO_DEPRECATED
|
|
link=${BOOST_LINK}
|
|
linkflags=-std=gnu++${CMAKE_CXX_STANDARD}
|
|
threading=multi
|
|
variant=${BOOST_BUILD_TYPE_LOWER}
|
|
)
|
|
|
|
if(PROJECT_ENABLE_LIBBITCOIN_SYSTEM)
|
|
set(BOOST_URL_HASH SHA256=${BOOST2_HASH})
|
|
else()
|
|
set(BOOST_URL_HASH SHA256=${BOOST_HASH})
|
|
endif()
|
|
|
|
ExternalProject_Add(boost_project
|
|
PREFIX external
|
|
URL ${PROJECT_3RD_PARTY_DIR}/boost_${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_${BOOST_PATCH_VERSION}.tar.gz
|
|
URL_HASH ${BOOST_URL_HASH}
|
|
BUILD_IN_SOURCE 1
|
|
LIST_SEPARATOR |
|
|
CONFIGURE_COMMAND ./bootstrap.sh
|
|
--with-libraries=atomic,chrono,date_time,filesystem,iostreams,locale,log,program_options,random,regex,serialization,system,test,thread
|
|
BUILD_COMMAND
|
|
./b2
|
|
-j1
|
|
${BOOST_BUILD_ARGS}
|
|
INSTALL_COMMAND
|
|
./b2
|
|
-j1
|
|
${BOOST_BUILD_ARGS}
|
|
install
|
|
)
|
|
|
|
list(APPEND PROJECT_DEPENDENCIES boost_project)
|
|
|
|
if (NOT CMAKE_HOST_WIN32)
|
|
add_dependencies(boost_project openssl_project)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|