diff --git a/CMakeLists.txt b/CMakeLists.txt index a893c2e..2068eeb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,60 +1,29 @@ project(index) cmake_minimum_required(VERSION 3.0) -find_package(ECM 1.7.0 REQUIRED NO_MODULE) +set(REQUIRED_QT_VERSION 5.10.0) +set(REQUIRED_KF5_VERSION 5.60) + +find_package(ECM ${REQUIRED_KF5_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH}) option(IS_APPIMAGE_PACKAGE "If set to true then the icons and styled is packaged as well") -find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Qml Quick Sql Svg QuickControls2 Widgets) +find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Qml Quick Sql Svg QuickControls2 Widgets) +find_package(KF5 ${REQUIRED_KF5_VERSION} REQUIRED COMPONENTS I18n Notifications KIO Attica) + +if(ANDROID) + find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS AndroidExtras) +endif() + +find_package(MauiKit REQUIRED) + include(KDEInstallDirs) include(KDECompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) include(ECMInstallIcons) include(FeatureSummary) include(ECMAddAppIcon) -find_package(MauiKit REQUIRED) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -add_executable(index - src/index_assets.qrc - src/main.cpp - src/index.cpp - src/qml.qrc - ) - -if(IS_APPIMAGE_PACKAGE) - target_compile_definitions(index PUBLIC APPIMAGE_PACKAGE) -endif() - find_package(KF5 ${KF5_VERSION} REQUIRED COMPONENTS I18n Notifications Config KIO Service Attica SyntaxHighlighting) - -if (ANDROID) - find_package(Qt5 REQUIRED COMPONENTS AndroidExtras WebView) - - target_link_libraries(index Qt5::AndroidExtras) - kde_source_files_enable_exceptions(index src/index.cpp) -else() - - find_package(Qt5 REQUIRED COMPONENTS WebEngine) - - if(IS_APPIMAGE_PACKAGE) - target_link_libraries(index KF5::KIOWidgets KF5::KIOFileWidgets KF5::ConfigCore KF5::Notifications KF5::KIOCore KF5::KIOWidgets KF5::I18n KF5::Service KF5::Attica KF5::SyntaxHighlighting) - endif() - -endif() - -target_link_libraries(index MauiKit Qt5::Sql Qt5::Quick Qt5::Qml Qt5::Widgets Qt5::Svg) - -install(TARGETS index ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) -install(FILES org.kde.index.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) - -#TODO: port to ecm_install_icons() -install(FILES src/assets/index.svg DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/scalable/apps) -# install(FILES org.kde.index.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) +add_subdirectory(src) -feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) +feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..ca01464 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,24 @@ +add_executable(index + index_assets.qrc + main.cpp + index.cpp + qml.qrc +) + +if(IS_APPIMAGE_PACKAGE) + target_compile_definitions(index PUBLIC APPIMAGE_PACKAGE) +endif() + +if (ANDROID) + target_link_libraries(index Qt5::AndroidExtras) + kde_source_files_enable_exceptions(index index.cpp) +endif() + +target_link_libraries(index MauiKit Qt5::Sql Qt5::Quick Qt5::Qml Qt5::Widgets Qt5::Svg) + +install(TARGETS index ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(FILES org.kde.index.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) + +#TODO: port to ecm_install_icons() +install(FILES assets/index.svg DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/scalable/apps) +# install(FILES org.kde.index.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) diff --git a/org.kde.index.desktop b/src/org.kde.index.desktop similarity index 100% rename from org.kde.index.desktop rename to src/org.kde.index.desktop