diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a6ceea13b..0033d1d2e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,7 +30,9 @@ set(MagnumMath_SRCS ) add_library(MagnumMathObjects OBJECT ${MagnumMath_SRCS}) -set_target_properties(MagnumObjects MagnumMathObjects PROPERTIES COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}) +# Set shared library flags for the objects, as they will be part of shared lib +# TODO: fix when CMake sets target_EXPORTS for OBJECT targets as well +set_target_properties(MagnumObjects MagnumMathObjects PROPERTIES COMPILE_FLAGS "-DMagnumObjects_EXPORTS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") # Files compiled with different flags for main library and unit test library set(Magnum_GracefulAssert_SRCS diff --git a/src/MeshTools/CMakeLists.txt b/src/MeshTools/CMakeLists.txt index a4b4ebe15..2d33389d8 100644 --- a/src/MeshTools/CMakeLists.txt +++ b/src/MeshTools/CMakeLists.txt @@ -3,7 +3,10 @@ set(MagnumMeshTools_SRCS Tipsify.cpp ) add_library(MagnumMeshToolsObjects OBJECT ${MagnumMeshTools_SRCS}) -set_target_properties(MagnumMeshToolsObjects PROPERTIES COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}) + +# Set shared library flags for the objects, as they will be part of shared lib +# TODO: fix when CMake sets target_EXPORTS for OBJECT targets as well +set_target_properties(MagnumMeshToolsObjects PROPERTIES COMPILE_FLAGS "-DMagnumMeshToolsObjects_EXPORTS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") # Files compiled with different flags for main library and unit test library set(MagnumMeshTools_GracefulAssert_SRCS diff --git a/src/MeshTools/visibilityMeshTools.h b/src/MeshTools/visibilityMeshTools.h index 57c36d34e..4db87ced7 100644 --- a/src/MeshTools/visibilityMeshTools.h +++ b/src/MeshTools/visibilityMeshTools.h @@ -16,7 +16,7 @@ */ #ifdef _WIN32 - #ifdef MagnumMeshTools_EXPORTS + #if defined(MagnumMeshTools_EXPORTS) || defined(MagnumMeshToolsObjects_EXPORTS) #define MESHTOOLS_EXPORT __declspec(dllexport) #else #define MESHTOOLS_EXPORT __declspec(dllimport) diff --git a/src/Physics/CMakeLists.txt b/src/Physics/CMakeLists.txt index ce69e40a0..0f3833d7a 100644 --- a/src/Physics/CMakeLists.txt +++ b/src/Physics/CMakeLists.txt @@ -9,7 +9,6 @@ set(MagnumPhysics_SRCS ) add_library(MagnumPhysics SHARED ${MagnumPhysics_SRCS}) -set_target_properties(MagnumPhysics PROPERTIES COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}) target_link_libraries(MagnumPhysics Magnum) diff --git a/src/Shaders/CMakeLists.txt b/src/Shaders/CMakeLists.txt index 979a32372..8ee7c2b6e 100644 --- a/src/Shaders/CMakeLists.txt +++ b/src/Shaders/CMakeLists.txt @@ -5,7 +5,7 @@ set(Shaders_SRCS ) add_library(MagnumShaders SHARED ${Shaders_SRCS}) -set_target_properties(MagnumShaders PROPERTIES COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}) + target_link_libraries(MagnumShaders Magnum) install(TARGETS MagnumShaders DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) diff --git a/src/visibility.h b/src/visibility.h index 9c96ac77d..833cab183 100644 --- a/src/visibility.h +++ b/src/visibility.h @@ -16,7 +16,7 @@ */ #ifdef _WIN32 - #ifdef Magnum_EXPORTS + #if defined(Magnum_EXPORTS) || defined(MagnumObjects_EXPORTS) #define MAGNUM_EXPORT __declspec(dllexport) #else #define MAGNUM_EXPORT __declspec(dllimport)