diff --git a/CMakeLists.txt b/CMakeLists.txt index bbf5f0946..1148aa90b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -342,6 +342,10 @@ set(MAGNUM_PLUGINS_AUDIOIMPORTER_DIR ${MAGNUM_PLUGINS_DIR}/audioimporters) set(MAGNUM_PLUGINS_AUDIOIMPORTER_DEBUG_DIR ${MAGNUM_PLUGINS_DEBUG_DIR}/audioimporters) set(MAGNUM_PLUGINS_AUDIOIMPORTER_RELEASE_DIR ${MAGNUM_PLUGINS_RELEASE_DIR}/audioimporters) +# Library version +set(MAGNUM_LIBRARY_VERSION 1.0) +set(MAGNUM_LIBRARY_SOVERSION 0) + add_subdirectory(modules) add_subdirectory(src) diff --git a/src/Magnum/Audio/CMakeLists.txt b/src/Magnum/Audio/CMakeLists.txt index 9123ddaa1..e35b9cf43 100644 --- a/src/Magnum/Audio/CMakeLists.txt +++ b/src/Magnum/Audio/CMakeLists.txt @@ -62,7 +62,9 @@ target_include_directories(MagnumAudio PUBLIC ${OPENAL_INCLUDE_DIR}) set_target_properties(MagnumAudio PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/Audio") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumAudio PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumAudio PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumAudio Magnum Corrade::PluginManager ${OPENAL_LIBRARY}) diff --git a/src/Magnum/CMakeLists.txt b/src/Magnum/CMakeLists.txt index 9e12eed46..e97cbf271 100644 --- a/src/Magnum/CMakeLists.txt +++ b/src/Magnum/CMakeLists.txt @@ -254,6 +254,7 @@ set_target_properties(Magnum PROPERTIES FOLDER "Magnum") if(NOT BUILD_STATIC) target_compile_definitions(Magnum PRIVATE "FlextGL_EXPORTS") + set_target_properties(Magnum PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) elseif(BUILD_STATIC_PIC) set_target_properties(Magnum PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() diff --git a/src/Magnum/DebugTools/CMakeLists.txt b/src/Magnum/DebugTools/CMakeLists.txt index 375833606..b018dff36 100644 --- a/src/Magnum/DebugTools/CMakeLists.txt +++ b/src/Magnum/DebugTools/CMakeLists.txt @@ -114,7 +114,9 @@ add_library(MagnumDebugTools ${SHARED_OR_STATIC} set_target_properties(MagnumDebugTools PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/DebugTools") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumDebugTools PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumDebugTools PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumDebugTools Magnum) diff --git a/src/Magnum/MeshTools/CMakeLists.txt b/src/Magnum/MeshTools/CMakeLists.txt index b71e660d0..570664880 100644 --- a/src/Magnum/MeshTools/CMakeLists.txt +++ b/src/Magnum/MeshTools/CMakeLists.txt @@ -72,7 +72,9 @@ add_library(MagnumMeshTools ${SHARED_OR_STATIC} set_target_properties(MagnumMeshTools PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/MeshTools") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumMeshTools PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumMeshTools PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumMeshTools Magnum) diff --git a/src/Magnum/Primitives/CMakeLists.txt b/src/Magnum/Primitives/CMakeLists.txt index 33140b845..e6391f7a6 100644 --- a/src/Magnum/Primitives/CMakeLists.txt +++ b/src/Magnum/Primitives/CMakeLists.txt @@ -67,7 +67,9 @@ add_library(MagnumPrimitives ${SHARED_OR_STATIC} set_target_properties(MagnumPrimitives PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/Primitives") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumPrimitives PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumPrimitives PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumPrimitives Magnum) diff --git a/src/Magnum/SceneGraph/CMakeLists.txt b/src/Magnum/SceneGraph/CMakeLists.txt index e30a611c5..c2571e6f4 100644 --- a/src/Magnum/SceneGraph/CMakeLists.txt +++ b/src/Magnum/SceneGraph/CMakeLists.txt @@ -95,7 +95,9 @@ add_library(MagnumSceneGraph ${SHARED_OR_STATIC} set_target_properties(MagnumSceneGraph PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/SceneGraph") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumSceneGraph PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumSceneGraph PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumSceneGraph Magnum) diff --git a/src/Magnum/Shaders/CMakeLists.txt b/src/Magnum/Shaders/CMakeLists.txt index dc06202bd..fda09dbdd 100644 --- a/src/Magnum/Shaders/CMakeLists.txt +++ b/src/Magnum/Shaders/CMakeLists.txt @@ -61,7 +61,9 @@ add_library(MagnumShaders ${SHARED_OR_STATIC} set_target_properties(MagnumShaders PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/Shaders") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumShaders PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumShaders PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumShaders Magnum) diff --git a/src/Magnum/Shapes/CMakeLists.txt b/src/Magnum/Shapes/CMakeLists.txt index 67324f62d..244f4380a 100644 --- a/src/Magnum/Shapes/CMakeLists.txt +++ b/src/Magnum/Shapes/CMakeLists.txt @@ -72,7 +72,9 @@ add_library(MagnumShapes ${SHARED_OR_STATIC} set_target_properties(MagnumShapes PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/Shapes") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumShapes PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumShapes PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumShapes Magnum MagnumSceneGraph) diff --git a/src/Magnum/Text/CMakeLists.txt b/src/Magnum/Text/CMakeLists.txt index bc8081e66..95d1fdd6d 100644 --- a/src/Magnum/Text/CMakeLists.txt +++ b/src/Magnum/Text/CMakeLists.txt @@ -47,7 +47,9 @@ add_library(MagnumText ${SHARED_OR_STATIC} set_target_properties(MagnumText PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/Text") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumText PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumText PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumText Magnum MagnumTextureTools) diff --git a/src/Magnum/TextureTools/CMakeLists.txt b/src/Magnum/TextureTools/CMakeLists.txt index 28d3e80cf..af20ba326 100644 --- a/src/Magnum/TextureTools/CMakeLists.txt +++ b/src/Magnum/TextureTools/CMakeLists.txt @@ -44,7 +44,9 @@ add_library(MagnumTextureTools ${SHARED_OR_STATIC} set_target_properties(MagnumTextureTools PROPERTIES DEBUG_POSTFIX "-d" FOLDER "Magnum/TextureTools") -if(BUILD_STATIC_PIC) +if(NOT BUILD_STATIC) + set_target_properties(MagnumTextureTools PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) set_target_properties(MagnumTextureTools PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() target_link_libraries(MagnumTextureTools Magnum)