mdbx-build: rearrange source files, rework CMakeLists.txt and refine GNUMakefile (squashed).

Change-Id: Id73d346695011dab2f670bb9e6293a1e5a1835ca
This commit is contained in:
Leonid Yuriev
2020-04-15 17:09:37 +03:00
parent f414876e99
commit 971f924c44
33 changed files with 607 additions and 926 deletions

View File

@@ -26,8 +26,6 @@ if(NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED))
message(FATAL_ERROR "This module required C or C++ to be enabled")
endif()
include(CMakeDependentOption)
if(CMAKE_CXX_COMPILER_LOADED)
include(CheckCXXSourceRuns)
include(CheckCXXSourceCompiles)
@@ -38,6 +36,9 @@ if(CMAKE_C_COMPILER_LOADED)
include(CheckCSourceCompiles)
include(CheckCCompilerFlag)
endif()
include(CMakeDependentOption)
include(CheckLibraryExists)
include(CheckIncludeFiles)
# Check if the same compile family is used for both C and CXX
if(CMAKE_C_COMPILER_LOADED AND CMAKE_CXX_COMPILER_LOADED AND
@@ -439,7 +440,7 @@ if(ENABLE_BACKTRACE)
endif()
macro(setup_compile_flags)
# LY: save initial C/CXX flags
# save initial C/CXX flags
if(NOT INITIAL_CMAKE_FLAGS_SAVED)
if(MSVC)
string(REGEX REPLACE "^(.*)(/EHsc)( *)(.*)$" "\\1/EHs\\3\\4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
@@ -453,7 +454,7 @@ macro(setup_compile_flags)
set(INITIAL_CMAKE_FLAGS_SAVED TRUE CACHE INTERNAL "State of initial CMake's flags" FORCE)
endif()
# LY: reset C/CXX flags
# reset C/CXX flags
set(CXX_FLAGS ${INITIAL_CMAKE_CXX_FLAGS})
set(C_FLAGS ${INITIAL_CMAKE_C_FLAGS})
set(EXE_LINKER_FLAGS ${INITIAL_CMAKE_EXE_LINKER_FLAGS})
@@ -661,7 +662,7 @@ macro(setup_compile_flags)
endif()
endif()
# LY: push C/CXX flags into the cache
# push C/CXX flags into the cache
set(CMAKE_CXX_FLAGS ${CXX_FLAGS} CACHE STRING "Flags used by the C++ compiler during all build types" FORCE)
set(CMAKE_C_FLAGS ${C_FLAGS} CACHE STRING "Flags used by the C compiler during all build types" FORCE)
set(CMAKE_EXE_LINKER_FLAGS ${EXE_LINKER_FLAGS} CACHE STRING "Flags used by the linker" FORCE)

View File

@@ -61,7 +61,7 @@ macro(set_source_files_compile_flags)
unset(_lang)
endmacro(set_source_files_compile_flags)
macro(fetch_version name version_file)
macro(fetch_version name version_file parent_scope)
set(${name}_VERSION "")
set(${name}_GIT_DESCRIBE "")
set(${name}_GIT_TIMESTAMP "")
@@ -69,7 +69,7 @@ macro(fetch_version name version_file)
set(${name}_GIT_COMMIT "")
set(${name}_GIT_REVISION 0)
set(${name}_GIT_VERSION "")
if(GIT)
if(GIT AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
execute_process(COMMAND ${GIT} describe --tags --long --dirty=-dirty
OUTPUT_VARIABLE ${name}_GIT_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -137,7 +137,9 @@ macro(fetch_version name version_file)
endif()
if(NOT ${name}_GIT_VERSION OR NOT ${name}_GIT_TIMESTAMP OR NOT ${name}_GIT_REVISION)
message(WARNING "Unable to retrive ${name} version from git.")
if(GIT AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
message(WARNING "Unable to retrive ${name} version from git.")
endif()
set(${name}_GIT_VERSION "0;0;0;0")
set(${name}_GIT_TIMESTAMP "")
set(${name}_GIT_REVISION 0)
@@ -166,18 +168,33 @@ macro(fetch_version name version_file)
list(GET ${name}_VERSION_LIST 2 "${name}_VERSION_RELEASE")
list(GET ${name}_VERSION_LIST 3 "${name}_VERSION_REVISION")
set(${name}_VERSION_MAJOR ${${name}_VERSION_MAJOR} PARENT_SCOPE)
set(${name}_VERSION_MINOR ${${name}_VERSION_MINOR} PARENT_SCOPE)
set(${name}_VERSION_RELEASE ${${name}_VERSION_RELEASE} PARENT_SCOPE)
set(${name}_VERSION_REVISION ${${name}_VERSION_REVISION} PARENT_SCOPE)
set(${name}_VERSION ${${name}_VERSION} PARENT_SCOPE)
if(parent_scope)
set(${name}_VERSION_MAJOR ${${name}_VERSION_MAJOR} PARENT_SCOPE)
set(${name}_VERSION_MINOR ${${name}_VERSION_MINOR} PARENT_SCOPE)
set(${name}_VERSION_RELEASE ${${name}_VERSION_RELEASE} PARENT_SCOPE)
set(${name}_VERSION_REVISION ${${name}_VERSION_REVISION} PARENT_SCOPE)
set(${name}_VERSION ${${name}_VERSION} PARENT_SCOPE)
set(${name}_GIT_DESCRIBE ${${name}_GIT_DESCRIBE} PARENT_SCOPE)
set(${name}_GIT_TIMESTAMP ${${name}_GIT_TIMESTAMP} PARENT_SCOPE)
set(${name}_GIT_TREE ${${name}_GIT_TREE} PARENT_SCOPE)
set(${name}_GIT_COMMIT ${${name}_GIT_COMMIT} PARENT_SCOPE)
set(${name}_GIT_REVISION ${${name}_GIT_REVISION} PARENT_SCOPE)
set(${name}_GIT_VERSION ${${name}_GIT_VERSION} PARENT_SCOPE)
set(${name}_GIT_DESCRIBE ${${name}_GIT_DESCRIBE} PARENT_SCOPE)
set(${name}_GIT_TIMESTAMP ${${name}_GIT_TIMESTAMP} PARENT_SCOPE)
set(${name}_GIT_TREE ${${name}_GIT_TREE} PARENT_SCOPE)
set(${name}_GIT_COMMIT ${${name}_GIT_COMMIT} PARENT_SCOPE)
set(${name}_GIT_REVISION ${${name}_GIT_REVISION} PARENT_SCOPE)
set(${name}_GIT_VERSION ${${name}_GIT_VERSION} PARENT_SCOPE)
else()
set(${name}_VERSION_MAJOR ${${name}_VERSION_MAJOR})
set(${name}_VERSION_MINOR ${${name}_VERSION_MINOR})
set(${name}_VERSION_RELEASE ${${name}_VERSION_RELEASE})
set(${name}_VERSION_REVISION ${${name}_VERSION_REVISION})
set(${name}_VERSION ${${name}_VERSION})
set(${name}_GIT_DESCRIBE ${${name}_GIT_DESCRIBE})
set(${name}_GIT_TIMESTAMP ${${name}_GIT_TIMESTAMP})
set(${name}_GIT_TREE ${${name}_GIT_TREE})
set(${name}_GIT_COMMIT ${${name}_GIT_COMMIT})
set(${name}_GIT_REVISION ${${name}_GIT_REVISION})
set(${name}_GIT_VERSION ${${name}_GIT_VERSION})
endif()
endmacro(fetch_version)
cmake_policy(POP)