From c431afa442b1ed3be9498485695fda098616ddb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jeremy=20B=C3=ADcha?= Date: Mon, 16 Mar 2026 16:10:24 -0400 Subject: [PATCH] CMake: make library a shared library with a soname and install it --- CMakeLists.txt | 2 ++ src/CMakeLists.txt | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cdeb6e2..2606fa0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.10) project(QtOrm LANGUAGES CXX) +set(API_VERSION 1) + # https://stackoverflow.com/questions/25199677/how-to-detect-if-current-scope-has-a-parent-in-cmake get_directory_property(hasParent PARENT_DIRECTORY) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 009da80..bd49f67 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -77,13 +77,19 @@ set(QTORM_SOURCES set(BUILD_SHARED_LIBS ${QTORM_BUILD_SHARED_LIBS}) -add_library(qtorm +add_library(qtorm SHARED ${QTORM_PUBLIC_HEADERS} ${QTORM_PRIVATE_HEADERS} ${QTORM_SOURCES} ${QTORM_GENERATED_HEADERS} ) +set_target_properties( + qtorm PROPERTIES + VERSION ${API_VERSION}.0.0 + SOVERSION ${API_VERSION} +) + target_link_libraries(qtorm PUBLIC Qt${QTORM_QT_VERSION_MAJOR}::Core PRIVATE Qt${QTORM_QT_VERSION_MAJOR}::Sql) target_compile_definitions(qtorm PRIVATE QT_BUILD_ORM_LIB) @@ -98,3 +104,8 @@ target_compile_features(qtorm PUBLIC cxx_std_17) if (MSVC) target_compile_definitions(qtorm PRIVATE __PRETTY_FUNCTION__=__FUNCTION__) endif() + +install( + TARGETS qtorm + LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} +)