diff --git a/CMake/cmake_config.h.in b/CMake/cmake_config.h.in index 696927d56a..a586178b66 100644 --- a/CMake/cmake_config.h.in +++ b/CMake/cmake_config.h.in @@ -31,7 +31,9 @@ #endif #ifdef _MSC_VER -# if defined(FLINT_BUILD_DLL) +# if defined(FLINT_STATIC_BUILD) +# define FLINT_DLL +# elif defined(FLINT_BUILD_DLL) # define FLINT_DLL __declspec(dllexport) # else # define FLINT_DLL __declspec(dllimport) diff --git a/CMakeLists.txt b/CMakeLists.txt index d5db62cf0d..b4e72fd353 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -423,11 +423,15 @@ target_include_directories(flint PUBLIC ${PThreads_INCLUDE_DIRS} ) -if(BUILD_SHARED_LIBS AND MSVC) - # Export all functions automatically (except global data) - set_target_properties(flint PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) - # Export flint's global data that are marked manually - target_compile_definitions(flint PRIVATE "FLINT_BUILD_DLL") +if(MSVC) + if (BUILD_SHARED_LIBS) + # Export all functions automatically (except global data) + set_target_properties(flint PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + # Export flint's global data that are marked manually + target_compile_definitions(flint PRIVATE "FLINT_BUILD_DLL") + else() + target_compile_definitions(flint PUBLIC "FLINT_STATIC_BUILD") + endif() endif() if (HAS_FLAG_MPOPCNT)