diff options
Diffstat (limited to 'libs/libmdbx/src/CMakeLists.dist-minimal')
-rw-r--r-- | libs/libmdbx/src/CMakeLists.dist-minimal | 308 |
1 files changed, 0 insertions, 308 deletions
diff --git a/libs/libmdbx/src/CMakeLists.dist-minimal b/libs/libmdbx/src/CMakeLists.dist-minimal deleted file mode 100644 index fdcd41d308..0000000000 --- a/libs/libmdbx/src/CMakeLists.dist-minimal +++ /dev/null @@ -1,308 +0,0 @@ -## -## This is the minimal template for CMakeList.txt which could be used -## to build libmdbx from the "amalgamated form" of libmdbx's source code. -## -## The amalgamated form is intended to embedding libmdbx in other projects -## in cases when using as git-submodule is not acceptable or inconveniently. -## -## The amalgamated form could be generated from full git repository -## on Linux just by `make dist`. -## - -## -## Copyright 2020 Leonid Yuriev <leo@yuriev.ru> -## and other libmdbx authors: please see AUTHORS file. -## All rights reserved. -## -## Redistribution and use in source and binary forms, with or without -## modification, are permitted only as authorized by the OpenLDAP -## Public License. -## -## A copy of this license is available in the file LICENSE in the -## top-level directory of the distribution or, alternatively, at -## <http://www.OpenLDAP.org/license.html>. -## - -## -## libmdbx = { Revised and extended descendant of Symas LMDB. } -## Please see README.md at https://github.com/erthink/libmdbx -## -## Libmdbx is superior to LMDB in terms of features and reliability, -## not inferior in performance. libmdbx works on Linux, FreeBSD, MacOS X -## and other systems compliant with POSIX.1-2008, but also support Windows -## as a complementary platform. -## -## The next version is under active non-public development and will be -## released as MithrilDB and libmithrildb for libraries & packages. -## Admittedly mythical Mithril is resembling silver but being stronger and -## lighter than steel. Therefore MithrilDB is rightly relevant name. -## -## MithrilDB will be radically different from libmdbx by the new database -## format and API based on C++17, as well as the Apache 2.0 License. -## The goal of this revolution is to provide a clearer and robust API, -## add more features and new valuable properties of database. -## -## The Future will (be) Positive. Всё будет хорошо. -## - -cmake_minimum_required(VERSION 3.8.2) -cmake_policy(PUSH) -cmake_policy(VERSION 3.8.2) -if(NOT CMAKE_VERSION VERSION_LESS 3.9) - cmake_policy(SET CMP0069 NEW) -endif() -if(NOT CMAKE_VERSION VERSION_LESS 3.12) - cmake_policy(SET CMP0075 NEW) -endif() -if(NOT CMAKE_VERSION VERSION_LESS 3.13) - cmake_policy(SET CMP0077 NEW) -endif() - -if(DEFINED PROJECT_NAME) - set(SUBPROJECT ON) - set(NOT_SUBPROJECT OFF) -else() - set(SUBPROJECT OFF) - set(NOT_SUBPROJECT ON) - project(libmdbx C CXX) -endif() - -find_package(Threads REQUIRED) - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE MinSizeRel CACHE STRING - "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." - FORCE) -endif() - -list(FIND CMAKE_C_COMPILE_FEATURES c_std_11 HAS_C11) -if(NOT HAS_C11 LESS 0) - set(MDBX_C_STANDARD 11) -else() - set(MDBX_C_STANDARD 99) -endif() -message(STATUS "Use C${MDBX_C_STANDARD} for libmdbx") - -# not supported by this (minimal) script -add_definitions(-DMDBX_AVOID_CRT=0) - -# provide build timestamp -string(TIMESTAMP MDBX_BUILD_TIMESTAMP UTC) -add_definitions(-DMDBX_BUILD_TIMESTAMP="${MDBX_BUILD_TIMESTAMP}") - -# provide compiler info -execute_process(COMMAND sh -c "${CMAKE_C_COMPILER} --version | head -1" - OUTPUT_VARIABLE MDBX_BUILD_COMPILER - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - RESULT_VARIABLE rc) -if(rc OR NOT MDBX_BUILD_COMPILER) - string(STRIP "${CMAKE_C_COMPILER_ID}-${CMAKE_C_COMPILER_VERSION}" MDBX_BUILD_COMPILER) -endif() -add_definitions(-DMDBX_BUILD_COMPILER="${MDBX_BUILD_COMPILER}") - -# provide cpu/arch-system pair -if(CMAKE_C_COMPILER_TARGET) - set(MDBX_BUILD_TARGET "${CMAKE_C_COMPILER_TARGET}") -elseif(CMAKE_C_PLATFORM_ID AND NOT CMAKE_C_PLATFORM_ID STREQUAL CMAKE_SYSTEM_NAME) - string(STRIP "${CMAKE_C_PLATFORM_ID}-${CMAKE_SYSTEM_NAME}" MDBX_BUILD_TARGET) -elseif(CMAKE_LIBRARY_ARCHITECTURE) - string(STRIP "${CMAKE_LIBRARY_ARCHITECTURE}-${CMAKE_SYSTEM_NAME}" MDBX_BUILD_TARGET) -elseif(CMAKE_GENERATOR_PLATFORM AND NOT CMAKE_C_PLATFORM_ID STREQUAL CMAKE_SYSTEM_NAME) - string(STRIP "${CMAKE_GENERATOR_PLATFORM}-${CMAKE_SYSTEM_NAME}" MDBX_BUILD_TARGET) -elseif(CMAKE_SYSTEM_ARCH) - string(STRIP "${CMAKE_SYSTEM_ARCH}-${CMAKE_SYSTEM_NAME}" MDBX_BUILD_TARGET) -else() - string(STRIP "${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}" MDBX_BUILD_TARGET) -endif() -add_definitions(-DMDBX_BUILD_TARGET="${MDBX_BUILD_TARGET}") - -# provide build target-config -if(CMAKE_CONFIGURATION_TYPES) - add_definitions(-DMDBX_BUILD_CONFIG="$<CONFIG>") -else() - add_definitions(-DMDBX_BUILD_CONFIG="${CMAKE_BUILD_TYPE}") -endif() - -# provide build cflags -set(MDBX_BUILD_FLAGS "") -list(APPEND MDBX_BUILD_FLAGS ${CMAKE_C_FLAGS}) -list(APPEND MDBX_BUILD_FLAGS ${CMAKE_C_DEFINES}) -if(CMAKE_CONFIGURATION_TYPES) - add_definitions(-DMDBX_BUILD_FLAGS_CONFIG="$<$<CONFIG:Debug>:${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_DEFINES_DEBUG}>$<$<CONFIG:Release>:${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_DEFINES_RELEASE}>$<$<CONFIG:RelWithDebInfo>:${CMAKE_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_DEFINES_RELWITHDEBINFO}>$<$<CONFIG:MinSizeRel>:${CMAKE_C_FLAGS_MINSIZEREL} ${CMAKE_C_DEFINES_MINSIZEREL}>") -else() - string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPERCASE) - list(APPEND MDBX_BUILD_FLAGS ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPERCASE}}) - list(APPEND MDBX_BUILD_FLAGS ${CMAKE_C_DEFINES_${CMAKE_BUILD_TYPE_UPPERCASE}}) -endif() -list(REMOVE_DUPLICATES MDBX_BUILD_FLAGS) -string(REPLACE ";" " " MDBX_BUILD_FLAGS "${MDBX_BUILD_FLAGS}") -add_definitions(-DMDBX_BUILD_FLAGS="${MDBX_BUILD_FLAGS}") - -# shared library -if(NOT DEFINED MDBX_BUILD_SHARED_LIBRARY) - if(DEFINED BUILD_SHARED_LIBS) - option(MDBX_BUILD_SHARED_LIBRARY "Build libmdbx as shared library (DLL)" ${BUILD_SHARED_LIBS}) - else() - option(MDBX_BUILD_SHARED_LIBRARY "Build libmdbx as shared library (DLL)" ON) - endif() -endif() -if(MDBX_BUILD_SHARED_LIBRARY) - add_library(mdbx SHARED mdbx.c mdbx.h) - set_target_properties(mdbx PROPERTIES - C_STANDARD ${MDBX_C_STANDARD} C_STANDARD_REQUIRED ON - PUBLIC_HEADER mdbx.h) - target_compile_definitions(mdbx PRIVATE LIBMDBX_EXPORTS INTERFACE LIBMDBX_IMPORTS) - if(DEFINED INTERPROCEDURAL_OPTIMIZATION) - set_target_properties(mdbx PROPERTIES - INTERPROCEDURAL_OPTIMIZATION $<BOOL:${INTERPROCEDURAL_OPTIMIZATION}>) - endif() - target_link_libraries(mdbx PRIVATE ${CMAKE_THREAD_LIBS_INIT}) - if(WIN32) - target_link_libraries(mdbx PRIVATE ntdll.lib) - endif() - if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Solaris") - target_link_libraries(mdbx PRIVATE kstat) - endif() -endif() - -# static library used for tools, to avoid rpath/dll-path troubles -add_library(mdbx-static STATIC mdbx.c mdbx.h) -set_target_properties(mdbx-static PROPERTIES - C_STANDARD ${MDBX_C_STANDARD} C_STANDARD_REQUIRED ON - PUBLIC_HEADER mdbx.h) -target_link_libraries(mdbx-static INTERFACE ${CMAKE_THREAD_LIBS_INIT}) -if(DEFINED INTERPROCEDURAL_OPTIMIZATION) - set_target_properties(mdbx-static PROPERTIES - INTERPROCEDURAL_OPTIMIZATION $<BOOL:${INTERPROCEDURAL_OPTIMIZATION}>) -endif() -if(WIN32) - target_link_libraries(mdbx-static INTERFACE ntdll.lib) -endif() -if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Solaris") - target_link_libraries(mdbx-static INTERFACE kstat) -endif() - -# mdbx-tools -foreach(TOOL mdbx_chk mdbx_copy mdbx_stat mdbx_dump mdbx_load) - add_executable(${TOOL} ${TOOL}.c) - set_target_properties(${TOOL} PROPERTIES - C_STANDARD ${MDBX_C_STANDARD} C_STANDARD_REQUIRED ON) - if(DEFINED INTERPROCEDURAL_OPTIMIZATION) - set_target_properties(${TOOL} PROPERTIES - INTERPROCEDURAL_OPTIMIZATION $<BOOL:${INTERPROCEDURAL_OPTIMIZATION}>) - endif() - target_link_libraries(${TOOL} mdbx-static) -endforeach() - -# installation -if(MDBX_BUILD_SHARED_LIBRARY) - if(CMAKE_VERSION VERSION_LESS 3.12) - install(TARGETS mdbx EXPORT libmdbx - RUNTIME - DESTINATION bin - COMPONENT runtime - LIBRARY - DESTINATION lib - COMPONENT runtime - OBJECTS - DESTINATION lib - COMPONENT devel - ARCHIVE - DESTINATION lib - COMPONENT devel - PUBLIC_HEADER - DESTINATION include - COMPONENT devel - INCLUDES - DESTINATION include - COMPONENT devel) - else() - install(TARGETS mdbx EXPORT libmdbx - RUNTIME - DESTINATION bin - COMPONENT runtime - LIBRARY - DESTINATION lib - COMPONENT runtime - NAMELINK_COMPONENT devel - OBJECTS - DESTINATION lib - COMPONENT devel - ARCHIVE - DESTINATION lib - COMPONENT devel - PUBLIC_HEADER - DESTINATION include - COMPONENT devel - INCLUDES - DESTINATION include - COMPONENT devel) - endif() -endif() - -if(CMAKE_VERSION VERSION_LESS 3.12) - install(TARGETS mdbx-static EXPORT libmdbx EXCLUDE_FROM_ALL - RUNTIME - DESTINATION bin - COMPONENT runtime - LIBRARY - DESTINATION lib - COMPONENT runtime - OBJECTS - DESTINATION lib - COMPONENT devel - ARCHIVE - DESTINATION lib - COMPONENT devel - PUBLIC_HEADER - DESTINATION include - COMPONENT devel - INCLUDES - DESTINATION include - COMPONENT devel) -else() - install(TARGETS mdbx-static EXPORT libmdbx EXCLUDE_FROM_ALL - RUNTIME - DESTINATION bin - COMPONENT runtime - LIBRARY - DESTINATION lib - COMPONENT runtime - NAMELINK_COMPONENT devel - OBJECTS - DESTINATION lib - COMPONENT devel - ARCHIVE - DESTINATION lib - COMPONENT devel - PUBLIC_HEADER - DESTINATION include - COMPONENT devel - INCLUDES - DESTINATION include - COMPONENT devel) -endif() - -install( - TARGETS - mdbx_chk - mdbx_stat - mdbx_copy - mdbx_dump - mdbx_load - RUNTIME - DESTINATION bin - COMPONENT runtime) - -install( - FILES - man1/mdbx_chk.1 - man1/mdbx_stat.1 - man1/mdbx_copy.1 - man1/mdbx_dump.1 - man1/mdbx_load.1 - DESTINATION man/man1 - COMPONENT doc) - -cmake_policy(POP) |