diff --git a/src/qt6ct-common/CMakeLists.txt b/src/qt6ct-common/CMakeLists.txt index a11c1c1d679ba457ead09add20f7fd97eadd35fa..6f9c6f9275804efa20398cb5efba20cc08146a7e 100644 --- a/src/qt6ct-common/CMakeLists.txt +++ b/src/qt6ct-common/CMakeLists.txt @@ -1,5 +1,23 @@ project(qt6ct-common) +#extract version from qt6ct.h +file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/qt6ct.h" + QT6CT_VERSION_DATA REGEX "^#define[ \t]+QT6CT_VERSION_[A-Z]+[ \t]+[0-9]+.*$") + +if(QT6CT_VERSION_DATA) + foreach(item IN ITEMS MAJOR MINOR) + string(REGEX REPLACE ".*#define[ \t]+QT6CT_VERSION_${item}[ \t]+([0-9]+).*" + "\\1" QT6CT_VERSION_${item} ${QT6CT_VERSION_DATA}) + endforeach() + set(QT6CT_VERSION "${QT6CT_VERSION_MAJOR}.${QT6CT_VERSION_MINOR}") + set(QT6CT_SOVERSION "${QT6CT_VERSION_MAJOR}") + message(STATUS "qt6ct version: ${QT6CT_VERSION}") +else() + message(FATAL_ERROR "invalid header") +endif() + +add_definitions(-DQT6CT_LIBRARY) + set(app_SRCS qt6ct.cpp ) @@ -7,5 +25,6 @@ set(app_SRCS include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../) add_library(qt6ct-common SHARED ${app_SRCS}) +set_target_properties(qt6ct-common PROPERTIES VERSION ${QT6CT_VERSION}) target_link_libraries(qt6ct-common PRIVATE Qt6::Widgets) install(TARGETS qt6ct-common DESTINATION ${CMAKE_INSTALL_LIBDIR})