From d7dbff6de1292b9512fe0bb8ac24b10edd10dd7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Pereira?= Date: Tue, 28 Feb 2017 15:47:41 +0000 Subject: [PATCH] Use the CMake Targets way Drop the qtermwidget5_use file. Everything done with targets. --- CMakeLists.txt | 34 ++++++++++++++++++++++++++---- cmake/qtermwidget5-config.cmake.in | 23 +++++++++----------- cmake/qtermwidget5_use.cmake | 9 -------- 3 files changed, 40 insertions(+), 26 deletions(-) delete mode 100644 cmake/qtermwidget5_use.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 181591d..16e6be1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() +find_package(Qt5Widgets REQUIRED) find_package(Qt5LinguistTools REQUIRED) find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED) include(LXQtTranslateTs) @@ -48,7 +49,6 @@ include_directories( ) set(QTERMWIDGET_LIBRARY_NAME qtermwidget5) -include(qtermwidget5_use) option(USE_UTF8PROC "Use libutf8proc for better Unicode support. Default OFF" OFF) @@ -137,7 +137,7 @@ qt5_wrap_ui(UI_SRCS ${UI}) set(PKG_CONFIG_REQ "Qt5Core, Qt5Xml, Qt5Widgets") add_library(${QTERMWIDGET_LIBRARY_NAME} SHARED ${SRCS} ${MOCS} ${UI_SRCS} ${QTERMWIDGET_QM}) -target_link_libraries(${QTERMWIDGET_LIBRARY_NAME} ${QTERMWIDGET_QT_LIBRARIES}) +target_link_libraries(${QTERMWIDGET_LIBRARY_NAME} Qt5::Widgets) set_target_properties( ${QTERMWIDGET_LIBRARY_NAME} PROPERTIES SOVERSION ${QTERMWIDGET_VERSION_MAJOR} VERSION ${QTERMWIDGET_VERSION} @@ -177,6 +177,12 @@ generate_export_header(${QTERMWIDGET_LIBRARY_NAME} EXPORT_MACRO_NAME QTERMWIDGET_EXPORT ) +target_include_directories(${QTERMWIDGET_LIBRARY_NAME} + INTERFACE + "$" + "$" +) + write_basic_package_version_file( "${CMAKE_BINARY_DIR}/${QTERMWIDGET_LIBRARY_NAME}-config-version.cmake" VERSION ${QTERMWIDGET_VERSION} @@ -188,7 +194,13 @@ install(FILES DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/${QTERMWIDGET_LIBRARY_NAME}" COMPONENT Devel ) -install(TARGETS ${QTERMWIDGET_LIBRARY_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}") + +install(EXPORT + "${QTERMWIDGET_LIBRARY_NAME}-targets" + DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/${QTERMWIDGET_LIBRARY_NAME}" + COMPONENT Devel +) + install(FILES ${HDRS_DISTRIB} "${CMAKE_CURRENT_BINARY_DIR}/lib/qtermwidget_export.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${QTERMWIDGET_LIBRARY_NAME}" @@ -211,11 +223,25 @@ configure_file( "${CMAKE_BINARY_DIR}/${QTERMWIDGET_LIBRARY_NAME}-config.cmake" @ONLY ) + install(FILES "${CMAKE_BINARY_DIR}/${QTERMWIDGET_LIBRARY_NAME}-config.cmake" - "${CMAKE_SOURCE_DIR}/cmake/${QTERMWIDGET_LIBRARY_NAME}_use.cmake" DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/${QTERMWIDGET_LIBRARY_NAME}" ) + +install(TARGETS ${QTERMWIDGET_LIBRARY_NAME} + DESTINATION "${CMAKE_INSTALL_LIBDIR}" + EXPORT "${QTERMWIDGET_LIBRARY_NAME}-targets" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + PUBLIC_HEADER + COMPONENT Runtime +) + +export(TARGETS ${QTERMWIDGET_LIBRARY_NAME} + FILE "${CMAKE_BINARY_DIR}/${QTERMWIDGET_LIBRARY_NAME}-targets.cmake" + EXPORT_LINK_INTERFACE_LIBRARIES +) + install(FILES ${QTERMWIDGET_QM} DESTINATION ${TRANSLATIONS_DIR}) # end of main library diff --git a/cmake/qtermwidget5-config.cmake.in b/cmake/qtermwidget5-config.cmake.in index 83295e4..8e6f5d5 100644 --- a/cmake/qtermwidget5-config.cmake.in +++ b/cmake/qtermwidget5-config.cmake.in @@ -24,18 +24,15 @@ # add_executable(foo main.cpp) # target_link_libraries(foo ${QTERMWIDGET_QT_LIBRARIES} ${QTERMWIDGET_LIBRARIES}) -set(QTERMWIDGET_INCLUDE_DIR @QTERMWIDGET_INCLUDE_DIR@) -set(QTERMWIDGET_LIBRARY @QTERMWIDGET_LIBRARY_NAME@) +@PACKAGE_INIT@ -set(QTERMWIDGET_LIBRARIES ${QTERMWIDGET_LIBRARY}) -set(QTERMWIDGET_INCLUDE_DIRS "${QTERMWIDGET_INCLUDE_DIR}") +if (CMAKE_VERSION VERSION_LESS 3.0.2) + message(FATAL_ERROR \"qtermwidget requires at least CMake version 3.0.2\") +endif() -set(QTERMWIDGET_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/qtermwidget5_use.cmake") -set(QTERMWIDGET_FOUND 1) - -set(QTERMWIDGET_VERSION_MAJOR @QTERMWIDGET_VERSION_MAJOR@) -set(QTERMWIDGET_VERSION_MINOR @QTERMWIDGET_VERSION_MINOR@) -set(QTERMWIDGET_VERSION_PATCH @QTERMWIDGET_VERSION_PATCH@) -set(QTERMWIDGET_VERSION @QTERMWIDGET_VERSION@) - -mark_as_advanced(QTERMWIDGET_LIBRARY QTERMWIDGET_INCLUDE_DIR) +if (NOT TARGET @QTERMWIDGET_LIBRARY_NAME@) + if (POLICY CMP0024) + cmake_policy(SET CMP0024 NEW) + endif() + include("${CMAKE_CURRENT_LIST_DIR}/@QTERMWIDGET_LIBRARY_NAME@-targets.cmake") +endif() diff --git a/cmake/qtermwidget5_use.cmake b/cmake/qtermwidget5_use.cmake deleted file mode 100644 index 3db35fa..0000000 --- a/cmake/qtermwidget5_use.cmake +++ /dev/null @@ -1,9 +0,0 @@ -find_package(Qt5Widgets REQUIRED) - -include_directories(${Qt5Widgets_INCLUDE_DIRS}) -add_definitions(${Qt5Core_DEFINITIONS}) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}") -set(QTERMWIDGET_QT_LIBRARIES ${Qt5Widgets_LIBRARIES}) - -include_directories(${QTERMWIDGET_INCLUDE_DIRS}) -