From f26dba318ecc765f41b909e3e0dde470988f738c Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Mon, 14 Nov 2022 10:58:52 +0100 Subject: Allow building with(out) Lomiri features --- CMakeLists.txt | 10 +++++++++- src/CMakeLists.txt | 32 +++++++++++++++++++++----------- src/main.cpp | 13 ++++++++++--- tests/CMakeLists.txt | 9 +++++---- 4 files changed, 45 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 34fda26..ba7f022 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ set(SERVICE_EXEC "${PACKAGE}-service") option(ENABLE_TESTS "Enable all tests and checks" OFF) option(ENABLE_COVERAGE "Enable coverage reports (includes enabling all tests and checks)" OFF) option(ENABLE_WERROR "Treat all build warnings as errors" OFF) +option(ENABLE_LOMIRI_FEATURES "Build with Lomiri-specific libraries, schemas and media" OFF) if(ENABLE_COVERAGE) set(ENABLE_TESTS ON) @@ -65,12 +66,18 @@ find_package(PkgConfig REQUIRED) # glib... set(GLIB_MINIMUM 2.36) -set (SERVICE_DEPS libayatana-common>=0.9.3 gio-unix-2.0>=${GLIB_MINIMUM} glib-2.0>=${GLIB_MINIMUM} gudev-1.0) +set (SERVICE_DEPS libayatana-common>=0.9.3 gio-unix-2.0>=${GLIB_MINIMUM} glib-2.0>=${GLIB_MINIMUM}) if (ENABLE_TESTS) list (APPEND SERVICE_DEPS properties-cpp>=0.0.1) endif () +if (ENABLE_LOMIRI_FEATURES) + find_package(Qt5Core REQUIRED) + list (APPEND SERVICE_DEPS gudev-1.0) + add_definitions (-DLOMIRI_FEATURES_ENABLED) +endif () + pkg_check_modules (SERVICE_DEPS REQUIRED ${SERVICE_DEPS}) include_directories (SYSTEM @@ -115,3 +122,4 @@ endif() message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}") message(STATUS "Unit tests: ${ENABLE_TESTS}") message(STATUS "Build with -Werror: ${ENABLE_WERROR}") +message(STATUS "Build with Lomiri features: ${ENABLE_LOMIRI_FEATURES}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b7e91aa..33e42c3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,19 +4,29 @@ add_compile_options( ${CXX_WARNING_ARGS} ) -add_library( - ${SERVICE_LIB} - STATIC - adbd-client.cpp - exporter.cpp - greeter.cpp - indicator.cpp - rotation-lock.cpp - usb-manager.cpp - usb-monitor.cpp - usb-snap.cpp +set (SERVICE_LIB_SOURCES + exporter.cpp + indicator.cpp + rotation-lock.cpp ) +if (ENABLE_LOMIRI_FEATURES) + list (APPEND + SERVICE_LIB_SOURCES + greeter.cpp + adbd-client.cpp + usb-manager.cpp + usb-monitor.cpp + usb-snap.cpp + ) +endif () + +add_library (${SERVICE_LIB} STATIC ${SERVICE_LIB_SOURCES}) + +if (ENABLE_LOMIRI_FEATURES) + target_link_libraries(${SERVICE_LIB} Qt5::Core) +endif () + add_executable( ${SERVICE_EXEC} main.cpp diff --git a/src/main.cpp b/src/main.cpp index f145504..03c72c6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,6 @@ /* * Copyright 2014 Canonical Ltd. + * Copyright 2022 Robert Tari * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License version 3, as published @@ -15,21 +16,23 @@ * * Authors: * Charles Kerr + * Robert Tari */ #include #include +#ifdef LOMIRI_FEATURES_ENABLED #include #include #include +#include +#include +#endif #include // bindtextdomain() #include - #include -#include -#include extern "C" { @@ -65,6 +68,8 @@ main(int /*argc*/, char** /*argv*/) exporters.push_back(exporter); } +#ifdef LOMIRI_FEATURES_ENABLED + gboolean bHasSocket = FALSE; if (ayatana_common_utils_is_lomiri()) @@ -92,6 +97,8 @@ main(int /*argc*/, char** /*argv*/) g_message("No /dev/socket/adbd socket found, skipping UsbManager"); } +#endif + // let's go! g_main_loop_run(loop); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 33684d6..6b25955 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,7 +1,6 @@ set(CMAKE_AUTOMOC ON) find_package(GMock REQUIRED) -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) find_package(Qt5DBus COMPONENTS Qt5DBusMacros REQUIRED) @@ -31,9 +30,11 @@ add_compile_options(${CXX_WARNING_ARGS}) add_test(cppcheck cppcheck --enable=all -USCHEMA_DIR --error-exitcode=2 --inline-suppr --library=qt -I${CMAKE_SOURCE_DIR} -i${CMAKE_SOURCE_DIR}/tests/utils/qmain.cpp -i${CMAKE_SOURCE_DIR}/tests/gmock ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests --suppress=missingIncludeSystem --suppress=uninitDerivedMemberVar --suppress=unmatchedSuppression --suppress=constParameter --suppress=unusedFunction) -add_subdirectory(integration) -add_subdirectory(unit) -add_subdirectory(utils) +if (ENABLE_LOMIRI_FEATURES) + add_subdirectory (integration) + add_subdirectory (unit) + add_subdirectory (utils) +endif () set(COVERAGE_TEST_TARGETS ${COVERAGE_TEST_TARGETS} -- cgit v1.2.3