mirror of
https://github.com/isar/libmdbx.git
synced 2025-04-24 05:52:25 +08:00
mdbx: minor fixes/workarounds for CLANG < 9.x
This commit is contained in:
parent
a9cae5e314
commit
4bb0c57e29
@ -232,8 +232,13 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION_AVAILABLE
|
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION_AVAILABLE
|
||||||
OR GCC_LTO_AVAILABLE OR MSVC_LTO_AVAILABLE OR CLANG_LTO_AVAILABLE)
|
OR GCC_LTO_AVAILABLE OR MSVC_LTO_AVAILABLE OR
|
||||||
|
(CLANG_LTO_AVAILABLE AND
|
||||||
|
((DEFINED MDBX_ENABLE_TESTS AND NOT MDBX_ENABLE_TESTS)
|
||||||
|
OR NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0)))
|
||||||
option(INTERPROCEDURAL_OPTIMIZATION "Enable interprocedural/LTO optimization" ${INTERPROCEDURAL_OPTIMIZATION_DEFAULT})
|
option(INTERPROCEDURAL_OPTIMIZATION "Enable interprocedural/LTO optimization" ${INTERPROCEDURAL_OPTIMIZATION_DEFAULT})
|
||||||
|
else()
|
||||||
|
set(INTERPROCEDURAL_OPTIMIZATION OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(INTERPROCEDURAL_OPTIMIZATION)
|
if(INTERPROCEDURAL_OPTIMIZATION)
|
||||||
@ -332,9 +337,11 @@ list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_std_20 HAS_CXX20)
|
|||||||
if(NOT DEFINED MDBX_CXX_STANDARD)
|
if(NOT DEFINED MDBX_CXX_STANDARD)
|
||||||
if(DEFINED CMAKE_CXX_STANDARD)
|
if(DEFINED CMAKE_CXX_STANDARD)
|
||||||
set(MDBX_CXX_STANDARD ${CMAKE_CXX_STANDARD})
|
set(MDBX_CXX_STANDARD ${CMAKE_CXX_STANDARD})
|
||||||
elseif(NOT HAS_CXX20 LESS 0)
|
elseif(NOT HAS_CXX20 LESS 0
|
||||||
|
AND NOT (CMAKE_COMPILER_IS_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9))
|
||||||
set(MDBX_CXX_STANDARD 20)
|
set(MDBX_CXX_STANDARD 20)
|
||||||
elseif(NOT HAS_CXX17 LESS 0)
|
elseif(NOT HAS_CXX17 LESS 0
|
||||||
|
AND NOT (CMAKE_COMPILER_IS_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5))
|
||||||
set(MDBX_CXX_STANDARD 17)
|
set(MDBX_CXX_STANDARD 17)
|
||||||
elseif(NOT HAS_CXX14 LESS 0)
|
elseif(NOT HAS_CXX14 LESS 0)
|
||||||
set(MDBX_CXX_STANDARD 14)
|
set(MDBX_CXX_STANDARD 14)
|
||||||
@ -487,7 +494,7 @@ if(CMAKE_CXX_COMPILER_LOADED AND MDBX_CXX_STANDARD GREATER_EQUAL 11 AND MDBX_CXX
|
|||||||
endif()
|
endif()
|
||||||
if(NOT MDBX_WITHOUT_MSVC_CRT
|
if(NOT MDBX_WITHOUT_MSVC_CRT
|
||||||
AND NOT (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
|
AND NOT (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
|
||||||
AND NOT (CMAKE_COMPILER_IS_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4)
|
AND NOT (CMAKE_COMPILER_IS_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.9)
|
||||||
AND NOT (MSVC AND MSVC_VERSION LESS 1900))
|
AND NOT (MSVC AND MSVC_VERSION LESS 1900))
|
||||||
option(MDBX_BUILD_CXX "Build C++ portion" ON)
|
option(MDBX_BUILD_CXX "Build C++ portion" ON)
|
||||||
else()
|
else()
|
||||||
@ -564,7 +571,8 @@ macro(target_setup_options TARGET)
|
|||||||
target_compile_options(${TARGET} INTERFACE "/Zc:__cplusplus")
|
target_compile_options(${TARGET} INTERFACE "/Zc:__cplusplus")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(CC_HAS_FASTMATH)
|
if(CC_HAS_FASTMATH
|
||||||
|
AND NOT (CMAKE_COMPILER_IS_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10))
|
||||||
target_compile_options(${TARGET} PRIVATE "-ffast-math")
|
target_compile_options(${TARGET} PRIVATE "-ffast-math")
|
||||||
endif()
|
endif()
|
||||||
if(CC_HAS_VISIBILITY)
|
if(CC_HAS_VISIBILITY)
|
||||||
@ -587,7 +595,7 @@ macro(libmdbx_setup_libs TARGET MODE)
|
|||||||
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Android")
|
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Android")
|
||||||
target_link_libraries(${TARGET} ${MODE} log)
|
target_link_libraries(${TARGET} ${MODE} log)
|
||||||
endif()
|
endif()
|
||||||
if(LIBCXX_FILESYSTEM AND MDBX_BUILD_CXX)
|
if(MDBX_CXX_STANDARD GREATER_EQUAL 17 AND LIBCXX_FILESYSTEM AND MDBX_BUILD_CXX)
|
||||||
target_link_libraries(${TARGET} ${MODE} ${LIBCXX_FILESYSTEM})
|
target_link_libraries(${TARGET} ${MODE} ${LIBCXX_FILESYSTEM})
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
3
mdbx.h
3
mdbx.h
@ -461,7 +461,8 @@ typedef mode_t mdbx_mode_t;
|
|||||||
#endif /* MDBX_PRINTF_ARGS */
|
#endif /* MDBX_PRINTF_ARGS */
|
||||||
|
|
||||||
#if defined(DOXYGEN) || \
|
#if defined(DOXYGEN) || \
|
||||||
(defined(__cplusplus) && __has_cpp_attribute(maybe_unused) && \
|
(defined(__cplusplus) && __cplusplus >= 201603 && \
|
||||||
|
__has_cpp_attribute(maybe_unused) && \
|
||||||
__has_cpp_attribute(maybe_unused) >= 201603) || \
|
__has_cpp_attribute(maybe_unused) >= 201603) || \
|
||||||
(!defined(__cplusplus) && defined(__STDC_VERSION__) && \
|
(!defined(__cplusplus) && defined(__STDC_VERSION__) && \
|
||||||
__STDC_VERSION__ > 202005L)
|
__STDC_VERSION__ > 202005L)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user