From a7939a3a19ad5ac3cdd3dd2233d745d9943e7b75 Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Sat, 26 Oct 2024 15:31:15 -0400 Subject: [PATCH] switch to static linking for qt6ct library --- external/qt6ct.cmake | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/external/qt6ct.cmake b/external/qt6ct.cmake index 1c6bb947..9ea8b8e3 100644 --- a/external/qt6ct.cmake +++ b/external/qt6ct.cmake @@ -1,11 +1,34 @@ cmake_minimum_required(VERSION 3.16.0) set(PROJECT_NAME scwx-qt6ct) -add_subdirectory(qt6ct/src/qt6ct-common) +#extract version from qt6ct.h +file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/qt6ct/src/qt6ct-common/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/src/qt6ct-common/qt6ct.cpp +) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/qt6ct/src/qt6ct-common) + +add_library(qt6ct-common STATIC ${app_SRCS}) +set_target_properties(qt6ct-common PROPERTIES VERSION ${QT6CT_VERSION}) +target_link_libraries(qt6ct-common PRIVATE Qt6::Gui) +install(TARGETS qt6ct-common DESTINATION ${CMAKE_INSTALL_LIBDIR}) + set_target_properties(qt6ct-common PROPERTIES PUBLIC_HEADER qt6ct/src/qt6ct-common/qt6ct.h) target_include_directories( qt6ct-common INTERFACE qt6ct/src ) -install(TARGETS qt6ct-common - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qt6ct - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})