new_docker_build.sh gains Group 12 (212 GUI/Data plugins); fixes LtsUtilsGuiDds visibility (LTO-stripped exports), LtsProjectionWorkstation unity name shadow, 6 unity-off dirs (dup file-scope statics, ddsftc INTERFACE sources) and reconfigures BUILD_FILTERMANAGEMENT/BUILD_PLUGINS_SERVICEMONITOR=ON
84 lines
4.3 KiB
CMake
Executable File
84 lines
4.3 KiB
CMake
Executable File
|
|
|
|
# Qt6 only - no Qt5 fallback
|
|
find_package(Qt6 COMPONENTS Core Gui PrintSupport Sql Svg Widgets Xml QUIET)
|
|
if(NOT Qt6_FOUND)
|
|
set(KDReports_FOUND FALSE)
|
|
return()
|
|
endif()
|
|
set(_qt_prefix "Qt6")
|
|
|
|
# Prefer KDReports-qt6 package config if installed under standard prefixes
|
|
# Search in common installation locations for KDReports cmake config
|
|
list(APPEND CMAKE_PREFIX_PATH /usr/local /usr)
|
|
find_package(KDReports-qt6 CONFIG QUIET PATHS /usr/local/lib/cmake/KDReports-qt6 /usr/local/lib64/cmake/KDReports-qt6 /usr/lib/cmake/KDReports-qt6 /usr/lib64/cmake/KDReports-qt6)
|
|
if(KDReports-qt6_FOUND OR KDReports-qt6_CONFIG)
|
|
message(STATUS "Found KDReports-qt6 package config")
|
|
set(KDREPORTS_FOUND TRUE)
|
|
set(KDReports_FOUND TRUE)
|
|
# KDReports-qt6 config provides KDReports::KDReports imported target
|
|
# Set variables for compatibility with code that uses them
|
|
set(KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6")
|
|
set(KDREPORTS_KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6")
|
|
# Check lib64 first, then lib
|
|
if(EXISTS "/usr/local/lib64/libkdreports-qt6.so")
|
|
set(KDREPORTS_LIBRARY "/usr/local/lib64/libkdreports-qt6.so")
|
|
else()
|
|
set(KDREPORTS_LIBRARY "/usr/local/lib/libkdreports-qt6.so")
|
|
endif()
|
|
else()
|
|
# Search both /usr and /usr/local for apt-installed or manually built KDReports
|
|
FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h PATHS /usr/include /usr/local/include)
|
|
FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports PATHS /usr/include /usr/local/include)
|
|
FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports kdreport kdreports-qt6 PATHS /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64)
|
|
|
|
INCLUDE(FindPackageHandleStandardArgs)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG
|
|
KDREPORTS_LIBRARY
|
|
KDREPORTS_INCLUDE_DIR
|
|
KDREPORTS_KDREPORTS_INCLUDE_DIR
|
|
)
|
|
|
|
MARK_AS_ADVANCED(KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
|
|
MARK_AS_ADVANCED(KDREPORTS_KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
|
|
endif()
|
|
|
|
# The root CMakeLists may already have created a no-op stub target for
|
|
# KDReports::KDReports (before FindKDReports ran). When the library was found,
|
|
# upgrade that existing target to the real imported target instead of skipping.
|
|
IF(KDReports_FOUND)
|
|
IF(NOT TARGET KDReports::KDReports)
|
|
ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED)
|
|
ENDIF()
|
|
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_KDREPORTS_INCLUDE_DIR}")
|
|
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_KDREPORTS_INCLUDE_DIR}")
|
|
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY IMPORTED_LOCATION "${KDREPORTS_LIBRARY}")
|
|
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_COMPILE_DEFINITIONS "")
|
|
SET_PROPERTY(TARGET KDReports::KDReports APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${_qt_prefix}::Core ${_qt_prefix}::Gui ${_qt_prefix}::PrintSupport ${_qt_prefix}::Widgets)
|
|
|
|
# KDReports headers use Qt5-style bare includes (#include <QPrinter>, ...). In Qt6
|
|
# the forwarding headers live in <QtPrefix>/include/QtPrintSupport. The Qt6::PrintSupport
|
|
# target may resolve to a no-include stub in this build, so expose the module include
|
|
# dir directly to guarantee the bare include resolves for every KDReports consumer.
|
|
SET(_kd_qt6_prefix "")
|
|
IF(DEFINED Qt6_DIR AND EXISTS "${Qt6_DIR}")
|
|
GET_FILENAME_COMPONENT(_kd_qt6_prefix "${Qt6_DIR}/../../.." ABSOLUTE)
|
|
ENDIF()
|
|
SET(_kd_printsupport_inc "")
|
|
IF(_kd_qt6_prefix AND EXISTS "${_kd_qt6_prefix}/include/QtPrintSupport")
|
|
SET(_kd_printsupport_inc "${_kd_qt6_prefix}/include/QtPrintSupport")
|
|
ELSE()
|
|
FIND_PATH(_kd_printsupport_inc QPrinter
|
|
PATHS /usr/include/x86_64-linux-gnu/qt6/QtPrintSupport /usr/include/qt6/QtPrintSupport
|
|
NO_DEFAULT_PATH)
|
|
ENDIF()
|
|
IF(_kd_printsupport_inc AND NOT _kd_printsupport_inc-NOTFOUND)
|
|
SET_PROPERTY(TARGET KDReports::KDReports APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_kd_printsupport_inc}")
|
|
MESSAGE(STATUS "KDReports: exposing Qt6 QtPrintSupport include dir: ${_kd_printsupport_inc}")
|
|
ENDIF()
|
|
ELSE()
|
|
IF(NOT TARGET KDReports::KDReports)
|
|
ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED)
|
|
ENDIF()
|
|
ENDIF()
|