cmake: extend FindKDReports to detect KDReports-qt6 installed under /usr/local and provide imported target shim
This commit is contained in:
1 parent
7e661079b1
commit
398c1fe981
1 file changed
+38
-47
+38
-47
@@ -1,25 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 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)
|
||||||
if(NOT Qt6_FOUND)
|
if(NOT Qt6_FOUND)
|
||||||
@@ -27,30 +7,41 @@ if(NOT Qt6_FOUND)
|
|||||||
set(_qt_prefix "Qt5")
|
set(_qt_prefix "Qt5")
|
||||||
else()
|
else()
|
||||||
set(_qt_prefix "Qt6")
|
set(_qt_prefix "Qt6")
|
||||||
endif()
|
endif()
|
||||||
IF(KDREPORTS_INCLUDE_DIR AND KDREPORTS_KDREPORTS_INCLUDE_DIR AND KDREPORTS_LIBRARY)
|
|
||||||
SET(KDREPORTS_FOUND TRUE)
|
# If KDReports already provided via variables, use them
|
||||||
ELSE()
|
IF(KDREPORTS_INCLUDE_DIR AND KDREPORTS_KDREPORTS_INCLUDE_DIR AND KDREPORTS_LIBRARY)
|
||||||
|
SET(KDREPORTS_FOUND TRUE)
|
||||||
FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h)
|
ELSE()
|
||||||
FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports)
|
# Prefer KDReports-qt6 package config if installed under standard prefixes
|
||||||
FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports)
|
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")
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
set(KDREPORTS_FOUND TRUE)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG
|
# Best-effort defaults; specific projects will use the imported target below
|
||||||
KDREPORTS_LIBRARY
|
set(KDREPORTS_INCLUDE_DIR "/usr/local/include")
|
||||||
KDREPORTS_INCLUDE_DIR
|
set(KDREPORTS_KDREPORTS_INCLUDE_DIR "/usr/local/include")
|
||||||
KDREPORTS_KDREPORTS_INCLUDE_DIR
|
set(KDREPORTS_LIBRARY "/usr/local/lib/libkdreports-qt6.so")
|
||||||
)
|
else()
|
||||||
|
FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h)
|
||||||
MARK_AS_ADVANCED(KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
|
FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports)
|
||||||
MARK_AS_ADVANCED(KDREPORTS_KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
|
FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports kdreport kdreports-qt6)
|
||||||
ENDIF()
|
|
||||||
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
IF(NOT TARGET KDReports::KDReports)
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG
|
||||||
ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED)
|
KDREPORTS_LIBRARY
|
||||||
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_KDREPORTS_INCLUDE_DIR}")
|
KDREPORTS_INCLUDE_DIR
|
||||||
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_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()
|
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()
|
||||||
Reference in new issue
Block a user