# Files shared between main library and unit test library set(MagnumMeshTools_SRCS CompressIndices.cpp Tipsify.cpp) set(MagnumMeshTools_HEADERS Clean.h CombineIndexedArrays.h CompressIndices.h FlipNormals.h GenerateFlatNormals.h Interleave.h Subdivide.h Tipsify.h Transform.h magnumMeshToolsVisibility.h) add_library(MagnumMeshToolsObjects OBJECT ${MagnumMeshTools_SRCS}) # 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 FlipNormals.cpp GenerateFlatNormals.cpp) # Main library add_library(MagnumMeshTools SHARED $ ${MagnumMeshTools_GracefulAssert_SRCS}) target_link_libraries(MagnumMeshTools Magnum) install(TARGETS MagnumMeshTools DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) install(FILES ${MagnumMeshTools_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/MeshTools) if(BUILD_TESTS) enable_testing() # Library with graceful assert for testing add_library(MagnumMeshToolsTestLib SHARED $ ${MagnumMeshTools_GracefulAssert_SRCS}) set_target_properties(MagnumMeshToolsTestLib PROPERTIES COMPILE_FLAGS "-DCORRADE_GRACEFUL_ASSERT -DMagnumMeshTools_EXPORTS") target_link_libraries(MagnumMeshToolsTestLib Magnum) add_subdirectory(Test) endif()