diff --git a/include/spatialindex/capi/sidx_export.h b/include/spatialindex/capi/sidx_export.h index b6c84f1e..7b0a3936 100644 --- a/include/spatialindex/capi/sidx_export.h +++ b/include/spatialindex/capi/sidx_export.h @@ -29,7 +29,7 @@ #pragma once #ifndef SIDX_C_DLL -#if defined(_MSC_VER) +#if defined(_MSC_VER) && defined(SIDX_DLL_EXPORT) # define SIDX_C_DLL __declspec(dllexport) # define SIDX_DLL __declspec(dllexport) #else diff --git a/include/spatialindex/tools/Tools.h b/include/spatialindex/tools/Tools.h index f6e33c73..07c1926e 100644 --- a/include/spatialindex/tools/Tools.h +++ b/include/spatialindex/tools/Tools.h @@ -46,7 +46,7 @@ #ifdef SIDX_DLL_EXPORT #define SIDX_DLL __declspec(dllexport) #else - #define SIDX_DLL __declspec(dllimport) + #define SIDX_DLL #endif // Nuke this annoying warning. See http://www.unknownroad.com/rtfm/VisualStudio/warningC4251.html diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 72d1a318..8c4d4ba8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -179,7 +179,6 @@ set(SIDX_SOURCES ${SIDX_CPP}) add_library(spatialindex ${SIDX_SOURCES}) - add_library(spatialindex_c ${SIDX_CAPI_CPP}) target_link_libraries(spatialindex_c spatialindex) @@ -204,9 +203,10 @@ if(MSVC) target_compile_options(spatialindex PRIVATE /wd4068) target_compile_options(spatialindex_c PRIVATE /wd4068) - target_compile_definitions(spatialindex_c PRIVATE -DSIDX_DLL_EXPORT=1) - target_compile_definitions(spatialindex PRIVATE -DSIDX_DLL_EXPORT=1) - if(NOT WITH_STATIC_SIDX) + if (BUILD_SHARED_LIBS) + target_compile_definitions(spatialindex PRIVATE -DSIDX_DLL_EXPORT=1) + target_compile_definitions(spatialindex_c PRIVATE -DSIDX_DLL_EXPORT=1) + else() target_compile_definitions(spatialindex PRIVATE -DSIDX_DLL_IMPORT=1) target_compile_definitions(spatialindex_c PRIVATE -DSIDX_DLL_IMPORT=1) endif()