cmake: extend FindKDReports to detect KDReports-qt6 installed under /usr/local and provide imported target shim

This commit is contained in:
torsten committed 2026-07-17 15:28:16 +02:00
1 parent 7e661079b1
commit 398c1fe981
1 file changed
+23 -32
+23 -32
View File
@@ -1,24 +1,4 @@
# Prefer Qt6 when available, fallback to Qt5 # Prefer Qt6 when available, fallback to Qt5
find_package(Qt6 COMPONENTS Core Gui PrintSupport Sql Svg Widgets Xml QUIET) find_package(Qt6 COMPONENTS Core Gui PrintSupport Sql Svg Widgets Xml QUIET)
@@ -28,23 +8,34 @@ if(NOT Qt6_FOUND)
else() else()
set(_qt_prefix "Qt6") set(_qt_prefix "Qt6")
endif() endif()
# If KDReports already provided via variables, use them
IF(KDREPORTS_INCLUDE_DIR AND KDREPORTS_KDREPORTS_INCLUDE_DIR AND KDREPORTS_LIBRARY) IF(KDREPORTS_INCLUDE_DIR AND KDREPORTS_KDREPORTS_INCLUDE_DIR AND KDREPORTS_LIBRARY)
SET(KDREPORTS_FOUND TRUE) SET(KDREPORTS_FOUND TRUE)
ELSE() ELSE()
# Prefer KDReports-qt6 package config if installed under standard prefixes
if(EXISTS "${CMAKE_PREFIX_PATH}/lib/cmake/KDReports-qt6" OR EXISTS "/usr/local/lib/cmake/KDReports-qt6")
message(STATUS "Found KDReports-qt6 package config in CMAKE_PREFIX_PATH or /usr/local")
set(KDREPORTS_FOUND TRUE)
# Best-effort defaults; specific projects will use the imported target below
set(KDREPORTS_INCLUDE_DIR "/usr/local/include")
set(KDREPORTS_KDREPORTS_INCLUDE_DIR "/usr/local/include")
set(KDREPORTS_LIBRARY "/usr/local/lib/libkdreports-qt6.so")
else()
FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h)
FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports)
FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports kdreport kdreports-qt6)
FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h) INCLUDE(FindPackageHandleStandardArgs)
FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports) FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG
FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports) KDREPORTS_LIBRARY
KDREPORTS_INCLUDE_DIR
KDREPORTS_KDREPORTS_INCLUDE_DIR
)
INCLUDE(FindPackageHandleStandardArgs) MARK_AS_ADVANCED(KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG MARK_AS_ADVANCED(KDREPORTS_KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
KDREPORTS_LIBRARY endif()
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() ENDIF()
IF(NOT TARGET KDReports::KDReports) IF(NOT TARGET KDReports::KDReports)