mirror of
https://github.com/isar/libmdbx.git
synced 2025-08-22 20:54:27 +08:00
mdbx-cmake: fix/refine --allow-multiple-definition
as workaround for std::filesystem
and LCC < 1.25.23
This commit is contained in:
@@ -913,6 +913,8 @@ macro(probe_libcxx_filesystem)
|
||||
include(CheckCXXSourceCompiles)
|
||||
cmake_push_check_state()
|
||||
set(stdfs_probe_save_libraries ${CMAKE_REQUIRED_LIBRARIES})
|
||||
set(stdfs_probe_save_flags ${CMAKE_REQUIRED_FLAGS})
|
||||
set(stdfs_probe_save_link_options ${CMAKE_REQUIRED_LINK_OPTIONS})
|
||||
unset(stdfs_probe_clear_cxx_standard)
|
||||
if(NOT DEFINED CMAKE_CXX_STANDARD)
|
||||
list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_std_14 HAS_CXX14)
|
||||
@@ -927,6 +929,13 @@ macro(probe_libcxx_filesystem)
|
||||
endif()
|
||||
set(stdfs_probe_clear_cxx_standard ON)
|
||||
endif()
|
||||
if(CMAKE_COMPILER_IS_ELBRUSCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 1.25.23)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.14)
|
||||
set(CMAKE_REQUIRED_FLAGS ${stdfs_probe_save_flags} "-Wl,--allow-multiple-definition")
|
||||
else()
|
||||
set(CMAKE_REQUIRED_LINK_OPTIONS ${stdfs_probe_save_link_options} "-Wl,--allow-multiple-definition")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(stdfs_probe_code [[
|
||||
#if defined(__SIZEOF_INT128__) && !defined(__GLIBCXX_TYPE_INT_N_0) && defined(__clang__) && __clang_major__ < 4
|
||||
@@ -994,11 +1003,15 @@ macro(probe_libcxx_filesystem)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_LINK_OPTIONS ${stdfs_probe_save_link_options})
|
||||
set(CMAKE_REQUIRED_FLAGS ${stdfs_probe_save_flags})
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${stdfs_probe_save_libraries})
|
||||
if(stdfs_probe_clear_cxx_standard)
|
||||
unset(CMAKE_CXX_STANDARD)
|
||||
endif()
|
||||
unset(stdfs_probe_clear_cxx_standard)
|
||||
unset(stdfs_probe_save_link_options)
|
||||
unset(stdfs_probe_save_flags)
|
||||
unset(stdfs_probe_save_libraries)
|
||||
unset(stdfs_probe_code)
|
||||
unset(stdfs_probe_rc)
|
||||
|
Reference in New Issue
Block a user