Warning, /graphics/kgeotag/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2020-2024 Tobias Leupold <tl at stonemx dot de> 0002 # 0003 # SPDX-License-Identifier: BSD-3-Clause 0004 0005 cmake_minimum_required(VERSION 3.16.0) 0006 project(kgeotag LANGUAGES CXX VERSION 1.5.0) 0007 0008 set(QT_MIN_VERSION "5.12") 0009 set(KF5_MIN_VERSION "5.68") 0010 set(KExiv2_MIN_VERSION "5.0.0") 0011 #FIXME: This can be set to 21.12.0 when Ubuntu LTS et al include this version. 0012 set(Marble_MIN_VERSION "") 0013 0014 set(CMAKE_CXX_STANDARD 17) 0015 set(CMAKE_CXX_STANDARD_REQUIRED ON) 0016 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") 0017 0018 # Create a debugMode.h file according to the requested CMAKE_BUILD_TYPE 0019 if (CMAKE_BUILD_TYPE MATCHES Debug) 0020 message(STATUS "Enabling extra checks for CMAKE_BUILD_TYPE=Debug mode") 0021 set(DEBUG_MODE ON) 0022 endif() 0023 configure_file(${CMAKE_SOURCE_DIR}/src/debugMode.h.in ${CMAKE_BINARY_DIR}/debugMode.h) 0024 0025 # Local CMake modules 0026 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) 0027 0028 # Find ECM 0029 find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) 0030 list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 0031 set(KDE_COMPILERSETTINGS_LEVEL "5.68") 0032 include(KDEInstallDirs) 0033 include(KDECMakeSettings) 0034 include(KDECompilerSettings NO_POLICY_SCOPE) 0035 include(ECMInstallIcons) 0036 0037 # Find Qt 0038 find_package(Qt5 ${QT_MIN_VERSION} COMPONENTS Widgets Network REQUIRED) 0039 set(CMAKE_AUTOMOC ON) 0040 add_definitions( 0041 -DQT_NO_CAST_FROM_ASCII 0042 -DQT_NO_CAST_TO_ASCII 0043 -DQT_NO_URL_CAST_FROM_STRING 0044 -DQT_NO_CAST_FROM_BYTEARRAY 0045 -DQT_DEPRECATED_WARNINGS 0046 -DQT_STRICT_ITERATORS 0047 -DQT_DISABLE_DEPRECATED_BEFORE=0x050B00 0048 ) 0049 0050 # Find KDE 0051 find_package(KF5 ${KF5_MIN_VERSION} 0052 COMPONENTS CoreAddons I18n XmlGui ConfigWidgets Crash DocTools 0053 REQUIRED 0054 ) 0055 0056 # Find KExiv2 0057 find_package(KF5KExiv2 ${KExiv2_MIN_VERSION} REQUIRED) 0058 if (${KF5KExiv2_FOUND}) 0059 message(STATUS "Found KExiv2 version ${KF5KExiv2_VERSION}") 0060 endif() 0061 0062 # Find Marble 0063 find_package(Marble ${Marble_MIN_VERSION} REQUIRED) 0064 if (${Marble_FOUND}) 0065 message(STATUS "Found Marble version ${Marble_VERSION}") 0066 endif() 0067 0068 # Generate version.h 0069 add_custom_target( 0070 UpdateVersion ALL 0071 COMMAND ${CMAKE_COMMAND} -DBASE_DIR=${CMAKE_SOURCE_DIR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} 0072 -DPROJECT_VERSION="${PROJECT_VERSION}" 0073 -P ${CMAKE_SOURCE_DIR}/cmake/UpdateVersion.cmake 0074 COMMENT "Updating version header" 0075 BYPRODUCTS ${CMAKE_BINARY_DIR}/version.h 0076 ) 0077 0078 # Source files 0079 set(main_ROOT ${CMAKE_SOURCE_DIR}/src) 0080 set(kgeotag_SOURCES 0081 ${main_ROOT}/main.cpp 0082 ${main_ROOT}/SharedObjects.cpp 0083 ${main_ROOT}/Settings.cpp 0084 ${main_ROOT}/MainWindow.cpp 0085 ${main_ROOT}/PreviewWidget.cpp 0086 ${main_ROOT}/MapWidget.cpp 0087 ${main_ROOT}/ImagePreview.cpp 0088 ${main_ROOT}/SettingsDialog.cpp 0089 ${main_ROOT}/FixDriftWidget.cpp 0090 ${main_ROOT}/GpxEngine.cpp 0091 ${main_ROOT}/ElevationEngine.cpp 0092 ${main_ROOT}/BookmarksList.cpp 0093 ${main_ROOT}/BookmarksWidget.cpp 0094 ${main_ROOT}/CoordinatesDialog.cpp 0095 ${main_ROOT}/CoordinatesFormatter.cpp 0096 ${main_ROOT}/RetrySkipAbortDialog.cpp 0097 ${main_ROOT}/ImagesModel.cpp 0098 ${main_ROOT}/ImagesListView.cpp 0099 ${main_ROOT}/ImagesListFilter.cpp 0100 ${main_ROOT}/Coordinates.cpp 0101 ${main_ROOT}/AutomaticMatchingWidget.cpp 0102 ${main_ROOT}/MimeHelper.cpp 0103 ${main_ROOT}/ImagesLayer.cpp 0104 ${main_ROOT}/TracksLayer.cpp 0105 ${main_ROOT}/MapCenterInfo.cpp 0106 ${main_ROOT}/GeoDataModel.cpp 0107 ${main_ROOT}/TracksListView.cpp 0108 ${main_ROOT}/TrackWalker.cpp 0109 ${main_ROOT}/Logging.cpp 0110 ) 0111 0112 qt_add_resources(kgeotag_SOURCES ${CMAKE_SOURCE_DIR}/kgeotag.qrc) 0113 0114 # Build the executable 0115 add_executable(kgeotag ${kgeotag_SOURCES}) 0116 add_dependencies(kgeotag UpdateVersion) 0117 target_link_libraries(kgeotag 0118 PRIVATE 0119 Qt5::Widgets 0120 Qt5::Network 0121 KF5::CoreAddons 0122 KF5::I18n 0123 KF5::XmlGui 0124 KF5::ConfigWidgets 0125 KF5::Crash 0126 KF5::KExiv2 0127 Marble 0128 ) 0129 0130 # Documentation 0131 kdoctools_create_handbook( 0132 doc/index.docbook 0133 INSTALL_DESTINATION "${KDE_INSTALL_DOCBUNDLEDIR}/en" 0134 SUBDIR kgeotag 0135 ) 0136 0137 # Installation 0138 0139 install(TARGETS kgeotag ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0140 0141 ecm_install_icons( 0142 ICONS icons/16-apps-kgeotag.png 0143 icons/22-apps-kgeotag.png 0144 icons/32-apps-kgeotag.png 0145 icons/48-apps-kgeotag.png 0146 icons/64-apps-kgeotag.png 0147 icons/128-apps-kgeotag.png 0148 DESTINATION ${KDE_INSTALL_ICONDIR}) 0149 0150 install(FILES "timezones/timezones.png" 0151 "timezones/timezones.json" 0152 DESTINATION "${KDE_INSTALL_DATADIR}/kgeotag") 0153 0154 install(PROGRAMS org.kde.kgeotag.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 0155 install(FILES org.kde.kgeotag.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 0156 0157 ki18n_install(po)