Warning, /graphics/koko/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2014 Vishesh Handa <vhanda@kde.org>
0002 # SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de>
0003 # SPDX-FileCopyrightText: 2021 Carl Schwan <carl@carlschwan.eu>
0004 # SPDX-License-Identifier: LGPL-2.1-or-later
0005 #
0006 # Common Library
0007 #
0008 set(LIB_SRCS
0009 imagestorage.cpp
0010 exiv2extractor.cpp
0011 filesystemimagefetcher.cpp
0012 ${LIB_SRCS}
0013 )
0014
0015 add_library(kokocommon SHARED ${LIB_SRCS})
0016 target_link_libraries(kokocommon
0017 Qt::Core
0018 Qt::Positioning
0019 Qt::Sql
0020 Qt::Svg
0021 KF6::CoreAddons
0022 KF6::DBusAddons
0023 KF6::FileMetaData
0024 KF6::ConfigGui
0025 KF6::ConfigCore
0026 LibExiv2::LibExiv2
0027 )
0028
0029 generate_export_header(kokocommon BASE_NAME KOKO EXPORT_FILE_NAME koko_export.h)
0030 set_target_properties(kokocommon PROPERTIES
0031 VERSION 0.0.1
0032 SOVERSION 0.0.1
0033 )
0034
0035 install(TARGETS kokocommon EXPORT KokoLibraryTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0036
0037 #
0038 # Application
0039 #
0040
0041 set(koko_SRCS
0042 main.cpp
0043 openfilemodel.cpp
0044 reversegeocoder.cpp
0045 filesystemtracker.cpp
0046 processor.cpp
0047 committimer.cpp
0048 imageprocessorrunnable.cpp
0049 vectorimage.cpp
0050 controller.cpp
0051 kdtree.cpp
0052 filemenu.h
0053 filemenu.cpp
0054 resources.qrc
0055 )
0056
0057 kconfig_add_kcfg_files(koko_SRCS kokoconfig.kcfgc GENERATE_MOC)
0058
0059 add_executable(koko ${koko_SRCS})
0060
0061 target_link_libraries(koko
0062 Qt::Quick
0063 Qt::Widgets
0064 Qt::Qml
0065 Qt::Positioning
0066 KF6::ConfigCore
0067 KF6::I18n
0068 KF6::CoreAddons
0069 KF6::KIOCore
0070 KF6::KIOWidgets
0071 KF6::ConfigWidgets
0072 kokocommon
0073 )
0074
0075 target_include_directories(koko PRIVATE ${CMAKE_BINARY_DIR})
0076
0077 if(ANDROID)
0078 target_link_libraries(koko Qt::AndroidExtras)
0079 else()
0080 target_link_libraries(koko KF6::WindowSystem)
0081 endif()
0082
0083 target_compile_definitions(koko PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
0084
0085 install(TARGETS koko ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0086
0087 #
0088 # QML Plugin
0089 #
0090 set (qml_plugin_SRCS
0091 qmlplugins.cpp
0092 dirmodelutils.cpp
0093 openfilemodel.cpp
0094 imagelocationmodel.cpp
0095 imagefavoritesmodel.cpp
0096 imagetagsmodel.cpp
0097 imagetimemodel.cpp
0098 imagefoldermodel.cpp
0099 sortmodel.cpp
0100 imagelistmodel.cpp
0101 notificationmanager.cpp
0102 types.cpp
0103 roles.cpp
0104 fileinfo.cpp
0105 displaycolorspace.cpp
0106 )
0107
0108 add_library (kokoqmlplugin SHARED ${qml_plugin_SRCS})
0109
0110 target_link_libraries (kokoqmlplugin
0111 Qt6::Qml
0112 KF6::KIOCore
0113 KF6::KIOFileWidgets
0114 KF6::KIOWidgets
0115 KF6::GuiAddons
0116 KF6::I18n
0117 KF6::Notifications
0118 kokocommon
0119 )
0120
0121 install (TARGETS kokoqmlplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/koko)
0122 install (FILES qmldir DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/koko)
0123 install (FILES org.kde.koko.desktop DESTINATION ${KDE_INSTALL_APPDIR})
0124
0125 # FIXME this needs to be adapted for Qt6
0126 if (TARGET XCB::XCB)
0127 target_compile_definitions(kokoqmlplugin PRIVATE HAVE_X11)
0128 target_link_libraries(kokoqmlplugin XCB::XCB Qt6::GuiPrivate)
0129 endif()
0130
0131 #
0132 # Reverse GeoLookup Data
0133 #
0134 # Packagers can download the file and put it in the tarball
0135 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/cities1000.zip)
0136 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/cities1000.zip DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0137 endif()
0138
0139 if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/cities1000.zip)
0140 file (DOWNLOAD "http://download.geonames.org/export/dump/cities1000.zip"
0141 ${CMAKE_CURRENT_BINARY_DIR}/cities1000.zip
0142 SHOW_PROGRESS
0143 STATUS status
0144 )
0145 list(GET status 0 status_code)
0146 if(NOT status_code EQUAL 0)
0147 message(FATAL_ERROR "You need to download some files separately. See the packaging section of README.md.")
0148 endif()
0149 endif()
0150
0151 execute_process(
0152 COMMAND ${CMAKE_COMMAND} -E tar -xzf ${CMAKE_CURRENT_BINARY_DIR}/cities1000.zip
0153 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
0154 )
0155
0156 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/admin1CodesASCII.txt)
0157 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/admin1CodesASCII.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0158 endif()
0159
0160 if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/admin1CodesASCII.txt)
0161 file (DOWNLOAD "http://download.geonames.org/export/dump/admin1CodesASCII.txt"
0162 ${CMAKE_CURRENT_BINARY_DIR}/admin1CodesASCII.txt
0163 SHOW_PROGRESS
0164 STATUS status
0165 )
0166 list(GET status 0 status_code)
0167 if(NOT status_code EQUAL 0)
0168 message(FATAL_ERROR "You need to download some files separately. See the packaging section of README.md.")
0169 endif()
0170 endif()
0171 file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/admin1CodesASCII.txt ${CMAKE_CURRENT_BINARY_DIR}/admin1Codes.txt)
0172
0173 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/admin2Codes.txt)
0174 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/admin2Codes.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0175 endif()
0176
0177 if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/admin2Codes.txt)
0178 file (DOWNLOAD "http://download.geonames.org/export/dump/admin2Codes.txt"
0179 ${CMAKE_CURRENT_BINARY_DIR}/admin2Codes.txt
0180 SHOW_PROGRESS
0181 STATUS status
0182 )
0183 list(GET status 0 status_code)
0184 if(NOT status_code EQUAL 0)
0185 message(FATAL_ERROR "You need to download some files separately. See the packaging section of README.md.")
0186 endif()
0187 endif()
0188
0189 install (FILES ${CMAKE_CURRENT_BINARY_DIR}/cities1000.txt DESTINATION ${KDE_INSTALL_DATADIR}/koko)
0190 install (FILES ${CMAKE_CURRENT_BINARY_DIR}/admin1Codes.txt DESTINATION ${KDE_INSTALL_DATADIR}/koko)
0191 install (FILES ${CMAKE_CURRENT_BINARY_DIR}/admin2Codes.txt DESTINATION ${KDE_INSTALL_DATADIR}/koko)
0192 install (FILES countries.csv DESTINATION ${KDE_INSTALL_DATADIR}/koko)
0193 install (FILES koko.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR})