From 9313e82973e26a4ea32faf7bd2af7e987a5452a6 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sun, 2 Oct 2022 13:14:13 +0300 Subject: [PATCH] cmake: new baseline kde4_optional_find_package() macro replacing macro_optional_find_package() Signed-off-by: Ivailo Monev --- CMakeLists.txt | 42 ++++++++--------- cmake/modules/CMakeLists.txt | 1 - cmake/modules/FindKDE4Internal.cmake | 5 +- cmake/modules/KDE4Macros.cmake | 15 +++++- cmake/modules/MacroOptionalFindPackage.cmake | 48 -------------------- 5 files changed, 37 insertions(+), 74 deletions(-) delete mode 100644 cmake/modules/MacroOptionalFindPackage.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index a2b886c1..4a8bf2dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,7 +105,7 @@ if(X11_FOUND) endif(NOT HAVE_XSYNC AND NOT HAVE_XSCREENSAVER) endif(X11_FOUND) -macro_optional_find_package(Libintl) +kde4_optional_find_package(Libintl) set_package_properties(Libintl PROPERTIES DESCRIPTION "Support for multiple languages" URL "http://www.gnu.org/software/gettext" @@ -113,14 +113,14 @@ set_package_properties(Libintl PROPERTIES PURPOSE "Enables KDE to be available in many different languages" ) -macro_optional_find_package(DBusMenuQt) +kde4_optional_find_package(DBusMenuQt) set_package_properties(DBusMenuQt PROPERTIES DESCRIPTION "Support for notification area menus via the DBusMenu protocol" URL "https://osdn.net/projects/kde/" TYPE RECOMMENDED ) -macro_optional_find_package(MPV 0.23.0) +kde4_optional_find_package(MPV 0.23.0) set_package_properties(MPV PROPERTIES DESCRIPTION "A fork of mplayer2 and MPlayer" URL "https://mpv.io/" @@ -128,7 +128,7 @@ set_package_properties(MPV PROPERTIES PURPOSE "Media preview, sound notifications, etc." ) -macro_optional_find_package(ACL) +kde4_optional_find_package(ACL) set_package_properties(ACL PROPERTIES DESCRIPTION "Support for manipulating access control lists" @@ -137,7 +137,7 @@ set_package_properties(ACL PURPOSE "KIO and KIO slaves" ) -macro_optional_find_package(Avahi) +kde4_optional_find_package(Avahi) set_package_properties(Avahi PROPERTIES DESCRIPTION "Facilities for service discovery on a local network (DNSSD)" URL "https://avahi.org/" @@ -145,28 +145,28 @@ set_package_properties(Avahi PROPERTIES PURPOSE "Avahi is required for KDE applications to make use of multicast DNS/DNS-SD service discovery" ) -macro_optional_find_package(BZip2) +kde4_optional_find_package(BZip2) set_package_properties(BZip2 PROPERTIES DESCRIPTION "Support for BZip2 compressed files and data streams" URL "http://www.bzip.org" TYPE RECOMMENDED ) -macro_optional_find_package(LibLZMA) +kde4_optional_find_package(LibLZMA) set_package_properties(LibLZMA PROPERTIES DESCRIPTION "Support for xz compressed files and data streams" URL "https://tukaani.org/xz/" TYPE OPTIONAL ) -macro_optional_find_package(ImageMagick COMPONENTS Magick++) +kde4_optional_find_package(ImageMagick COMPONENTS Magick++) set_package_properties(ImageMagick PROPERTIES URL "https://imagemagick.org/" PURPOSE "Support for various image formats" TYPE OPTIONAL ) -macro_optional_find_package(WebP) +kde4_optional_find_package(WebP) set_package_properties(WebP PROPERTIES DESCRIPTION "A new image format for the Web" URL "https://developers.google.com/speed/webp" @@ -174,7 +174,7 @@ set_package_properties(WebP PROPERTIES ) # v143+ required for udev_monitor_filter_add_match_subsystem_devtype() -macro_optional_find_package(UDev 143) +kde4_optional_find_package(UDev 143) set_package_properties(UDev PROPERTIES DESCRIPTION "UDev support for Solid" URL "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" @@ -182,7 +182,7 @@ set_package_properties(UDev PROPERTIES TYPE OPTIONAL ) -macro_optional_find_package(Devinfo) +kde4_optional_find_package(Devinfo) set_package_properties(Devinfo PROPERTIES DESCRIPTION "Devinfo support for Solid" URL "https://www.freebsd.org/cgi/man.cgi?query=devinfo&sektion=3" @@ -190,7 +190,7 @@ set_package_properties(Devinfo PROPERTIES TYPE OPTIONAL ) -macro_optional_find_package(LibCDIO) +kde4_optional_find_package(LibCDIO) set_package_properties(LibCDIO PROPERTIES DESCRIPTION "GNU Compact Disc Input and Control Library" URL "https://www.gnu.org/software/libcdio/" @@ -198,7 +198,7 @@ set_package_properties(LibCDIO PROPERTIES TYPE OPTIONAL ) -macro_optional_find_package(Exiv2 0.21) +kde4_optional_find_package(Exiv2 0.21) set_package_properties(Exiv2 PROPERTIES DESCRIPTION "Image metadata library and tools" URL "http://www.exiv2.org" @@ -206,7 +206,7 @@ set_package_properties(Exiv2 PROPERTIES PURPOSE "Exiv2 metadata extraction and image rotation based on the data" ) -macro_optional_find_package(FFmpeg) +kde4_optional_find_package(FFmpeg) set_package_properties(FFmpeg PROPERTIES DESCRIPTION "A complete, cross-platform solution to record, convert and stream audio and video" URL "https://ffmpeg.org/" @@ -214,7 +214,7 @@ set_package_properties(FFmpeg PROPERTIES PURPOSE "Video metadata extraction" ) -macro_optional_find_package(Taglib) +kde4_optional_find_package(Taglib) set_package_properties(Taglib PROPERTIES DESCRIPTION "TagLib Audio Meta-Data Library" URL "https://taglib.org/" @@ -222,7 +222,7 @@ set_package_properties(Taglib PROPERTIES PURPOSE "Audio metadata extraction" ) -macro_optional_find_package(EPub) +kde4_optional_find_package(EPub) set_package_properties(EPub PROPERTIES DESCRIPTION "A library for reading EPub documents" URL "https://sourceforge.net/projects/ebook-tools/" @@ -230,7 +230,7 @@ set_package_properties(EPub PROPERTIES PURPOSE "eBook metadata extraction" ) -macro_optional_find_package(Poppler) +kde4_optional_find_package(Poppler) set_package_properties(Poppler PROPERTIES DESCRIPTION "PDF rendering library" URL "https://poppler.freedesktop.org/" @@ -238,7 +238,7 @@ set_package_properties(Poppler PROPERTIES PURPOSE "PDF metadata extraction" ) -macro_optional_find_package(LibSpectre) +kde4_optional_find_package(LibSpectre) set_package_properties(LibSpectre PROPERTIES DESCRIPTION "Small library for rendering Postscript documents" URL "https://www.freedesktop.org/wiki/Software/libspectre/" @@ -246,7 +246,7 @@ set_package_properties(LibSpectre PROPERTIES PURPOSE "Postscript metadata extraction" ) -macro_optional_find_package(OpenSSL) +kde4_optional_find_package(OpenSSL) set_package_properties(OpenSSL PROPERTIES DESCRIPTION "Robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication" URL "https://www.openssl.org/" @@ -255,7 +255,7 @@ set_package_properties(OpenSSL PROPERTIES ) # v0.9.71+ required for MHD_Result -macro_optional_find_package(Libmicrohttpd 0.9.71) +kde4_optional_find_package(Libmicrohttpd 0.9.71) set_package_properties(Libmicrohttpd PROPERTIES DESCRIPTION "Small C library that is supposed to make it easy to run an HTTP server as part of another application" URL "https://www.gnu.org/software/libmicrohttpd/" @@ -263,7 +263,7 @@ set_package_properties(Libmicrohttpd PROPERTIES PURPOSE "HTTP(S) server" ) -macro_optional_find_package(Speechd) +kde4_optional_find_package(Speechd) set_package_properties(Speechd PROPERTIES DESCRIPTION "Speech Dispatcher provides a high-level device independent layer for speech synthesis" URL "https://freebsoft.org/speechd" diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt index ca05b25e..616e49ec 100644 --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -69,7 +69,6 @@ set(cmakeFiles kde4_exec.sh.in KDE4Defaults.cmake KDE4Macros.cmake - MacroOptionalFindPackage.cmake ) install(FILES ${cmakeFiles} DESTINATION ${module_install_dir}) diff --git a/cmake/modules/FindKDE4Internal.cmake b/cmake/modules/FindKDE4Internal.cmake index e2ece06c..291f5fc1 100644 --- a/cmake/modules/FindKDE4Internal.cmake +++ b/cmake/modules/FindKDE4Internal.cmake @@ -138,7 +138,6 @@ if(NOT Katie_FOUND) endif() # now we are sure we have everything we need -include(MacroOptionalFindPackage) # TODO: move to main CMakeLists.txt files at the same time CMP0000 is dealt with include(FeatureSummary) @@ -164,8 +163,8 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") if (_kdeBootStrapping) set(KDE4_INCLUDE_DIR ${kdelibs_SOURCE_DIR}) - set(KDE4_KCFGC_EXECUTABLE kconfig_compiler${CMAKE_EXECUTABLE_SUFFIX} ) - set(KDE4_MAKEKDEWIDGETS_EXECUTABLE makekdewidgets${CMAKE_EXECUTABLE_SUFFIX} ) + set(KDE4_KCFGC_EXECUTABLE kconfig_compiler${CMAKE_EXECUTABLE_SUFFIX}) + set(KDE4_MAKEKDEWIDGETS_EXECUTABLE makekdewidgets${CMAKE_EXECUTABLE_SUFFIX}) set(KDE4_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}) diff --git a/cmake/modules/KDE4Macros.cmake b/cmake/modules/KDE4Macros.cmake index 091966db..fca100ba 100644 --- a/cmake/modules/KDE4Macros.cmake +++ b/cmake/modules/KDE4Macros.cmake @@ -10,8 +10,9 @@ # KDE4_ADD_DBUS_SERVICE # KDE4_BOOL_TO_01 # KDE4_OPTIONAL_ADD_SUBDIRECTORY +# KDE4_OPTIONAL_FIND_PACKAGE -# Copyright (c) 2006-2009 Alexander Neundorf, +# Copyright (c) 2006-2010 Alexander Neundorf, # Copyright (c) 2006, 2007, Laurent Montel, # Copyright (c) 2007 Matthias Kretz # Copyright (c) 2015 Ivailo Monev @@ -294,3 +295,15 @@ macro(KDE4_OPTIONAL_ADD_SUBDIRECTORY _dir) add_subdirectory(${_dir}) endif() endmacro(KDE4_OPTIONAL_ADD_SUBDIRECTORY) + +# KDE4_OPTIONAL_FIND_PACKAGE( ... ) +# This macro is a combination of OPTION() and FIND_PACKAGE(), it works like +# FIND_PACKAGE(), but additionally it automatically creates an option +# WITH_, which can be disabled via the cmake GUI or via +# -DWITH_=OFF +macro(KDE4_OPTIONAL_FIND_PACKAGE _name) + option(WITH_${_name} "Search for ${_name} package" ON) + if (WITH_${_name}) + find_package(${_name} ${ARGN}) + endif () +endmacro(KDE4_OPTIONAL_FIND_PACKAGE) diff --git a/cmake/modules/MacroOptionalFindPackage.cmake b/cmake/modules/MacroOptionalFindPackage.cmake deleted file mode 100644 index d4ed48e3..00000000 --- a/cmake/modules/MacroOptionalFindPackage.cmake +++ /dev/null @@ -1,48 +0,0 @@ -# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION() -# MACRO_OPTIONAL_FIND_PACKAGE( [QUIT] ) -# This macro is a combination of OPTION() and FIND_PACKAGE(), it -# works like FIND_PACKAGE(), but additionally it automatically creates -# an option name WITH_, which can be disabled via the cmake GUI. -# or via -DWITH_=OFF -# The standard _FOUND variables can be used in the same way -# as when using the normal FIND_PACKAGE() - -# Copyright (c) 2006-2010 Alexander Neundorf, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -# This is just a helper macro to set a bunch of variables empty. -# We don't know whether the package uses UPPERCASENAME or CamelCaseName, so we try both: -macro(_MOFP_SET_EMPTY_IF_DEFINED _name _var) - if(DEFINED ${_name}_${_var}) - set(${_name}_${_var} "") - endif(DEFINED ${_name}_${_var}) - - string(TOUPPER ${_name} _nameUpper) - if(DEFINED ${_nameUpper}_${_var}) - set(${_nameUpper}_${_var} "") - endif(DEFINED ${_nameUpper}_${_var}) -endmacro(_MOFP_SET_EMPTY_IF_DEFINED _package _var) - - -macro (MACRO_OPTIONAL_FIND_PACKAGE _name ) - option(WITH_${_name} "Search for ${_name} package" ON) - if (WITH_${_name}) - find_package(${_name} ${ARGN}) - else (WITH_${_name}) - string(TOUPPER ${_name} _nameUpper) - set(${_name}_FOUND FALSE) - set(${_nameUpper}_FOUND FALSE) - - _mofp_set_empty_if_defined(${_name} INCLUDE_DIRS) - _mofp_set_empty_if_defined(${_name} INCLUDE_DIR) - _mofp_set_empty_if_defined(${_name} INCLUDES) - _mofp_set_empty_if_defined(${_name} LIBRARY) - _mofp_set_empty_if_defined(${_name} LIBRARIES) - _mofp_set_empty_if_defined(${_name} LIBS) - _mofp_set_empty_if_defined(${_name} FLAGS) - _mofp_set_empty_if_defined(${_name} DEFINITIONS) - endif (WITH_${_name}) -endmacro (MACRO_OPTIONAL_FIND_PACKAGE) -