cmake: new baseline kde4_optional_find_package() macro replacing macro_optional_find_package()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-10-02 13:14:13 +03:00
parent 406bd42a7e
commit 9313e82973
5 changed files with 37 additions and 74 deletions

View file

@ -105,7 +105,7 @@ if(X11_FOUND)
endif(NOT HAVE_XSYNC AND NOT HAVE_XSCREENSAVER) endif(NOT HAVE_XSYNC AND NOT HAVE_XSCREENSAVER)
endif(X11_FOUND) endif(X11_FOUND)
macro_optional_find_package(Libintl) kde4_optional_find_package(Libintl)
set_package_properties(Libintl PROPERTIES set_package_properties(Libintl PROPERTIES
DESCRIPTION "Support for multiple languages" DESCRIPTION "Support for multiple languages"
URL "http://www.gnu.org/software/gettext" 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" 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 set_package_properties(DBusMenuQt PROPERTIES
DESCRIPTION "Support for notification area menus via the DBusMenu protocol" DESCRIPTION "Support for notification area menus via the DBusMenu protocol"
URL "https://osdn.net/projects/kde/" URL "https://osdn.net/projects/kde/"
TYPE RECOMMENDED TYPE RECOMMENDED
) )
macro_optional_find_package(MPV 0.23.0) kde4_optional_find_package(MPV 0.23.0)
set_package_properties(MPV PROPERTIES set_package_properties(MPV PROPERTIES
DESCRIPTION "A fork of mplayer2 and MPlayer" DESCRIPTION "A fork of mplayer2 and MPlayer"
URL "https://mpv.io/" URL "https://mpv.io/"
@ -128,7 +128,7 @@ set_package_properties(MPV PROPERTIES
PURPOSE "Media preview, sound notifications, etc." PURPOSE "Media preview, sound notifications, etc."
) )
macro_optional_find_package(ACL) kde4_optional_find_package(ACL)
set_package_properties(ACL set_package_properties(ACL
PROPERTIES PROPERTIES
DESCRIPTION "Support for manipulating access control lists" DESCRIPTION "Support for manipulating access control lists"
@ -137,7 +137,7 @@ set_package_properties(ACL
PURPOSE "KIO and KIO slaves" PURPOSE "KIO and KIO slaves"
) )
macro_optional_find_package(Avahi) kde4_optional_find_package(Avahi)
set_package_properties(Avahi PROPERTIES set_package_properties(Avahi PROPERTIES
DESCRIPTION "Facilities for service discovery on a local network (DNSSD)" DESCRIPTION "Facilities for service discovery on a local network (DNSSD)"
URL "https://avahi.org/" 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" 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 set_package_properties(BZip2 PROPERTIES
DESCRIPTION "Support for BZip2 compressed files and data streams" DESCRIPTION "Support for BZip2 compressed files and data streams"
URL "http://www.bzip.org" URL "http://www.bzip.org"
TYPE RECOMMENDED TYPE RECOMMENDED
) )
macro_optional_find_package(LibLZMA) kde4_optional_find_package(LibLZMA)
set_package_properties(LibLZMA PROPERTIES set_package_properties(LibLZMA PROPERTIES
DESCRIPTION "Support for xz compressed files and data streams" DESCRIPTION "Support for xz compressed files and data streams"
URL "https://tukaani.org/xz/" URL "https://tukaani.org/xz/"
TYPE OPTIONAL TYPE OPTIONAL
) )
macro_optional_find_package(ImageMagick COMPONENTS Magick++) kde4_optional_find_package(ImageMagick COMPONENTS Magick++)
set_package_properties(ImageMagick PROPERTIES set_package_properties(ImageMagick PROPERTIES
URL "https://imagemagick.org/" URL "https://imagemagick.org/"
PURPOSE "Support for various image formats" PURPOSE "Support for various image formats"
TYPE OPTIONAL TYPE OPTIONAL
) )
macro_optional_find_package(WebP) kde4_optional_find_package(WebP)
set_package_properties(WebP PROPERTIES set_package_properties(WebP PROPERTIES
DESCRIPTION "A new image format for the Web" DESCRIPTION "A new image format for the Web"
URL "https://developers.google.com/speed/webp" 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() # 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 set_package_properties(UDev PROPERTIES
DESCRIPTION "UDev support for Solid" DESCRIPTION "UDev support for Solid"
URL "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" URL "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
@ -182,7 +182,7 @@ set_package_properties(UDev PROPERTIES
TYPE OPTIONAL TYPE OPTIONAL
) )
macro_optional_find_package(Devinfo) kde4_optional_find_package(Devinfo)
set_package_properties(Devinfo PROPERTIES set_package_properties(Devinfo PROPERTIES
DESCRIPTION "Devinfo support for Solid" DESCRIPTION "Devinfo support for Solid"
URL "https://www.freebsd.org/cgi/man.cgi?query=devinfo&sektion=3" URL "https://www.freebsd.org/cgi/man.cgi?query=devinfo&sektion=3"
@ -190,7 +190,7 @@ set_package_properties(Devinfo PROPERTIES
TYPE OPTIONAL TYPE OPTIONAL
) )
macro_optional_find_package(LibCDIO) kde4_optional_find_package(LibCDIO)
set_package_properties(LibCDIO PROPERTIES set_package_properties(LibCDIO PROPERTIES
DESCRIPTION "GNU Compact Disc Input and Control Library" DESCRIPTION "GNU Compact Disc Input and Control Library"
URL "https://www.gnu.org/software/libcdio/" URL "https://www.gnu.org/software/libcdio/"
@ -198,7 +198,7 @@ set_package_properties(LibCDIO PROPERTIES
TYPE OPTIONAL TYPE OPTIONAL
) )
macro_optional_find_package(Exiv2 0.21) kde4_optional_find_package(Exiv2 0.21)
set_package_properties(Exiv2 PROPERTIES set_package_properties(Exiv2 PROPERTIES
DESCRIPTION "Image metadata library and tools" DESCRIPTION "Image metadata library and tools"
URL "http://www.exiv2.org" 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" 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 set_package_properties(FFmpeg PROPERTIES
DESCRIPTION "A complete, cross-platform solution to record, convert and stream audio and video" DESCRIPTION "A complete, cross-platform solution to record, convert and stream audio and video"
URL "https://ffmpeg.org/" URL "https://ffmpeg.org/"
@ -214,7 +214,7 @@ set_package_properties(FFmpeg PROPERTIES
PURPOSE "Video metadata extraction" PURPOSE "Video metadata extraction"
) )
macro_optional_find_package(Taglib) kde4_optional_find_package(Taglib)
set_package_properties(Taglib PROPERTIES set_package_properties(Taglib PROPERTIES
DESCRIPTION "TagLib Audio Meta-Data Library" DESCRIPTION "TagLib Audio Meta-Data Library"
URL "https://taglib.org/" URL "https://taglib.org/"
@ -222,7 +222,7 @@ set_package_properties(Taglib PROPERTIES
PURPOSE "Audio metadata extraction" PURPOSE "Audio metadata extraction"
) )
macro_optional_find_package(EPub) kde4_optional_find_package(EPub)
set_package_properties(EPub PROPERTIES set_package_properties(EPub PROPERTIES
DESCRIPTION "A library for reading EPub documents" DESCRIPTION "A library for reading EPub documents"
URL "https://sourceforge.net/projects/ebook-tools/" URL "https://sourceforge.net/projects/ebook-tools/"
@ -230,7 +230,7 @@ set_package_properties(EPub PROPERTIES
PURPOSE "eBook metadata extraction" PURPOSE "eBook metadata extraction"
) )
macro_optional_find_package(Poppler) kde4_optional_find_package(Poppler)
set_package_properties(Poppler PROPERTIES set_package_properties(Poppler PROPERTIES
DESCRIPTION "PDF rendering library" DESCRIPTION "PDF rendering library"
URL "https://poppler.freedesktop.org/" URL "https://poppler.freedesktop.org/"
@ -238,7 +238,7 @@ set_package_properties(Poppler PROPERTIES
PURPOSE "PDF metadata extraction" PURPOSE "PDF metadata extraction"
) )
macro_optional_find_package(LibSpectre) kde4_optional_find_package(LibSpectre)
set_package_properties(LibSpectre PROPERTIES set_package_properties(LibSpectre PROPERTIES
DESCRIPTION "Small library for rendering Postscript documents" DESCRIPTION "Small library for rendering Postscript documents"
URL "https://www.freedesktop.org/wiki/Software/libspectre/" URL "https://www.freedesktop.org/wiki/Software/libspectre/"
@ -246,7 +246,7 @@ set_package_properties(LibSpectre PROPERTIES
PURPOSE "Postscript metadata extraction" PURPOSE "Postscript metadata extraction"
) )
macro_optional_find_package(OpenSSL) kde4_optional_find_package(OpenSSL)
set_package_properties(OpenSSL PROPERTIES set_package_properties(OpenSSL PROPERTIES
DESCRIPTION "Robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication" DESCRIPTION "Robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication"
URL "https://www.openssl.org/" URL "https://www.openssl.org/"
@ -255,7 +255,7 @@ set_package_properties(OpenSSL PROPERTIES
) )
# v0.9.71+ required for MHD_Result # 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 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" 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/" URL "https://www.gnu.org/software/libmicrohttpd/"
@ -263,7 +263,7 @@ set_package_properties(Libmicrohttpd PROPERTIES
PURPOSE "HTTP(S) server" PURPOSE "HTTP(S) server"
) )
macro_optional_find_package(Speechd) kde4_optional_find_package(Speechd)
set_package_properties(Speechd PROPERTIES set_package_properties(Speechd PROPERTIES
DESCRIPTION "Speech Dispatcher provides a high-level device independent layer for speech synthesis" DESCRIPTION "Speech Dispatcher provides a high-level device independent layer for speech synthesis"
URL "https://freebsoft.org/speechd" URL "https://freebsoft.org/speechd"

View file

@ -69,7 +69,6 @@ set(cmakeFiles
kde4_exec.sh.in kde4_exec.sh.in
KDE4Defaults.cmake KDE4Defaults.cmake
KDE4Macros.cmake KDE4Macros.cmake
MacroOptionalFindPackage.cmake
) )
install(FILES ${cmakeFiles} DESTINATION ${module_install_dir}) install(FILES ${cmakeFiles} DESTINATION ${module_install_dir})

View file

@ -138,7 +138,6 @@ if(NOT Katie_FOUND)
endif() endif()
# now we are sure we have everything we need # 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 # TODO: move to main CMakeLists.txt files at the same time CMP0000 is dealt with
include(FeatureSummary) include(FeatureSummary)
@ -164,8 +163,8 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
if (_kdeBootStrapping) if (_kdeBootStrapping)
set(KDE4_INCLUDE_DIR ${kdelibs_SOURCE_DIR}) set(KDE4_INCLUDE_DIR ${kdelibs_SOURCE_DIR})
set(KDE4_KCFGC_EXECUTABLE kconfig_compiler${CMAKE_EXECUTABLE_SUFFIX} ) set(KDE4_KCFGC_EXECUTABLE kconfig_compiler${CMAKE_EXECUTABLE_SUFFIX})
set(KDE4_MAKEKDEWIDGETS_EXECUTABLE makekdewidgets${CMAKE_EXECUTABLE_SUFFIX} ) set(KDE4_MAKEKDEWIDGETS_EXECUTABLE makekdewidgets${CMAKE_EXECUTABLE_SUFFIX})
set(KDE4_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}) set(KDE4_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR})

View file

@ -10,8 +10,9 @@
# KDE4_ADD_DBUS_SERVICE # KDE4_ADD_DBUS_SERVICE
# KDE4_BOOL_TO_01 # KDE4_BOOL_TO_01
# KDE4_OPTIONAL_ADD_SUBDIRECTORY # KDE4_OPTIONAL_ADD_SUBDIRECTORY
# KDE4_OPTIONAL_FIND_PACKAGE
# Copyright (c) 2006-2009 Alexander Neundorf, <neundorf@kde.org> # Copyright (c) 2006-2010 Alexander Neundorf, <neundorf@kde.org>
# Copyright (c) 2006, 2007, Laurent Montel, <montel@kde.org> # Copyright (c) 2006, 2007, Laurent Montel, <montel@kde.org>
# Copyright (c) 2007 Matthias Kretz <kretz@kde.org> # Copyright (c) 2007 Matthias Kretz <kretz@kde.org>
# Copyright (c) 2015 Ivailo Monev <xakepa10@gmail.com> # Copyright (c) 2015 Ivailo Monev <xakepa10@gmail.com>
@ -294,3 +295,15 @@ macro(KDE4_OPTIONAL_ADD_SUBDIRECTORY _dir)
add_subdirectory(${_dir}) add_subdirectory(${_dir})
endif() endif()
endmacro(KDE4_OPTIONAL_ADD_SUBDIRECTORY) endmacro(KDE4_OPTIONAL_ADD_SUBDIRECTORY)
# KDE4_OPTIONAL_FIND_PACKAGE(<name> ... )
# This macro is a combination of OPTION() and FIND_PACKAGE(), it works like
# FIND_PACKAGE(), but additionally it automatically creates an option
# WITH_<name>, which can be disabled via the cmake GUI or via
# -DWITH_<name>=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)

View file

@ -1,48 +0,0 @@
# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION()
# MACRO_OPTIONAL_FIND_PACKAGE( <name> [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_<name>, which can be disabled via the cmake GUI.
# or via -DWITH_<name>=OFF
# The standard <name>_FOUND variables can be used in the same way
# as when using the normal FIND_PACKAGE()
# Copyright (c) 2006-2010 Alexander Neundorf, <neundorf@kde.org>
#
# 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)