You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PackageKit-Qt/0006-Properly-export-cmake-...

102 lines
4.1 KiB

From 8547dc427bd0d09faef7b26078adf39c2fe74e01 Mon Sep 17 00:00:00 2001
From: Aleix Pol <aleixpol@kde.org>
Date: Tue, 19 Aug 2014 18:54:46 +0200
Subject: [PATCH 06/16] Properly export cmake targets
---
CMakeLists.txt | 7 +++++++
src/CMakeLists.txt | 20 +++++++++++---------
src/modules/packagekit-qt-config.cmake.in | 7 +++----
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa8978a..5df701d 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,6 +51,7 @@ set (LOCALE_DIR "${DATADIR}/locale")
set (VERSION "${QPACKAGEKIT_VERSION}")
set (BUILDDIR "${CMAKE_BINARY_DIR}")
set (LOCALSTATEDIR "/var")
+set (CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${LIBNAME}/")
add_definitions("-DLOCALSTATEDIR=\"${LOCALSTATEDIR}\"")
add_definitions("-std=gnu++11")
@@ -75,3 +76,9 @@ endif (DISABLE_MAINTAINER_CFLAGS)
add_definitions(${MAINTAINER_CFLAGS})
add_subdirectory(src)
+
+install(EXPORT PackageKitQtTargets
+ DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
+ FILE PackageKitQtTargets.cmake
+ NAMESPACE PK::
+ COMPONENT Devel)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8ef7906..d1176ec 100755
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -55,13 +55,14 @@ set(packagekitqt_SRC
details.cpp
)
-find_file(PK_INTERFACE_XML org.freedesktop.PackageKit.xml
- PATHS ${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces/
+find_path(PK_INTERFACES_DIR org.freedesktop.PackageKit.xml
+ HINTS ${CMAKE_INSTALL_PREFIX} /usr
+ PATH_SUFFIXES share/dbus-1/interfaces/
)
-find_file(PK_TRANSACTION_INTERFACE_XML org.freedesktop.PackageKit.Transaction.xml
- PATHS ${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces/
-)
-if (PK_INTERFACE_XML STREQUAL "PK_INTERFACE_XML-NOTFOUND" OR PK_TRANSACTION_INTERFACE_XML STREQUAL "PK_TRANSACTION_INTERFACE_XML-NOTFOUND")
+set(PK_INTERFACE_XML "${PK_INTERFACES_DIR}/org.freedesktop.PackageKit.xml")
+set(PK_TRANSACTION_INTERFACE_XML "${PK_INTERFACES_DIR}/org.freedesktop.PackageKit.Transaction.xml")
+
+if (NOT PK_INTERFACE_XML OR NOT PK_TRANSACTION_INTERFACE_XML)
message (FATAL_ERROR "Unable to find PackageKit DBus specifications! Please install PackageKit to continue!")
endif ()
@@ -87,7 +88,8 @@ set_target_properties(${LIBNAME} PROPERTIES VERSION ${QPACKAGEKIT_VERSION} SOVER
if (Qt5_FOUND)
add_dependencies(${LIBNAME} mocs)
target_link_libraries(${LIBNAME}
- ${Qt5DBus_LIBRARIES} ${Qt5Sql_LIBRARIES}
+ LINK_PUBLIC Qt5::DBus
+ LINK_PRIVATE Qt5::Sql
)
elseif (Qt4_FOUND)
target_link_libraries(${LIBNAME}
@@ -99,8 +101,8 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${LIBNAME}.pc.in
${CMAKE_CURRENT_BINARY_DIR}/${LIBNAME}.pc
@ONLY
)
-
-install(TARGETS ${LIBNAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+target_include_directories(${LIBNAME} INTERFACE "$<INSTALL_INTERFACE:include/PackageKit/>")
+install(TARGETS ${LIBNAME} EXPORT PackageKitQtTargets DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LIBNAME}.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
diff --git a/src/modules/packagekit-qt-config.cmake.in b/src/modules/packagekit-qt-config.cmake.in
index f9f4436..a91b095 100644
--- a/src/modules/packagekit-qt-config.cmake.in
+++ b/src/modules/packagekit-qt-config.cmake.in
@@ -1,11 +1,10 @@
# - Config information for PackageKit-Qt@QT_VERSION@
# This file defines:
#
-# PackageKitQt@QT_VERSION@_INCLUDE_DIR - the PackageKitQt@QT_VERSION@ include directory
# PackageKitQt@QT_VERSION@_LIBRARIES - Link these to use PackageKitQt@QT_VERSION@
SET(prefix "@CMAKE_INSTALL_PREFIX@")
SET(exec_prefix "@CMAKE_INSTALL_PREFIX@")
-SET(PackageKitQt@QT_VERSION@_LIBRARIES "@PKQT_INSTALL_LIBDIR@/lib@LIBNAME@.so" CACHE FILEPATH "Libraries for PackageKitQt@QT_VERSION@")
-SET(PackageKitQt@QT_VERSION@_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/include/PackageKit/@LIBNAME@" CACHE PATH "Include path for PackageKitQt@QT_VERSION@")
-SET(PackageKitQt@QT_VERSION@_FOUND "TRUE")
+SET(PackageKitQt@QT_VERSION@_LIBRARIES "PK::packagekitqt5")
+
+include("${CMAKE_CURRENT_LIST_DIR}/PackageKitQtTargets.cmake")
--
2.1.0