mdbx-windows: fix MDBX_AVOID_CRT option & ntdll.def distribution.

Resolve https://github.com/erthink/libmdbx/issues/100

Change-Id: I18ab055e79e249fca856353b2585739c88e01758
This commit is contained in:
Leonid Yuriev
2020-05-10 03:41:28 +03:00
parent a238179c23
commit 5b4b3fa9ea
3 changed files with 17 additions and 4 deletions

View File

@@ -38,6 +38,9 @@ cmake_minimum_required(VERSION 3.8.2)
cmake_policy(PUSH)
cmake_policy(VERSION 3.8.2)
if(NOT CMAKE_VERSION VERSION_LESS 3.15)
cmake_policy(SET CMP0091 NEW)
endif()
if(NOT CMAKE_VERSION VERSION_LESS 3.13)
cmake_policy(SET CMP0077 NEW)
endif()
@@ -465,7 +468,7 @@ macro(libmdbx_setup_libs TARGET MODE)
target_link_libraries(${TARGET} ${MODE} ${CMAKE_THREAD_LIBS_INIT})
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(${TARGET} ${MODE} ntdll.lib)
if(MDBX_NTDLL_EXTRA_IMPLIB)
if(MDBX_NTDLL_EXTRA_IMPLIB AND MDBX_AVOID_CRT)
target_link_libraries(${TARGET} ${MODE} ntdll_extra)
endif()
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Solaris")
@@ -504,6 +507,13 @@ if(MDBX_BUILD_SHARED_LIBRARY)
target_compile_definitions(mdbx PRIVATE LIBMDBX_EXPORTS MDBX_BUILD_SHARED_LIBRARY=1 INTERFACE LIBMDBX_IMPORTS)
target_setup_options(mdbx)
libmdbx_setup_libs(mdbx PRIVATE)
if(MSVC)
if(MDBX_NTDLL_EXTRA_IMPLIB AND MDBX_AVOID_CRT)
set_property(TARGET mdbx PROPERTY LINKER_FLAGS "/NODEFAULTLIB")
else()
set_property(TARGET mdbx PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
endif()
endif()
if(CC_HAS_VISIBILITY AND (LTO_ENABLED OR INTERPROCEDURAL_OPTIMIZATION))
set_target_properties(mdbx PROPERTIES LINK_FLAGS "-fvisibility=hidden")
endif()