diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2019-10-18 12:28:19 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2020-01-09 17:39:32 +0300 |
commit | a6fba2d20011408a07a9df58d6de08d6a7b7c9f7 (patch) | |
tree | bb0a31c89997cbb3f3472f49110e9529ebbb44bb /cmake | |
parent | abde07beb846be639d9fb649fbed68316109b67d (diff) |
[CMAKE] Start using extra cmake modules
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/ECMAddAppIcon.cmake | 397 | ||||
-rw-r--r-- | cmake/modules/ECMFindModuleHelpers.cmake | 297 | ||||
-rw-r--r-- | cmake/modules/ECMFindModuleHelpersStub.cmake | 1 | ||||
-rw-r--r-- | cmake/modules/FindIcoTool.cmake | 27 | ||||
-rw-r--r-- | cmake/modules/FindPng2Ico.cmake | 117 | ||||
-rw-r--r-- | cmake/modules/FindSQLite3.cmake | 70 |
6 files changed, 0 insertions, 909 deletions
diff --git a/cmake/modules/ECMAddAppIcon.cmake b/cmake/modules/ECMAddAppIcon.cmake deleted file mode 100644 index c2d07f6fb..000000000 --- a/cmake/modules/ECMAddAppIcon.cmake +++ /dev/null @@ -1,397 +0,0 @@ -#.rst: -# ECMAddAppIcon -# ------------- -# -# Add icons to executable files and packages. -# -# :: -# -# ecm_add_app_icon(<sources_var> -# ICONS <icon> [<icon> [...]] -# [SIDEBAR_ICONS <icon> [<icon> [...]] # Since 5.49 -# [OUTFILE_BASENAME <name>]) # Since 5.49 -# ) -# -# The given icons, whose names must match the pattern:: -# -# <size>-<other_text>.png -# -# will be added to the executable target whose sources are specified by -# ``<sources_var>`` on platforms that support it (Windows and Mac OS X). -# Other icon files are ignored but on Mac SVG files can be supported and -# it is thus possible to mix those with png files in a single macro call. -# -# ``<size>`` is a numeric pixel size (typically 16, 32, 48, 64, 128 or 256). -# ``<other_text>`` can be any other text. See the platform notes below for any -# recommendations about icon sizes. -# -# ``SIDEBAR_ICONS`` can be used to add Mac OS X sidebar -# icons to the generated iconset. They are used when a folder monitored by the -# application is dragged into Finder's sidebar. Since 5.49. -# -# ``OUTFILE_BASENAME`` will be used as the basename for the icon file. If -# you specify it, the icon file will be called ``<OUTFILE_BASENAME>.icns`` on Mac OS X -# and ``<OUTFILE_BASENAME>.ico`` on Windows. If you don't specify it, it defaults -# to ``<sources_var>.<ext>``. Since 5.49. -# -# -# Windows notes -# * Icons are compiled into the executable using a resource file. -# * Icons may not show up in Windows Explorer if the executable -# target does not have the ``WIN32_EXECUTABLE`` property set. -# * One of the tools png2ico (See :find-module:`FindPng2Ico`) or -# icotool (see :find-module:`FindIcoTool`) is required. -# * Supported sizes: 16, 24, 32, 48, 64, 128, 256, 512 and 1024. -# -# Mac OS X notes -# * The executable target must have the ``MACOSX_BUNDLE`` property set. -# * Icons are added to the bundle. -# * If the ksvg2icns tool from KIconThemes is available, .svg and .svgz -# files are accepted; the first that is converted successfully to .icns -# will provide the application icon. SVG files are ignored otherwise. -# * The tool iconutil (provided by Apple) is required for bitmap icons. -# * Supported sizes: 16, 32, 64, 128, 256 (and 512, 1024 after OS X 10.9). -# * At least a 128x128px (or an SVG) icon is required. -# * Larger sizes are automatically used to substitute for smaller sizes on -# "Retina" (high-resolution) displays. For example, a 32px icon, if -# provided, will be used as a 32px icon on standard-resolution displays, -# and as a 16px-equivalent icon (with an "@2x" tag) on high-resolution -# displays. That is why you should provide 64px and 1024px icons although -# they are not supported anymore directly. Instead they will be used as -# 32px@2x and 512px@2x. ksvg2icns handles this internally. -# * This function sets the ``MACOSX_BUNDLE_ICON_FILE`` variable to the name -# of the generated icns file, so that it will be used as the -# ``MACOSX_BUNDLE_ICON_FILE`` target property when you call -# ``add_executable``. -# * Sidebar icons should typically provided in 16, 32, 64, 128 and 256px. -# -# Since 1.7.0. - - -#============================================================================= -# Copyright 2014 Alex Merry <alex.merry@kde.org> -# Copyright 2014 Ralf Habacker <ralf.habacker@freenet.de> -# Copyright 2006-2009 Alexander Neundorf, <neundorf@kde.org> -# Copyright 2006, 2007, Laurent Montel, <montel@kde.org> -# Copyright 2007 Matthias Kretz <kretz@kde.org> -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -include(CMakeParseArguments) - -function(ecm_add_app_icon appsources) - set(options) - set(oneValueArgs OUTFILE_BASENAME) - set(multiValueArgs ICONS SIDEBAR_ICONS) - cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(NOT ARG_ICONS) - message(FATAL_ERROR "No ICONS argument given to ecm_add_app_icon") - endif() - if(ARG_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unexpected arguments to ecm_add_app_icon: ${ARG_UNPARSED_ARGUMENTS}") - endif() - - if(APPLE) - find_program(KSVG2ICNS NAMES ksvg2icns) - foreach(icon ${ARG_ICONS}) - get_filename_component(icon_full ${icon} ABSOLUTE) - get_filename_component(icon_type ${icon_full} EXT) - # do we have ksvg2icns in the path and did we receive an svg (or compressed svg) icon? - if(KSVG2ICNS AND (${icon_type} STREQUAL ".svg" OR ${icon_type} STREQUAL ".svgz")) - # convert the svg icon to an icon resource - execute_process(COMMAND ${KSVG2ICNS} "${icon_full}" - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} RESULT_VARIABLE KSVG2ICNS_ERROR) - if(${KSVG2ICNS_ERROR}) - message(AUTHOR_WARNING "ksvg2icns could not generate an OS X application icon from ${icon}") - else() - # install the icns file we just created - get_filename_component(icon_name ${icon_full} NAME_WE) - set(MACOSX_BUNDLE_ICON_FILE ${icon_name}.icns PARENT_SCOPE) - set(${appsources} "${${appsources}};${CMAKE_CURRENT_BINARY_DIR}/${icon_name}.icns" PARENT_SCOPE) - set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${icon_name}.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - # we're done now - return() - endif() - endif() - endforeach() - endif() - - - _ecm_add_app_icon_categorize_icons("${ARG_ICONS}" "icons" "16;32;48;64;128;256;512;1024") - if(ARG_SIDEBAR_ICONS) - _ecm_add_app_icon_categorize_icons("${ARG_SIDEBAR_ICONS}" "sidebar_icons" "16;32;64;128;256") - endif() - - set(mac_icons - # Icons: https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW4 - ${icons_at_16px} - ${icons_at_32px} - ${icons_at_64px} - ${icons_at_128px} - ${icons_at_256px} - ${icons_at_512px} - ${icons_at_1024px} - - # Sidebar Icons: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15 - ${sidebar_icons_at_16px} - ${sidebar_icons_at_18px} - ${sidebar_icons_at_32px} - ${sidebar_icons_at_36px} - ${sidebar_icons_at_64px}) - if (NOT icons_at_128px) - message(AUTHOR_WARNING "No 128px icon provided; this will not work on Mac OS X") - endif() - - - set(windows_icons_classic ${icons_at_16px} - ${icons_at_24px} - ${icons_at_32px} - ${icons_at_48px} - ${icons_at_64px} - ${icons_at_128px}) - set(windows_icons_modern ${windows_icons_classic} - ${icons_at_256px} - ${icons_at_512px} - ${icons_at_1024px}) - - if (NOT (windows_icons_modern OR windows_icons_classic)) - message(AUTHOR_WARNING "No icons suitable for use on Windows provided") - endif() - - if (ARG_OUTFILE_BASENAME) - set (_outfilebasename "${ARG_OUTFILE_BASENAME}") - else() - set (_outfilebasename "${appsources}") - endif() - set (_outfilename "${CMAKE_CURRENT_BINARY_DIR}/${_outfilebasename}") - - if (WIN32 AND (windows_icons_modern OR windows_icons_classic)) - set(saved_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}") - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_FIND_MODULE_DIR}) - find_package(Png2Ico) - find_package(IcoTool) - set(CMAKE_MODULE_PATH "${saved_CMAKE_MODULE_PATH}") - - function(create_windows_icon_and_rc command args deps) - add_custom_command( - OUTPUT "${_outfilename}.ico" - COMMAND ${command} - ARGS ${args} - DEPENDS ${deps} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - ) - # this bit's a little hacky to make the dependency stuff work - file(WRITE "${_outfilename}.rc.in" "IDI_ICON1 ICON DISCARDABLE \"${_outfilename}.ico\"\n") - add_custom_command( - OUTPUT "${_outfilename}.rc" - COMMAND ${CMAKE_COMMAND} - ARGS -E copy "${_outfilename}.rc.in" "${_outfilename}.rc" - DEPENDS "${_outfilename}.ico" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - endfunction() - - if (IcoTool_FOUND) - list(APPEND icotool_args "-c" "-o" "${_outfilename}.ico") - - # According to https://stackoverflow.com/a/40851713/2886832 - # Windows always chooses the first icon above 255px, all other ones will be ignored - set(maxSize 0) - foreach(size 256 512 1024) - if(icons_at_${size}px) - set(maxSize "${size}") - endif() - endforeach() - - foreach(size 16 32 48 64 128 ${maxSize}) - if(NOT icons_at_${size}px) - continue() - endif() - - set(icotool_icon_arg "") - if(size STREQUAL "${maxSize}") - # maxSize icon needs to be included as raw png - list(APPEND icotool_args "-r") - endif() - - foreach(icon ${icons_at_${size}px}) - list(APPEND icotool_args "${icons_at_${size}px}") - endforeach() - endforeach() - - create_windows_icon_and_rc(IcoTool::IcoTool "${icotool_args}" "${windows_icons_modern}") - set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) - - # standard png2ico has no rcfile argument - elseif(Png2Ico_FOUND AND NOT Png2Ico_HAS_RCFILE_ARGUMENT AND windows_icons_classic) - set(png2ico_args) - list(APPEND png2ico_args "${_outfilename}.ico") - list(APPEND png2ico_args "${windows_icons_classic}") - - create_windows_icon_and_rc(Png2Ico::Png2Ico "${png2ico_args}" "${windows_icons_classic}") - set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) - - # png2ico from kdewin provides rcfile argument - elseif(Png2Ico_FOUND AND windows_icons_classic) - add_custom_command( - OUTPUT "${_outfilename}.rc" "${_outfilename}.ico" - COMMAND Png2Ico::Png2Ico - ARGS - --rcfile "${_outfilename}.rc" - "${_outfilename}.ico" - ${windows_icons_classic} - DEPENDS ${windows_icons_classic} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - ) - - set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) - # else none of the supported tools was found - else() - message(WARNING "Unable to find the png2ico or icotool utilities or icons in matching sizes - application will not have an application icon!") - endif() - elseif (APPLE AND mac_icons) - # first generate .iconset directory structure, then convert to .icns format using the Mac OS X "iconutil" utility, - # to create retina compatible icon, you need png source files in pixel resolution 16x16, 32x32, 64x64, 128x128, - # 256x256, 512x512, 1024x1024 - find_program(ICONUTIL_EXECUTABLE NAMES iconutil) - if (ICONUTIL_EXECUTABLE) - add_custom_command( - OUTPUT "${_outfilename}.iconset" - COMMAND ${CMAKE_COMMAND} - ARGS -E make_directory "${_outfilename}.iconset" - ) - set(iconset_icons) - macro(copy_icon filename sizename type) - add_custom_command( - OUTPUT "${_outfilename}.iconset/${type}_${sizename}.png" - COMMAND ${CMAKE_COMMAND} - ARGS -E copy - "${filename}" - "${_outfilename}.iconset/${type}_${sizename}.png" - DEPENDS - "${_outfilename}.iconset" - "${filename}" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - ) - list(APPEND iconset_icons - "${_outfilename}.iconset/${type}_${sizename}.png") - endmacro() - - # List of supported sizes and filenames taken from: - # https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW4 - foreach(size 16 32 128 256 512) - math(EXPR double_size "2 * ${size}") - foreach(file ${icons_at_${size}px}) - copy_icon("${file}" "${size}x${size}" "icon") - endforeach() - foreach(file ${icons_at_${double_size}px}) - copy_icon("${file}" "${size}x${size}@2x" "icon") - endforeach() - endforeach() - - # List of supported sizes and filenames taken from: - # https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW15 - foreach(file ${sidebar_icons_at_16px}) - copy_icon("${file}" "16x16" "sidebar") - endforeach() - foreach(file ${sidebar_icons_at_32px}) - copy_icon("${file}" "16x16@2x" "sidebar") - endforeach() - foreach(file ${sidebar_icons_at_32px}) - copy_icon("${file}" "18x18" "sidebar") - endforeach() - foreach(file ${sidebar_icons_at_64px}) - copy_icon("${file}" "18x18@2x" "sidebar") - endforeach() - foreach(file ${sidebar_icons_at_128px}) - copy_icon("${file}" "32x32" "sidebar") - endforeach() - foreach(file ${sidebar_icons_at_256px}) - copy_icon("${file}" "32x32@2x" "sidebar") - endforeach() - - # generate .icns icon file - add_custom_command( - OUTPUT "${_outfilename}.icns" - COMMAND ${ICONUTIL_EXECUTABLE} - ARGS - --convert icns - --output "${_outfilename}.icns" - "${_outfilename}.iconset" - DEPENDS "${iconset_icons}" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - # This will register the icon into the bundle - set(MACOSX_BUNDLE_ICON_FILE "${_outfilebasename}.icns" PARENT_SCOPE) - - # Append the icns file to the sources list so it will be a dependency to the - # main target - set(${appsources} "${${appsources}};${_outfilename}.icns" PARENT_SCOPE) - - # Install the icon into the Resources dir in the bundle - set_source_files_properties("${_outfilename}.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - else() - message(STATUS "Unable to find the iconutil utility - application will not have an application icon!") - endif() - endif() -endfunction() - -macro(_ecm_add_app_icon_categorize_icons icons type known_sizes) - set(_${type}_known_sizes) - foreach(size ${known_sizes}) - set(${type}_at_${size}px) - list(APPEND _${type}_known_sizes ${size}) - endforeach() - - - foreach(icon ${icons}) - get_filename_component(icon_full ${icon} ABSOLUTE) - if (NOT EXISTS "${icon_full}") - message(AUTHOR_WARNING "${icon_full} does not exist, ignoring") - else() - get_filename_component(icon_name ${icon} NAME) - string(REGEX MATCH "([0-9]+)\\-[^/]+\\.([a-z]+)$" - _dummy "${icon_name}") - set(size "${CMAKE_MATCH_1}") - set(ext "${CMAKE_MATCH_2}") - - if (NOT (ext STREQUAL "svg" OR ext STREQUAL "svgz")) - if (NOT size) - message(AUTHOR_WARNING "${icon_full} is not named correctly for ecm_add_app_icon - ignoring") - elseif (NOT ext STREQUAL "png") - message(AUTHOR_WARNING "${icon_full} is not a png file - ignoring") - else() - list(FIND _${type}_known_sizes ${size} offset) - - if (offset GREATER -1) - list(APPEND ${type}_at_${size}px "${icon_full}") - elseif() - message(STATUS "not found ${type}_at_${size}px ${icon_full}") - endif() - endif() - endif() - endif() - endforeach() -endmacro() diff --git a/cmake/modules/ECMFindModuleHelpers.cmake b/cmake/modules/ECMFindModuleHelpers.cmake deleted file mode 100644 index f2e32f959..000000000 --- a/cmake/modules/ECMFindModuleHelpers.cmake +++ /dev/null @@ -1,297 +0,0 @@ -#.rst: -# ECMFindModuleHelpers -# -------------------- -# -# Helper macros for find modules: ecm_find_package_version_check(), -# ecm_find_package_parse_components() and -# ecm_find_package_handle_library_components(). -# -# :: -# -# ecm_find_package_version_check(<name>) -# -# Prints warnings if the CMake version or the project's required CMake version -# is older than that required by extra-cmake-modules. -# -# :: -# -# ecm_find_package_parse_components(<name> -# RESULT_VAR <variable> -# KNOWN_COMPONENTS <component1> [<component2> [...]] -# [SKIP_DEPENDENCY_HANDLING]) -# -# This macro will populate <variable> with a list of components found in -# <name>_FIND_COMPONENTS, after checking that all those components are in the -# list of KNOWN_COMPONENTS; if there are any unknown components, it will print -# an error or warning (depending on the value of <name>_FIND_REQUIRED) and call -# return(). -# -# The order of components in <variable> is guaranteed to match the order they -# are listed in the KNOWN_COMPONENTS argument. -# -# If SKIP_DEPENDENCY_HANDLING is not set, for each component the variable -# <name>_<component>_component_deps will be checked for dependent components. -# If <component> is listed in <name>_FIND_COMPONENTS, then all its (transitive) -# dependencies will also be added to <variable>. -# -# :: -# -# ecm_find_package_handle_library_components(<name> -# COMPONENTS <component> [<component> [...]] -# [SKIP_DEPENDENCY_HANDLING]) -# [SKIP_PKG_CONFIG]) -# -# Creates an imported library target for each component. The operation of this -# macro depends on the presence of a number of CMake variables. -# -# The <name>_<component>_lib variable should contain the name of this library, -# and <name>_<component>_header variable should contain the name of a header -# file associated with it (whatever relative path is normally passed to -# '#include'). <name>_<component>_header_subdir variable can be used to specify -# which subdirectory of the include path the headers will be found in. -# ecm_find_package_components() will then search for the library -# and include directory (creating appropriate cache variables) and create an -# imported library target named <name>::<component>. -# -# Additional variables can be used to provide additional information: -# -# If SKIP_PKG_CONFIG, the <name>_<component>_pkg_config variable is set, and -# pkg-config is found, the pkg-config module given by -# <name>_<component>_pkg_config will be searched for and used to help locate the -# library and header file. It will also be used to set -# <name>_<component>_VERSION. -# -# Note that if version information is found via pkg-config, -# <name>_<component>_FIND_VERSION can be set to require a particular version -# for each component. -# -# If SKIP_DEPENDENCY_HANDLING is not set, the INTERFACE_LINK_LIBRARIES property -# of the imported target for <component> will be set to contain the imported -# targets for the components listed in <name>_<component>_component_deps. -# <component>_FOUND will also be set to false if any of the compoments in -# <name>_<component>_component_deps are not found. This requires the components -# in <name>_<component>_component_deps to be listed before <component> in the -# COMPONENTS argument. -# -# The following variables will be set: -# -# ``<name>_TARGETS`` -# the imported targets -# ``<name>_LIBRARIES`` -# the found libraries -# ``<name>_INCLUDE_DIRS`` -# the combined required include directories for the components -# ``<name>_DEFINITIONS`` -# the "other" CFLAGS provided by pkg-config, if any -# ``<name>_VERSION`` -# the value of ``<name>_<component>_VERSION`` for the first component that -# has this variable set (note that components are searched for in the order -# they are passed to the macro), although if it is already set, it will not -# be altered -# -# Note that these variables are never cleared, so if -# ecm_find_package_handle_library_components() is called multiple times with -# different components (typically because of multiple find_package() calls) then -# ``<name>_TARGETS``, for example, will contain all the targets found in any -# call (although no duplicates). -# -# Since pre-1.0.0. - -#============================================================================= -# Copyright 2014 Alex Merry <alex.merry@kde.org> -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -include(CMakeParseArguments) - -macro(ecm_find_package_version_check module_name) - if(CMAKE_VERSION VERSION_LESS 2.8.12) - message(FATAL_ERROR "CMake 2.8.12 is required by Find${module_name}.cmake") - endif() - if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12) - message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use Find${module_name}.cmake") - endif() -endmacro() - -macro(ecm_find_package_parse_components module_name) - set(ecm_fppc_options SKIP_DEPENDENCY_HANDLING) - set(ecm_fppc_oneValueArgs RESULT_VAR) - set(ecm_fppc_multiValueArgs KNOWN_COMPONENTS DEFAULT_COMPONENTS) - cmake_parse_arguments(ECM_FPPC "${ecm_fppc_options}" "${ecm_fppc_oneValueArgs}" "${ecm_fppc_multiValueArgs}" ${ARGN}) - - if(ECM_FPPC_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unexpected arguments to ecm_find_package_parse_components: ${ECM_FPPC_UNPARSED_ARGUMENTS}") - endif() - if(NOT ECM_FPPC_RESULT_VAR) - message(FATAL_ERROR "Missing RESULT_VAR argument to ecm_find_package_parse_components") - endif() - if(NOT ECM_FPPC_KNOWN_COMPONENTS) - message(FATAL_ERROR "Missing KNOWN_COMPONENTS argument to ecm_find_package_parse_components") - endif() - if(NOT ECM_FPPC_DEFAULT_COMPONENTS) - set(ECM_FPPC_DEFAULT_COMPONENTS ${ECM_FPPC_KNOWN_COMPONENTS}) - endif() - - if(${module_name}_FIND_COMPONENTS) - set(ecm_fppc_requestedComps ${${module_name}_FIND_COMPONENTS}) - - if(NOT ECM_FPPC_SKIP_DEPENDENCY_HANDLING) - # Make sure deps are included - foreach(ecm_fppc_comp ${ecm_fppc_requestedComps}) - foreach(ecm_fppc_dep_comp ${${module_name}_${ecm_fppc_comp}_component_deps}) - list(FIND ecm_fppc_requestedComps "${ecm_fppc_dep_comp}" ecm_fppc_index) - if("${ecm_fppc_index}" STREQUAL "-1") - if(NOT ${module_name}_FIND_QUIETLY) - message(STATUS "${module_name}: ${ecm_fppc_comp} requires ${${module_name}_${ecm_fppc_comp}_component_deps}") - endif() - list(APPEND ecm_fppc_requestedComps "${ecm_fppc_dep_comp}") - endif() - endforeach() - endforeach() - else() - message(STATUS "Skipping dependency handling for ${module_name}") - endif() - list(REMOVE_DUPLICATES ecm_fppc_requestedComps) - - # This makes sure components are listed in the same order as - # KNOWN_COMPONENTS (potentially important for inter-dependencies) - set(${ECM_FPPC_RESULT_VAR}) - foreach(ecm_fppc_comp ${ECM_FPPC_KNOWN_COMPONENTS}) - list(FIND ecm_fppc_requestedComps "${ecm_fppc_comp}" ecm_fppc_index) - if(NOT "${ecm_fppc_index}" STREQUAL "-1") - list(APPEND ${ECM_FPPC_RESULT_VAR} "${ecm_fppc_comp}") - list(REMOVE_AT ecm_fppc_requestedComps ${ecm_fppc_index}) - endif() - endforeach() - # if there are any left, they are unknown components - if(ecm_fppc_requestedComps) - set(ecm_fppc_msgType STATUS) - if(${module_name}_FIND_REQUIRED) - set(ecm_fppc_msgType FATAL_ERROR) - endif() - if(NOT ${module_name}_FIND_QUIETLY) - message(${ecm_fppc_msgType} "${module_name}: requested unknown components ${ecm_fppc_requestedComps}") - endif() - return() - endif() - else() - set(${ECM_FPPC_RESULT_VAR} ${ECM_FPPC_DEFAULT_COMPONENTS}) - endif() -endmacro() - -macro(ecm_find_package_handle_library_components module_name) - set(ecm_fpwc_options SKIP_PKG_CONFIG SKIP_DEPENDENCY_HANDLING) - set(ecm_fpwc_oneValueArgs) - set(ecm_fpwc_multiValueArgs COMPONENTS) - cmake_parse_arguments(ECM_FPWC "${ecm_fpwc_options}" "${ecm_fpwc_oneValueArgs}" "${ecm_fpwc_multiValueArgs}" ${ARGN}) - - if(ECM_FPWC_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unexpected arguments to ecm_find_package_handle_components: ${ECM_FPWC_UNPARSED_ARGUMENTS}") - endif() - if(NOT ECM_FPWC_COMPONENTS) - message(FATAL_ERROR "Missing COMPONENTS argument to ecm_find_package_handle_components") - endif() - - include(FindPackageHandleStandardArgs) - find_package(PkgConfig) - foreach(ecm_fpwc_comp ${ECM_FPWC_COMPONENTS}) - set(ecm_fpwc_dep_vars) - set(ecm_fpwc_dep_targets) - if(NOT SKIP_DEPENDENCY_HANDLING) - foreach(ecm_fpwc_dep ${${module_name}_${ecm_fpwc_comp}_component_deps}) - list(APPEND ecm_fpwc_dep_vars "${module_name}_${ecm_fpwc_dep}_FOUND") - list(APPEND ecm_fpwc_dep_targets "${module_name}::${ecm_fpwc_dep}") - endforeach() - endif() - - if(NOT ECM_FPWC_SKIP_PKG_CONFIG AND ${module_name}_${ecm_fpwc_comp}_pkg_config) - pkg_check_modules(PKG_${module_name}_${ecm_fpwc_comp} QUIET - ${${module_name}_${ecm_fpwc_comp}_pkg_config}) - endif() - - find_path(${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR - NAMES ${${module_name}_${ecm_fpwc_comp}_header} - HINTS ${PKG_${module_name}_${ecm_fpwc_comp}_INCLUDE_DIRS} - PATH_SUFFIXES ${${module_name}_${ecm_fpwc_comp}_header_subdir} - ) - find_library(${module_name}_${ecm_fpwc_comp}_LIBRARY - NAMES ${${module_name}_${ecm_fpwc_comp}_lib} - HINTS ${PKG_${module_name}_${ecm_fpwc_comp}_LIBRARY_DIRS} - ) - - set(${module_name}_${ecm_fpwc_comp}_VERSION "${PKG_${module_name}_${ecm_fpwc_comp}_VERSION}") - if(NOT ${module_name}_VERSION) - set(${module_name}_VERSION ${${module_name}_${ecm_fpwc_comp}_VERSION}) - endif() - - find_package_handle_standard_args(${module_name}_${ecm_fpwc_comp} - FOUND_VAR - ${module_name}_${ecm_fpwc_comp}_FOUND - REQUIRED_VARS - ${module_name}_${ecm_fpwc_comp}_LIBRARY - ${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR - ${ecm_fpwc_dep_vars} - VERSION_VAR - ${module_name}_${ecm_fpwc_comp}_VERSION - ) - - mark_as_advanced( - ${module_name}_${ecm_fpwc_comp}_LIBRARY - ${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR - ) - - if(${module_name}_${ecm_fpwc_comp}_FOUND) - list(APPEND ${module_name}_LIBRARIES - "${${module_name}_${ecm_fpwc_comp}_LIBRARY}") - list(APPEND ${module_name}_INCLUDE_DIRS - "${${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR}") - set(${module_name}_DEFINITIONS - ${${module_name}_DEFINITIONS} - ${PKG_${module_name}_${ecm_fpwc_comp}_DEFINITIONS}) - if(NOT TARGET ${module_name}::${ecm_fpwc_comp}) - add_library(${module_name}::${ecm_fpwc_comp} UNKNOWN IMPORTED) - set_target_properties(${module_name}::${ecm_fpwc_comp} PROPERTIES - IMPORTED_LOCATION "${${module_name}_${ecm_fpwc_comp}_LIBRARY}" - INTERFACE_COMPILE_OPTIONS "${PKG_${module_name}_${ecm_fpwc_comp}_DEFINITIONS}" - INTERFACE_INCLUDE_DIRECTORIES "${${module_name}_${ecm_fpwc_comp}_INCLUDE_DIR}" - INTERFACE_LINK_LIBRARIES "${ecm_fpwc_dep_targets}" - ) - endif() - list(APPEND ${module_name}_TARGETS - "${module_name}::${ecm_fpwc_comp}") - endif() - endforeach() - if(${module_name}_LIBRARIES) - list(REMOVE_DUPLICATES ${module_name}_LIBRARIES) - endif() - if(${module_name}_INCLUDE_DIRS) - list(REMOVE_DUPLICATES ${module_name}_INCLUDE_DIRS) - endif() - if(${module_name}_DEFINITIONS) - list(REMOVE_DUPLICATES ${module_name}_DEFINITIONS) - endif() - if(${module_name}_TARGETS) - list(REMOVE_DUPLICATES ${module_name}_TARGETS) - endif() -endmacro() diff --git a/cmake/modules/ECMFindModuleHelpersStub.cmake b/cmake/modules/ECMFindModuleHelpersStub.cmake deleted file mode 100644 index bb8c9a62f..000000000 --- a/cmake/modules/ECMFindModuleHelpersStub.cmake +++ /dev/null @@ -1 +0,0 @@ -include(${CMAKE_CURRENT_LIST_DIR}/../modules/ECMFindModuleHelpers.cmake) diff --git a/cmake/modules/FindIcoTool.cmake b/cmake/modules/FindIcoTool.cmake deleted file mode 100644 index 3b3511eb3..000000000 --- a/cmake/modules/FindIcoTool.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 2017 Vincent Pinon <vpinon@kde.org> -include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) -ecm_find_package_version_check(IcoTool) -find_program(IcoTool_EXECUTABLE NAMES icotool) -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(IcoTool - FOUND_VAR - IcoTool_FOUND - REQUIRED_VARS - IcoTool_EXECUTABLE -) -mark_as_advanced(IcoTool_EXECUTABLE) - -if (IcoTool_FOUND) - if (NOT TARGET IcoTool::IcoTool) - add_executable(IcoTool::IcoTool IMPORTED) - set_target_properties(IcoTool::IcoTool PROPERTIES - IMPORTED_LOCATION "${IcoTool_EXECUTABLE}" - ) - endif() -endif() - -include(FeatureSummary) -set_package_properties(IcoTool PROPERTIES - URL "http://www.nongnu.org/icoutils/" - DESCRIPTION "Executable that converts a collection of PNG files into a Windows icon file" -) diff --git a/cmake/modules/FindPng2Ico.cmake b/cmake/modules/FindPng2Ico.cmake deleted file mode 100644 index d84f66730..000000000 --- a/cmake/modules/FindPng2Ico.cmake +++ /dev/null @@ -1,117 +0,0 @@ -#.rst: -# FindPng2Ico -# ----------- -# -# Try to find png2ico. -# -# If the png2ico executable is not in your PATH, you can provide -# an alternative name or full path location with the ``Png2Ico_EXECUTABLE`` -# variable. -# -# This will define the following variables: -# -# ``Png2Ico_FOUND`` -# True if png2ico is available. -# -# ``Png2Ico_EXECUTABLE`` -# The png2ico executable. -# -# If ``Png2Ico_FOUND`` is TRUE, it will also define the following imported -# target: -# -# ``Png2Ico::Png2Ico`` -# The png2ico executable. -# -# and the following variables: -# -# ``Png2Ico_HAS_COLORS_ARGUMENT`` -# Whether png2ico accepts a ``--colors`` argument. `Matthias Benkmann's -# tool <http://www.winterdrache.de/freeware/png2ico/>`_ does, while the -# version of png2ico from the `"KDE On Windows" (kdewin) -# <https://projects.kde.org/projects/kdesupport/kdewin>`_ project does not. -# -# ``Png2Ico_HAS_RCFILE_ARGUMENT`` -# Whether png2ico accepts an ``--rcfile`` argument. The version of png2ico -# from the `"KDE On Windows" (kdewin) -# <https://projects.kde.org/projects/kdesupport/kdewin>`_ project does, -# while `Matthias Benkmann's tool -# <http://www.winterdrache.de/freeware/png2ico/>`_ does not. -# -# Since 1.7.0. - -#============================================================================= -# Copyright 2014 Alex Merry <alex.merry@kde.org> -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#============================================================================= - -include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) - -ecm_find_package_version_check(Png2Ico) - -# Find png2ico -find_program(Png2Ico_EXECUTABLE NAMES png2ico) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Png2Ico - FOUND_VAR - Png2Ico_FOUND - REQUIRED_VARS - Png2Ico_EXECUTABLE -) - -mark_as_advanced(Png2Ico_EXECUTABLE) - -if (Png2Ico_FOUND) - execute_process( - COMMAND "${Png2Ico_EXECUTABLE}" --help - OUTPUT_VARIABLE _png2ico_help_text - ERROR_VARIABLE _png2ico_help_text - ) - if (_png2ico_help_text MATCHES ".*--rcfile .*") - set(Png2Ico_HAS_RCFILE_ARGUMENT TRUE) - else() - set(Png2Ico_HAS_RCFILE_ARGUMENT FALSE) - endif() - if (_png2ico_help_text MATCHES ".*--colors .*") - set(Png2Ico_HAS_COLORS_ARGUMENT TRUE) - else() - set(Png2Ico_HAS_COLORS_ARGUMENT FALSE) - endif() - unset(_png2ico_help_text) - - if (NOT TARGET Png2Ico::Png2Ico) - add_executable(Png2Ico::Png2Ico IMPORTED) - set_target_properties(Png2Ico::Png2Ico PROPERTIES - IMPORTED_LOCATION "${Png2Ico_EXECUTABLE}" - ) - endif() -endif() - -include(FeatureSummary) -set_package_properties(Png2Ico PROPERTIES - URL "http://www.winterdrache.de/freeware/png2ico/ or https://projects.kde.org/projects/kdesupport/kdewin" - DESCRIPTION "Executable that converts a collection of PNG files into a Windows icon file" -) - diff --git a/cmake/modules/FindSQLite3.cmake b/cmake/modules/FindSQLite3.cmake deleted file mode 100644 index 4fd1ceb53..000000000 --- a/cmake/modules/FindSQLite3.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# - Try to find SQLite3 -# Once done this will define -# -# SQLITE3_FOUND - system has SQLite3 -# SQLITE3_INCLUDE_DIRS - the SQLite3 include directory -# SQLITE3_LIBRARIES - Link these to use SQLite3 -# SQLITE3_DEFINITIONS - Compiler switches required for using SQLite3 -# -# Copyright (c) 2009-2013 Andreas Schneider <asn@cryptomilk.org> -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -if (UNIX) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(_SQLITE3 sqlite3) - endif (PKG_CONFIG_FOUND) -endif (UNIX) - -find_path(SQLITE3_INCLUDE_DIR - NAMES - sqlite3.h - PATHS - ${_SQLITE3_INCLUDEDIR} - ${SQLITE3_INCLUDE_DIRS} -) - -find_library(SQLITE3_LIBRARY - NAMES - sqlite3 sqlite3-0 - PATHS - ${_SQLITE3_LIBDIR} - ${SQLITE3_LIBRARIES} -) - -set(SQLITE3_INCLUDE_DIRS - ${SQLITE3_INCLUDE_DIR} -) - -if (SQLITE3_LIBRARY) - set(SQLITE3_LIBRARIES - ${SQLITE3_LIBRARIES} - ${SQLITE3_LIBRARY} - ) -endif (SQLITE3_LIBRARY) - -if (SQLite3_FIND_VERSION AND _SQLITE3_VERSION) - set(SQLite3_VERSION _SQLITE3_VERSION) -endif (SQLite3_FIND_VERSION AND _SQLITE3_VERSION) - -if (APPLE OR WIN32) - set(USE_OUR_OWN_SQLITE3 TRUE) - set(SQLITE3_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdparty/sqlite3) - set(SQLITE3_LIBRARIES "") - set(SQLITE3_SOURCE ${SQLITE3_INCLUDE_DIR}/sqlite3.c) - MESSAGE(STATUS "Using own sqlite3 from " ${SQLITE3_INCLUDE_DIR}) -else() - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(SQLite3 DEFAULT_MSG SQLITE3_LIBRARIES SQLITE3_INCLUDE_DIRS) -endif() - - - -# show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view -mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) - |