# Prefer Qt6 when available, fallback to Qt5 find_package(Qt6 COMPONENTS Core Gui PrintSupport Sql Svg Widgets Xml QUIET) if(NOT Qt6_FOUND) FIND_PACKAGE(Qt5 COMPONENTS Core Gui PrintSupport Sql Svg Widgets Xml REQUIRED) set(_qt_prefix "Qt5") else() set(_qt_prefix "Qt6") endif() # If KDReports already provided via variables, use them IF(KDREPORTS_INCLUDE_DIR AND KDREPORTS_KDREPORTS_INCLUDE_DIR AND KDREPORTS_LIBRARY) SET(KDREPORTS_FOUND TRUE) SET(KDReports_FOUND TRUE) 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) 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) 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() ENDIF() IF(NOT TARGET KDReports::KDReports) ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED) 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 APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${_qt_prefix}::Core ${_qt_prefix}::Gui ${_qt_prefix}::PrintSupport ${_qt_prefix}::Widgets) ENDIF()