From 50dea6ded3f19c8e3098698b8312981176b52b41 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 26 May 2018 07:06:46 -0400 Subject: [PATCH] [interactiveterminal] Make optional if requirements not met This is orthogonal to the SKIP_* mechanism already documented for avoiding modules. If the module is enabled, but its dependencies are not present, don't bother building the module. This follows e.g. plasmalnf as an "avoidably heavy dependency". Related to a misplaced comment in ISSUE #956 --- .../interactiveterminal/CMakeLists.txt | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/src/modules/interactiveterminal/CMakeLists.txt b/src/modules/interactiveterminal/CMakeLists.txt index d419a22a7..5eff610d5 100644 --- a/src/modules/interactiveterminal/CMakeLists.txt +++ b/src/modules/interactiveterminal/CMakeLists.txt @@ -1,27 +1,32 @@ find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) -include(KDEInstallDirs) -include(GenerateExportHeader) +set( kf5_ver 5.41 ) -find_package( KF5 REQUIRED Service Parts ) - -include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui - ${QTERMWIDGET_INCLUDE_DIR} ) - -set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules ) - - -calamares_add_plugin( interactiveterminal - TYPE viewmodule - EXPORT_MACRO PLUGINDLLEXPORT_PRO - SOURCES - InteractiveTerminalViewStep.cpp - InteractiveTerminalPage.cpp - LINK_PRIVATE_LIBRARIES - calamaresui - LINK_LIBRARIES - KF5::Service - KF5::Parts - SHARED_LIB +find_package( KF5Service ${kf5_ver} ) +find_package( KF5Parts ${kf5_ver} ) +set_package_properties( + KF5Service PROPERTIES + PURPOSE "For finding KDE services at runtime" ) +set_package_properties( + KF5Parts PROPERTIES + PURPOSE "For finding KDE parts at runtime" +) + +if ( KF5Parts_FOUND AND KF5Service_FOUND ) + calamares_add_plugin( interactiveterminal + TYPE viewmodule + EXPORT_MACRO PLUGINDLLEXPORT_PRO + SOURCES + InteractiveTerminalViewStep.cpp + InteractiveTerminalPage.cpp + LINK_PRIVATE_LIBRARIES + calamaresui + LINK_LIBRARIES + KF5::Service + KF5::Parts + SHARED_LIB + ) +else() + calamares_skip_module( "interactiveterminal (missing requirements)" ) +endif()