Current section

Files

Jump to
rocksdb c_src CMake build-croaring.cmake
Raw

c_src/CMake/build-croaring.cmake

add_dependencies(${ErlangRocksDBNIF_TARGET} croaring)
include(ExternalProject)
include(GNUInstallDirs)
set(CROARING_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../deps/CRoaring")
set(CROARING_ROOT_DIR "${CMAKE_CURRENT_BINARY_DIR}/croaring")
set(CROARING_INCLUDE_DIR "${CROARING_ROOT_DIR}/include")
set(CROARING_STATIC_LIB "${CROARING_ROOT_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}roaring${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(CROARING_LIBRARY ${CROARING_STATIC_LIB})
ExternalProject_Add(croaring
SOURCE_DIR "${CROARING_SOURCE_DIR}"
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${CROARING_ROOT_DIR}
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=OFF
-DENABLE_ROARING_TESTS=OFF
-DROARING_BUILD_STATIC=ON
BINARY_DIR ${CROARING_ROOT_DIR}
BUILD_BYPRODUCTS "${CROARING_STATIC_LIB}"
)
ExternalProject_Get_Property(croaring BINARY_DIR)
message(STATUS "CRoaring library: ${CROARING_LIBRARY}")
message(STATUS "CRoaring includes: ${CROARING_INCLUDE_DIR}")
set(CROARING_FOUND TRUE)
mark_as_advanced(
CROARING_ROOT_DIR
CROARING_LIBRARY
CROARING_INCLUDE_DIR
)