diff --git a/CMakeLists.txt b/CMakeLists.txt index 11da3ef..719a235 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,102 +1,112 @@ cmake_minimum_required(VERSION 2.8.12) project(LibKompareDiff2) -find_package(ECM 0.0.9 REQUIRED NO_MODULE) +find_package(ECM 5.16.0 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMSetupVersion) +include(ECMPackageConfigHelpers) include(FeatureSummary) include(GenerateExportHeader) -find_package(Qt5Core NO_MODULE) +set(QT_MIN_VERSION "5.4.0") +find_package(Qt5Core ${QT_MIN_VERSION} NO_MODULE) set_package_properties(Qt5Core PROPERTIES TYPE REQUIRED) -find_package(Qt5Widgets NO_MODULE) +find_package(Qt5Widgets ${QT_MIN_VERSION} NO_MODULE) set_package_properties(Qt5Widgets PROPERTIES TYPE REQUIRED) -find_package(Qt5Test NO_MODULE) +find_package(Qt5Test ${QT_MIN_VERSION} NO_MODULE) -find_package(KF5 REQUIRED +set(KF5_DEP_VERSION "5.16.0") +find_package(KF5 ${KF5_DEP_VERSION} REQUIRED COMPONENTS CoreAddons Codecs Config XmlGui I18n KIO ) -set(KF5_VERSION "5.0") -ecm_setup_version(${KF5_VERSION} +set(KOMPAREDIFF2_VERSION "5.1") +ecm_setup_version(${KOMPAREDIFF2_VERSION} VARIABLE_PREFIX LIBKOMPAREDIFF2 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/LibKompareDiff2ConfigVersion.cmake" SOVERSION 5) add_definitions(-DQT_NO_URL_CAST_FROM_STRING) set(komparediff2_SRCS kompareprocess.cpp komparemodellist.cpp diffmodellist.cpp diffmodel.cpp difference.cpp diffhunk.cpp diffsettings.cpp settingsbase.cpp parser.cpp parserbase.cpp cvsdiffparser.cpp diffparser.cpp perforceparser.cpp stringlistpair.cpp kompare.cpp ) add_library(komparediff2 ${komparediff2_SRCS}) generate_export_header(komparediff2 BASE_NAME diff2) target_link_libraries(komparediff2 Qt5::Core Qt5::Widgets KF5::Codecs KF5::CoreAddons KF5::I18n KF5::KIOCore KF5::XmlGui ) -target_include_directories(komparediff2 INTERFACE "$") +target_include_directories(komparediff2 INTERFACE "$") -set_target_properties(komparediff2 PROPERTIES VERSION ${LIBKOMPAREDIFF2_VERSION_STRING} SOVERSION ${LIBKOMPAREDIFF2_SOVERSION} ) +set_target_properties(komparediff2 PROPERTIES + VERSION ${LIBKOMPAREDIFF2_VERSION_STRING} + SOVERSION ${LIBKOMPAREDIFF2_SOVERSION} + EXPORT_NAME "KompareDiff2" +) install(TARGETS komparediff2 EXPORT LibKompareDiff2Targets ${INSTALL_TARGETS_DEFAULT_ARGS}) add_subdirectory(tests) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/diff2_export.h settingsbase.h diffsettings.h komparemodellist.h difference.h diffmodel.h diffmodellist.h marker.h kompare.h diffhunk.h DESTINATION ${INCLUDE_INSTALL_DIR}/libkomparediff2 COMPONENT Devel ) # Config.cmake file. -configure_file( "${CMAKE_SOURCE_DIR}/LibKompareDiff2Config.cmake.in" "${CMAKE_BINARY_DIR}/LibKompareDiff2Config.cmake" @ONLY ) - set(_LibKompareDiff2_CONFIG_DEST "${LIB_INSTALL_DIR}/cmake/LibKompareDiff2") +ecm_configure_package_config_file( + "${CMAKE_SOURCE_DIR}/LibKompareDiff2Config.cmake.in" + "${CMAKE_BINARY_DIR}/LibKompareDiff2Config.cmake" + INSTALL_DESTINATION "${_LibKompareDiff2_CONFIG_DEST}" +) + install( FILES "${CMAKE_CURRENT_BINARY_DIR}/LibKompareDiff2ConfigVersion.cmake" "${CMAKE_BINARY_DIR}/LibKompareDiff2Config.cmake" DESTINATION "${_LibKompareDiff2_CONFIG_DEST}" ) install( EXPORT LibKompareDiff2Targets DESTINATION "${_LibKompareDiff2_CONFIG_DEST}" - NAMESPACE LibKompareDiff2Import__ FILE LibKompareDiff2Targets.cmake ) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/LibKompareDiff2Config.cmake.in b/LibKompareDiff2Config.cmake.in index caa3b6a..e3c5df7 100644 --- a/LibKompareDiff2Config.cmake.in +++ b/LibKompareDiff2Config.cmake.in @@ -1,32 +1,16 @@ -######################################################################### -# -# LibKompareDiff2 Configuration File -# -# This file sets various CMake Variables -# -# LIBKOMPAREDIFF2_INCLUDE_DIR - The Include Directory for the LIBKOMPAREDIFF2 library -# LIBKOMPAREDIFF2_LIBRARIES - the libkomparediff2 library -# -# Copyright 2008 Andreas Pakulat -# Copyright 2010 Niko Sams -# Copyright 2013 Jeremy Whiting -# Redistribution and use is allowed according to the terms of the BSD license. -###################################################################### +@PACKAGE_INIT@ -get_filename_component(_LIBKOMPAREDIFF2_CURRENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +find_dependency(Qt5Core "@QT_MIN_VERSION@") +find_dependency(Qt5Widgets "@QT_MIN_VERSION@") -if(NOT WIN32) -# This is needed on non-win32 platforms, as lib-install-dir might be in a -# totally different prefix than include-install-dir. So instead hardcode the -# absolute path during buildtime -set( LIBKOMPAREDIFF2_INCLUDE_DIR "@INCLUDE_INSTALL_DIR@/libkomparediff2" ) - -else(NOT WIN32) - -set( LIBKOMPAREDIFF2_INCLUDE_DIR "${_LIBKOMPAREDIFF2_CURRENT_DIR}/../../../include/libkomparediff2" ) - -endif(NOT WIN32) +find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@") +find_dependency(KF5Codecs "@KF5_DEP_VERSION@") +find_dependency(KF5Config "@KF5_DEP_VERSION@") +find_dependency(KF5I18n "@KF5_DEP_VERSION@") +find_dependency(KF5KIO "@KF5_DEP_VERSION@") +find_dependency(KF5XmlGui "@KF5_DEP_VERSION@") include("${CMAKE_CURRENT_LIST_DIR}/LibKompareDiff2Targets.cmake") -set( LIBKOMPAREDIFF2_LIBRARIES LibKompareDiff2Import__komparediff2) +get_target_property(LIBKOMPAREDIFF2_INCLUDE_DIR KompareDiff2 INTERFACE_INCLUDE_DIRECTORIES) +set(LIBKOMPAREDIFF2_LIBRARIES KompareDiff2)