Browse Source

Fixed Windows build.

* CMAKE_SHARED_LIBRARY_CXX_FLAGS is empty here, caused CMake errors.
 * CMake's OBJECT target has a bug that it doesn't define target_EXPORTS
   as with other library targets, so it's needed to define it manually.
   It also fixes empty flags issue.
 * Visibility headers weren't updated for OBJECT targets, they now also
   catch *Objects_EXPORTS defines.
vectorfields
Vladimír Vondruš 14 years ago
parent
commit
8ad76ad7e5
  1. 4
      src/CMakeLists.txt
  2. 5
      src/MeshTools/CMakeLists.txt
  3. 2
      src/MeshTools/visibilityMeshTools.h
  4. 1
      src/Physics/CMakeLists.txt
  5. 2
      src/Shaders/CMakeLists.txt
  6. 2
      src/visibility.h

4
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

5
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

2
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)

1
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)

2
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})

2
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)

Loading…
Cancel
Save