From 6f39d8228da40cf711e1e00407bb497994992e6f Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Sun, 1 Sep 2019 17:40:00 +0300 Subject: [PATCH] mdbx-cmake: add MDBX_ALLOY_MODE option. Change-Id: I486f737fc24a48ecd3444859bee2132c9606aef5 --- src/CMakeLists.txt | 20 ++++++++++++++++++-- test/CMakeLists.txt | 1 - 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 17c925a9..206963e3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,6 +12,8 @@ ## . ## +option(MDBX_ALLOY_MODE "Build MDBX library as single object file." ON) + # # Get version if(HAVE_MDBX_VERSIONINFO) @@ -21,10 +23,24 @@ else() set(MDBX_VERSION "unversioned") endif() -add_library(mdbx_objects OBJECT ${CMAKE_CURRENT_BINARY_DIR}/version.c alloy.c) +if(MDBX_ALLOY_MODE) + set(LIBMDBX_SOURCES alloy.c) +else() + if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + set(LIBMDBX_OSAL windows) + elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + set(LIBMDBX_OSAL linux) + else() + set(LIBMDBX_OSAL posix) + endif() + set(LIBMDBX_SOURCES + elements/defs.h elements/internals.h elements/osal.h + elements/core.c elements/osal.c elements/lck-${LIBMDBX_OSAL}.c) +endif() + +add_library(mdbx_objects OBJECT ../mdbx.h ${CMAKE_CURRENT_BINARY_DIR}/version.c ${LIBMDBX_SOURCES}) set_target_properties(mdbx_objects PROPERTIES INTERPROCEDURAL_OPTIMIZATION $ - POSITION_INDEPENDENT_CODE ON C_STANDARD 11 C_STANDARD_REQUIRED OFF PUBLIC_HEADER "../mdbx.h" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 43252cb7..e69cacfd 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -52,7 +52,6 @@ add_executable(mdbx_test set_target_properties(mdbx_test PROPERTIES INTERPROCEDURAL_OPTIMIZATION $ - POSITION_INDEPENDENT_CODE ON CXX_STANDARD ${MDBX_CXX_STANDARD} CXX_STANDARD_REQUIRED ON )