diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2021-09-27 12:19:51 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2021-10-01 15:42:55 +0300 |
commit | 874ffe8ea3fc8182804546752c720e5975262567 (patch) | |
tree | d141916811213d6c4b6a99157896a6e002d42350 /src | |
parent | 84962a646b751a0f1b55d586fe7d21e1b8add949 (diff) |
Modernise libcloudprovider cmake code
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/libcloudproviders/libcloudproviders.cmake | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/gui/libcloudproviders/libcloudproviders.cmake b/src/gui/libcloudproviders/libcloudproviders.cmake index 0dc9816e6..719d6e3e7 100644 --- a/src/gui/libcloudproviders/libcloudproviders.cmake +++ b/src/gui/libcloudproviders/libcloudproviders.cmake @@ -1,18 +1,17 @@ -# The cloudproviders feature can only be enabled if the libcloudproviders -# and gio-2.0 libraries are available, and failure due to any missing -# dependency should be graceful. -set(LIBCLOUDPROVIDERS_POSSIBLE "") -find_package(Libcloudproviders QUIET) -find_package(PkgConfig) -if(LIBCLOUDPROVIDERS_FOUND AND PKG_CONFIG_FOUND) - pkg_search_module(GIO gio-2.0) - if(GIO_FOUND) - set(LIBCLOUDPROVIDERS_POSSIBLE "1") - endif() +find_package(PkgConfig REQUIRED) +pkg_check_modules(CLOUDPROVIDERS cloudproviders>=0.3 IMPORTED_TARGET) + +if(CLOUDPROVIDERS_FOUND) + pkg_check_modules(GIO REQUIRED gio-2.0 IMPORTED_TARGET) + pkg_check_modules(GLIB2 REQUIRED glib-2.0 IMPORTED_TARGET) +endif() + +set(LIBCLOUDPROVIDERS_POSSIBLE FALSE) +if (TARGET PkgConfig::CLOUDPROVIDERS) + set(LIBCLOUDPROVIDERS_POSSIBLE TRUE) endif() -# User visible config switch -set(WITH_LIBCLOUDPROVIDERS ${LIBCLOUDPROVIDERS_POSSIBLE} CACHE BOOL "Whether to bulid with libcloudproviders") +option(WITH_LIBCLOUDPROVIDERS "Whether to bulid with libcloudproviders" ${LIBCLOUDPROVIDERS_POSSIBLE}) if(WITH_LIBCLOUDPROVIDERS AND NOT LIBCLOUDPROVIDERS_POSSIBLE) message(FATAL_ERROR "Trying to enable libcloudproviders but dependencies are missing") @@ -22,13 +21,13 @@ if(WITH_LIBCLOUDPROVIDERS) target_sources(owncloudCore PRIVATE libcloudproviders/libcloudproviders.cpp ) - target_include_directories(owncloudCore SYSTEM PRIVATE ${GIO_INCLUDE_DIRS}) - target_compile_definitions(owncloudCore PRIVATE WITH_LIBCLOUDPROVIDERS) target_link_libraries(owncloudCore PUBLIC - cloudproviders - ${GIO_LDFLAGS} + PkgConfig::CLOUDPROVIDERS + PkgConfig::GLIB2 + PkgConfig::GIO ) - + target_compile_definitions(owncloudCore PRIVATE WITH_LIBCLOUDPROVIDERS) + configure_file(libcloudproviders/cloud-provider.ini.in ${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_CLOUDPROVIDERS_DBUS_NAME}.ini) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_CLOUDPROVIDERS_DBUS_NAME}.ini @@ -38,3 +37,5 @@ if(WITH_LIBCLOUDPROVIDERS) elseif(UNIX AND NOT APPLE) message("Building without libcloudproviders") endif() + +add_feature_info(Libcloudproviders WITH_LIBCLOUDPROVIDERS "Enable cloud provider integration") |