mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-16 13:46:54 +00:00
cmake - use find_package for rocksdb and zstd
This commit is contained in:
@@ -122,8 +122,6 @@ jobs:
|
|||||||
-DMPFR_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \
|
-DMPFR_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \
|
||||||
-DHDF5_INCLUDE_DIR=/usr/include/hdf5/serial \
|
-DHDF5_INCLUDE_DIR=/usr/include/hdf5/serial \
|
||||||
-DEIGEN_DIR=/usr/include/eigen3 \
|
-DEIGEN_DIR=/usr/include/eigen3 \
|
||||||
-DROCKSDB_INCLUDE_DIR=/usr/local/include \
|
|
||||||
-DROCKSDB_LIBRARY_DIR=/usr/local/lib \
|
|
||||||
-DWITH_ROCKSDB=On \
|
-DWITH_ROCKSDB=On \
|
||||||
../cmake
|
../cmake
|
||||||
sudo make -j $(nproc)
|
sudo make -j $(nproc)
|
||||||
|
|||||||
+8
-62
@@ -314,77 +314,23 @@ if(USD_SUPPORT)
|
|||||||
endif(USD_SUPPORT)
|
endif(USD_SUPPORT)
|
||||||
|
|
||||||
if (WITH_ROCKSDB)
|
if (WITH_ROCKSDB)
|
||||||
UNIFY_ENVVARS_AND_CACHE(ROCKSDB_INCLUDE_DIR)
|
find_package(RocksDB CONFIG REQUIRED)
|
||||||
UNIFY_ENVVARS_AND_CACHE(ROCKSDB_LIBRARY_DIR)
|
message(STATUS "RocksDB: found at '${RocksDB_DIR}'.")
|
||||||
UNIFY_ENVVARS_AND_CACHE(ZSTD_INCLUDE_DIR)
|
|
||||||
UNIFY_ENVVARS_AND_CACHE(ZSTD_LIBRARY_DIR)
|
|
||||||
|
|
||||||
if("${ROCKSDB_INCLUDE_DIR}" STREQUAL "")
|
|
||||||
find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h
|
|
||||||
PATHS
|
|
||||||
/usr/include
|
|
||||||
/usr/local/include
|
|
||||||
REQUIRED
|
|
||||||
)
|
|
||||||
if(ROCKSDB_INCLUDE_DIR)
|
|
||||||
message(STATUS "Found rocksdb include files in: ${ROCKSDB_INCLUDE_DIR}")
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unable to find rocksdb include directory, specify ROCKSDB_INCLUDE_DIR manually.")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(ROCKSDB_INCLUDE_DIR ${ROCKSDB_INCLUDE_DIR} CACHE FILEPATH "rocksdb header files")
|
|
||||||
message(STATUS "Looking for rocksdb include files in: ${ROCKSDB_INCLUDE_DIR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_library(ROCKSDB_LIBRARY
|
|
||||||
NAMES rocksdb
|
|
||||||
PATHS ${ROCKSDB_LIBRARY_DIR})
|
|
||||||
if(ROCKSDB_LIBRARY)
|
|
||||||
message(STATUS "rocksdb library ${ROCKSDB_LIBRARY} found in: ${ROCKSDB_LIBRARY_DIR}")
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unable to find rocksdb library in: ${ROCKSDB_LIBRARY_DIR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_definitions(-DIFOPSH_WITH_ROCKSDB)
|
add_definitions(-DIFOPSH_WITH_ROCKSDB)
|
||||||
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB)
|
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB)
|
||||||
|
link_libraries(RocksDB::rocksdb)
|
||||||
|
|
||||||
if (WITH_ZSTD)
|
if (WITH_ZSTD)
|
||||||
# @todo do we actually need the zstd include dir or rather just pass
|
# @todo do we actually need the zstd include dir or rather just pass
|
||||||
# the libzstd.a along with the rocksdb library when needed and feature
|
# the libzstd.a along with the rocksdb library when needed and feature
|
||||||
# detect based on rocksdb API?
|
# detect based on rocksdb API?
|
||||||
if("${ZSTD_INCLUDE_DIR}" STREQUAL "")
|
find_package(ZSTD CONFIG REQUIRED)
|
||||||
find_path(ZSTD_INCLUDE_DIR zstd.h
|
message(STATUS "ZSTD: found at '${ZSTD_DIR}'.")
|
||||||
PATHS
|
link_libraries(zstd::libzstd_static)
|
||||||
/usr/include
|
|
||||||
/usr/local/include
|
|
||||||
REQUIRED
|
|
||||||
)
|
|
||||||
if(ZSTD_INCLUDE_DIR)
|
|
||||||
message(STATUS "Found zstd include files in: ${ZSTD_INCLUDE_DIR}")
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unable to find zstd include directory, specify ZSTD_INCLUDE_DIR manually.")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(ZSTD_INCLUDE_DIR ${ZSTD_INCLUDE_DIR} CACHE FILEPATH "zstd header files")
|
|
||||||
message(STATUS "Looking for zstd include files in: ${ZSTD_INCLUDE_DIR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_library(ZSTD_LIBRARY
|
|
||||||
NAMES zstd zstd_static
|
|
||||||
PATHS ${ZSTD_LIBRARY_DIR})
|
|
||||||
if(ZSTD_LIBRARY)
|
|
||||||
message(STATUS "zstd library ${ZSTD_LIBRARY} found in: ${ZSTD_LIBRARY_DIR}")
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unable to find zstd library in: ${ZSTD_LIBRARY_DIR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_definitions(-DIFOPSH_WITH_ROCKSDB_ZSTD)
|
add_definitions(-DIFOPSH_WITH_ROCKSDB_ZSTD)
|
||||||
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB_ZSTD)
|
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB_ZSTD)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(RPCRT_LIBRARIES "rpcrt4.lib" "shlwapi.lib")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Find Boost: On win32 the (hardcoded) default is to use static libraries and
|
# Find Boost: On win32 the (hardcoded) default is to use static libraries and
|
||||||
@@ -956,7 +902,7 @@ endif()
|
|||||||
include_directories(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS}
|
include_directories(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS}
|
||||||
${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}
|
${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}
|
||||||
${EIGEN_DIR} ${CGAL_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${MPFR_INCLUDE_DIR} ${USD_INCLUDE_DIR}
|
${EIGEN_DIR} ${CGAL_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${MPFR_INCLUDE_DIR} ${USD_INCLUDE_DIR}
|
||||||
${TBB_INCLUDE_DIR} ${ROCKSDB_INCLUDE_DIR} ${ZSTD_INCLUDE_DIR}
|
${TBB_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT SCHEMA_VERSIONS)
|
if(NOT SCHEMA_VERSIONS)
|
||||||
@@ -1119,7 +1065,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(IfcParse ${IFCPARSE_FILES})
|
add_library(IfcParse ${IFCPARSE_FILES})
|
||||||
target_link_libraries(IfcParse ${ROCKSDB_LIBRARY} ${ZSTD_LIBRARY} ${RPCRT_LIBRARIES} ${STDCPPFS})
|
target_link_libraries(IfcParse ${STDCPPFS})
|
||||||
set_target_properties(IfcParse PROPERTIES COMPILE_FLAGS -DIFC_PARSE_EXPORTS VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
|
set_target_properties(IfcParse PROPERTIES COMPILE_FLAGS -DIFC_PARSE_EXPORTS VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
|
||||||
|
|
||||||
if(LibXml2_DIR)
|
if(LibXml2_DIR)
|
||||||
|
|||||||
+4
-6
@@ -1025,8 +1025,7 @@ if "rocksdb" in targets:
|
|||||||
f"-DUSE_RTTI=On",
|
f"-DUSE_RTTI=On",
|
||||||
f"-DWITH_ZSTD=On",
|
f"-DWITH_ZSTD=On",
|
||||||
f"-DPORTABLE=1",
|
f"-DPORTABLE=1",
|
||||||
f"-DZSTD_INCLUDE_DIRS={DEPS_DIR}/install/zstd-{ZSTD_VERSION}/include",
|
f"-DCMAKE_PREFIX_PATH={DEPS_DIR}/install/zstd-{ZSTD_VERSION}",
|
||||||
f"-DZSTD_LIBRARIES={DEPS_DIR}/install/zstd-{ZSTD_VERSION}/lib/libzstd.a",
|
|
||||||
],
|
],
|
||||||
download_url="https://github.com/facebook/rocksdb",
|
download_url="https://github.com/facebook/rocksdb",
|
||||||
download_name="rocksdb",
|
download_name="rocksdb",
|
||||||
@@ -1138,11 +1137,10 @@ if "rocksdb" in targets:
|
|||||||
cmake_args.extend(
|
cmake_args.extend(
|
||||||
[
|
[
|
||||||
f"-DWITH_ROCKSDB=On",
|
f"-DWITH_ROCKSDB=On",
|
||||||
f"-DROCKSDB_INCLUDE_DIR={DEPS_DIR}/install/rocksdb-{ROCKSDB_VERSION}/include",
|
|
||||||
f"-DROCKSDB_LIBRARY_DIR={DEPS_DIR}/install/rocksdb-{ROCKSDB_VERSION}/lib",
|
|
||||||
f"-DWITH_ZSTD=On",
|
f"-DWITH_ZSTD=On",
|
||||||
f"-DZSTD_INCLUDE_DIR={DEPS_DIR}/install/zstd-{ZSTD_VERSION}/include",
|
"-DCMAKE_PREFIX_PATH="
|
||||||
f"-DZSTD_LIBRARY_DIR={DEPS_DIR}/install/zstd-{ZSTD_VERSION}/lib",
|
f"{DEPS_DIR}/install/rocksdb-{ROCKSDB_VERSION};"
|
||||||
|
f"{DEPS_DIR}/install/zstd-{ZSTD_VERSION}",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+9
-6
@@ -112,10 +112,8 @@ set USD_INCLUDE_DIR=%INSTALL_DIR%\usd\include
|
|||||||
set USD_LIBRARY_DIR=%INSTALL_DIR%\usd\lib
|
set USD_LIBRARY_DIR=%INSTALL_DIR%\usd\lib
|
||||||
set TBB_INCLUDE_DIR=%INSTALL_DIR%\tbb\include
|
set TBB_INCLUDE_DIR=%INSTALL_DIR%\tbb\include
|
||||||
set TBB_LIBRARY_DIR=%INSTALL_DIR%\tbb\lib
|
set TBB_LIBRARY_DIR=%INSTALL_DIR%\tbb\lib
|
||||||
set ROCKSDB_INCLUDE_DIR=%INSTALL_DIR%\rocksdb\include
|
set ROCKSDB_INSTALL_DIR=%INSTALL_DIR%\rocksdb
|
||||||
set ROCKSDB_LIBRARY_DIR=%INSTALL_DIR%\rocksdb\lib
|
set ZSTD_INSTALL_DIR=%INSTALL_DIR%\zstd
|
||||||
set ZSTD_INCLUDE_DIR=%INSTALL_DIR%\zstd\include
|
|
||||||
set ZSTD_LIBRARY_DIR=%INSTALL_DIR%\zstd\lib
|
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
call cecho.cmd 0 10 "Script configuration:"
|
call cecho.cmd 0 10 "Script configuration:"
|
||||||
@@ -151,6 +149,8 @@ echo USD_INCLUDE_DIR = %USD_INCLUDE_DIR%
|
|||||||
echo USD_LIBRARY_DIR = %USD_LIBRARY_DIR%
|
echo USD_LIBRARY_DIR = %USD_LIBRARY_DIR%
|
||||||
echo TBB_INCLUDE_DIR = %TBB_INCLUDE_DIR%
|
echo TBB_INCLUDE_DIR = %TBB_INCLUDE_DIR%
|
||||||
echo TBB_LIBRARY_DIR = %TBB_LIBRARY_DIR%
|
echo TBB_LIBRARY_DIR = %TBB_LIBRARY_DIR%
|
||||||
|
echo ROCKSDB_INSTALL_DIR = %ROCKSDB_INSTALL_DIR%
|
||||||
|
echo ZSTD_INSTALL_DIR = %ZSTD_INSTALL_DIR%
|
||||||
echo.
|
echo.
|
||||||
echo CMAKE_INSTALL_PREFIX = %CMAKE_INSTALL_PREFIX%
|
echo CMAKE_INSTALL_PREFIX = %CMAKE_INSTALL_PREFIX%
|
||||||
echo.
|
echo.
|
||||||
@@ -160,17 +160,20 @@ set CMAKELISTS_DIR=..\cmake
|
|||||||
if not (%1)==() if exist CMakeCache.txt. del /Q CMakeCache.txt
|
if not (%1)==() if exist CMakeCache.txt. del /Q CMakeCache.txt
|
||||||
echo "Running CMake for %PROJECT_NAME%."
|
echo "Running CMake for %PROJECT_NAME%."
|
||||||
|
|
||||||
|
set CMAKE_PREFIX_PATH=%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL_DIR%
|
||||||
|
set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROCKSDB_INSTALL_DIR%;%ZSTD_INSTALL_DIR%
|
||||||
|
|
||||||
IF NOT "%VS_TOOLSET_HOST%"=="" (
|
IF NOT "%VS_TOOLSET_HOST%"=="" (
|
||||||
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% -T %VS_TOOLSET_HOST% ^
|
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% -T %VS_TOOLSET_HOST% ^
|
||||||
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^
|
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^
|
||||||
-DWITH_ROCKSDB=On -DWITH_ZSTD=On ^
|
-DWITH_ROCKSDB=On -DWITH_ZSTD=On ^
|
||||||
-DCMAKE_PREFIX_PATH="%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL_DIR%" ^
|
-DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^
|
||||||
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS%
|
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS%
|
||||||
) ELSE (
|
) ELSE (
|
||||||
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% ^
|
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% ^
|
||||||
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^
|
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^
|
||||||
-DWITH_ROCKSDB=On -DWITH_ZSTD=On ^
|
-DWITH_ROCKSDB=On -DWITH_ZSTD=On ^
|
||||||
-DCMAKE_PREFIX_PATH="%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL_DIR%" ^
|
-DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^
|
||||||
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS%
|
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS%
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user