diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c278aa199430..10551e2ce2d26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,20 @@ if (NOT DEFINED PACKAGE) set(PACKAGE "${LINUX_PACKAGE_SHORTNAME}-client") endif() -set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ) +set(APPLE_SUPPRESS_X11_WARNING ON) + +find_package(ECM 6.0.0 REQUIRED NO_MODULE) +set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") + +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) + +include(KDEInstallDirs) +include(KDECMakeSettings) +include(ECMMarkNonGuiExecutable) +include(ECMSetupVersion) + +#include(KDECompilerSettings NO_POLICY_SCOPE) +include(ECMEnableSanitizers) include(ECMCoverageOption) diff --git a/cmake/modules/DBusMacros.cmake b/cmake/modules/DBusMacros.cmake deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/cmake/modules/ECMAddAppIcon.cmake b/cmake/modules/ECMAddAppIcon.cmake deleted file mode 100644 index bd27b0590d97a..0000000000000 --- a/cmake/modules/ECMAddAppIcon.cmake +++ /dev/null @@ -1,415 +0,0 @@ -#.rst: -# ECMAddAppIcon -# ------------- -# -# Add icons to executable files and packages. -# -# :: -# -# ecm_add_app_icon( -# ICONS [ [...]] -# [SIDEBAR_ICONS [ [...]] # Since 5.49 -# [OUTFILE_BASENAME ]) # Since 5.49 -# ) -# -# The given icons, whose names must match the pattern:: -# -# -.png -# -# will be added to the executable target whose sources are specified by -# ```` 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. -# -# ```` is a numeric pixel size (typically 16, 32, 48, 64, 128 or 256). -# ```` 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 ``.icns`` on Mac OS X -# and ``.ico`` on Windows. If you don't specify it, it defaults -# to ``.``. 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, 20, 24, 32, 40, 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 -# Copyright 2014 Ralf Habacker -# Copyright 2006-2009 Alexander Neundorf, -# Copyright 2006, 2007, Laurent Montel, -# Copyright 2007 Matthias Kretz -# -# 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 ICON_INDEX DO_NOT_GENERATE_RC_FILE) - set(multiValueArgs ICONS SIDEBAR_ICONS RC_DEPENDENCIES) - cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if (ARG_DO_NOT_GENERATE_RC_FILE) - set (_do_not_generate_rc_file TRUE) - else() - set (_do_not_generate_rc_file FALSE) - endif() - - 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() - - if (WIN32) - _ecm_add_app_icon_categorize_icons("${ARG_ICONS}" "icons" "16;20;24;32;40;48;64;128;256;512;1024") - else() - _ecm_add_app_icon_categorize_icons("${ARG_ICONS}" "icons" "16;24;32;48;64;128;256;512;1024") - endif() - 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}) - - set(mac_sidebar_icons - # 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_32px} - ${sidebar_icons_at_64px} - ${sidebar_icons_at_128px} - ${sidebar_icons_at_256px}) - - if (NOT (mac_icons OR mac_sidebar_icons)) - message(AUTHOR_WARNING "No icons suitable for use on macOS provided") - endif() - - - set(windows_icons ${icons_at_16px} - ${icons_at_20px} - ${icons_at_24px} - ${icons_at_32px} - ${icons_at_40px} - ${icons_at_48px} - ${icons_at_64px} - ${icons_at_128px} - ${icons_at_256px} - ${icons_at_512px} - ${icons_at_1024px}) - - if (NOT (windows_icons)) - 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) - 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}" - ) - if (NOT _do_not_generate_rc_file) - # this bit's a little hacky to make the dependency stuff work - file(WRITE "${_outfilename}.rc.in" "IDI_ICON${ARG_ICON_INDEX} ICON DISCARDABLE \"${_outfilename}.ico\"\n") - add_custom_command( - OUTPUT "${_outfilename}.rc" - COMMAND ${CMAKE_COMMAND} - ARGS -E copy "${_outfilename}.rc.in" "${_outfilename}.rc" - DEPENDS ${ARG_RC_DEPENDENCIES} "${_outfilename}.ico" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - endif() - 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 20 24 32 40 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 - # NOTE: We generally use https://github.com/hiiamok/png2ImageMagickICO - # or similar on windows, which is why we provide resolutions >= 256px here. - # Standard png2ico will fail with this. - elseif(Png2Ico_FOUND AND NOT Png2Ico_HAS_RCFILE_ARGUMENT AND windows_icons) - set(png2ico_args) - list(APPEND png2ico_args "${_outfilename}.ico") - list(APPEND png2ico_args "${windows_icons}") - create_windows_icon_and_rc(Png2Ico::Png2Ico "${png2ico_args}" "${windows_icons}") - - set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) - - # png2ico from kdewin provides rcfile argument - elseif(Png2Ico_FOUND AND windows_icons) - add_custom_command( - OUTPUT "${_outfilename}.rc" "${_outfilename}.ico" - COMMAND Png2Ico::Png2Ico - ARGS - --rcfile "${_outfilename}.rc" - "${_outfilename}.ico" - ${windows_icons} - DEPENDS ${windows_icons} - 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 OR mac_sidebar_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/ECMCoverageOption.cmake b/cmake/modules/ECMCoverageOption.cmake deleted file mode 100644 index 7a96280e997f7..0000000000000 --- a/cmake/modules/ECMCoverageOption.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-FileCopyrightText: 2014 Aleix Pol Gonzalez -# -# SPDX-License-Identifier: BSD-3-Clause - -#[=======================================================================[.rst: -ECMCoverageOption --------------------- - -Allow users to easily enable GCov code coverage support. - -Code coverage allows you to check how much of your codebase is covered by -your tests. This module makes it easy to build with support for -`GCov `_. - -When this module is included, a ``BUILD_COVERAGE`` option is added (default -OFF). Turning this option on enables GCC's coverage instrumentation, and -links against ``libgcov``. - -Note that this will probably break the build if you are not using GCC. - -Since 1.3.0. -#]=======================================================================] - -option(BUILD_COVERAGE "Build the project with gcov support" OFF) - -if(BUILD_COVERAGE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov") -endif() diff --git a/cmake/modules/ECMEnableSanitizers.cmake b/cmake/modules/ECMEnableSanitizers.cmake deleted file mode 100644 index b4c1b2b3d2256..0000000000000 --- a/cmake/modules/ECMEnableSanitizers.cmake +++ /dev/null @@ -1,169 +0,0 @@ -# SPDX-FileCopyrightText: 2014 Mathieu Tarral -# -# SPDX-License-Identifier: BSD-3-Clause - -#[=======================================================================[.rst: -ECMEnableSanitizers -------------------- - -Enable compiler sanitizer flags. - -The following sanitizers are supported: - -- Address Sanitizer -- Memory Sanitizer -- Thread Sanitizer -- Leak Sanitizer -- Undefined Behaviour Sanitizer - -All of them are implemented in Clang, depending on your version, and -there is an work in progress in GCC, where some of them are currently -implemented. - -This module will check your current compiler version to see if it -supports the sanitizers that you want to enable - -Usage -===== - -Simply add:: - - include(ECMEnableSanitizers) - -to your ``CMakeLists.txt``. Note that this module is included in -KDECompilerSettings, so projects using that module do not need to also -include this one. - -The sanitizers are not enabled by default. Instead, you must set -``ECM_ENABLE_SANITIZERS`` (either in your ``CMakeLists.txt`` or on the -command line) to a semicolon-separated list of sanitizers you wish to enable. -The options are: - -- address -- memory -- thread -- leak -- undefined -- fuzzer - -The sanitizers "address", "memory" and "thread" are mutually exclusive. You -cannot enable two of them in the same build. - -"leak" requires the "address" sanitizer. - -.. note:: - - To reduce the overhead induced by the instrumentation of the sanitizers, it - is advised to enable compiler optimizations (``-O1`` or higher). - -Example -======= - -This is an example of usage:: - - mkdir build - cd build - cmake -DECM_ENABLE_SANITIZERS='address;leak;undefined' .. - -.. note:: - - Most of the sanitizers will require Clang. To enable it, use:: - - -DCMAKE_CXX_COMPILER=clang++ - -Since 1.3.0. -#]=======================================================================] - -# MACRO check_compiler_version -#----------------------------- -macro (check_compiler_version gcc_required_version clang_required_version msvc_required_version) - if ( - ( - CMAKE_CXX_COMPILER_ID MATCHES "GNU" - AND - CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_required_version} - ) - OR - ( - CMAKE_CXX_COMPILER_ID MATCHES "Clang" - AND - CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${clang_required_version} - ) - OR - ( - CMAKE_CXX_COMPILER_ID MATCHES "MSVC" - AND - CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${msvc_required_version} - ) - ) - # error ! - message(FATAL_ERROR "You ask to enable the sanitizer ${CUR_SANITIZER}, - but your compiler ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION} - does not support it ! - You should use at least GCC ${gcc_required_version}, Clang ${clang_required_version} - or MSVC ${msvc_required_version} - (99.99 means not implemented yet)") - endif () -endmacro () - -# MACRO check_compiler_support -#------------------------------ -macro (enable_sanitizer_flags sanitize_option) - if (${sanitize_option} MATCHES "address") - check_compiler_version("4.8" "3.1" "19.28") - if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - set(XSAN_COMPILE_FLAGS "-fsanitize=address") - else() - set(XSAN_COMPILE_FLAGS "-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls") - set(XSAN_LINKER_FLAGS "-fsanitize=address") - endif() - elseif (${sanitize_option} MATCHES "thread") - check_compiler_version("4.8" "3.1" "99.99") - set(XSAN_COMPILE_FLAGS "-fsanitize=thread") - set(XSAN_LINKER_FLAGS "tsan") - elseif (${sanitize_option} MATCHES "memory") - check_compiler_version("99.99" "3.1" "99.99") - set(XSAN_COMPILE_FLAGS "-fsanitize=memory") - elseif (${sanitize_option} MATCHES "leak") - check_compiler_version("4.9" "3.4" "99.99") - set(XSAN_COMPILE_FLAGS "-fsanitize=leak") - set(XSAN_LINKER_FLAGS "lsan") - elseif (${sanitize_option} MATCHES "undefined") - check_compiler_version("4.9" "3.1" "99.99") - set(XSAN_COMPILE_FLAGS "-fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls") - elseif (${sanitize_option} MATCHES "fuzzer") - check_compiler_version("99.99" "6.0" "99.99") - set(XSAN_COMPILE_FLAGS "-fsanitize=fuzzer") - else () - message(FATAL_ERROR "Compiler sanitizer option \"${sanitize_option}\" not supported.") - endif () -endmacro () - -if (ECM_ENABLE_SANITIZERS) - if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - # for each element of the ECM_ENABLE_SANITIZERS list - foreach ( CUR_SANITIZER ${ECM_ENABLE_SANITIZERS} ) - # lowercase filter - string(TOLOWER ${CUR_SANITIZER} CUR_SANITIZER) - # check option and enable appropriate flags - enable_sanitizer_flags ( ${CUR_SANITIZER} ) - # TODO: GCC will not link pthread library if enabled ASan - if(CMAKE_C_COMPILER_ID MATCHES "Clang") - set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${XSAN_COMPILE_FLAGS}" ) - link_libraries(${XSAN_LINKER_FLAGS}) - endif() - set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${XSAN_COMPILE_FLAGS}" ) - if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") - link_libraries(${XSAN_LINKER_FLAGS}) - endif() - if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") - string(REPLACE "-Wl,--no-undefined" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") - string(REPLACE "-Wl,--no-undefined" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") - link_libraries(${XSAN_LINKER_FLAGS}) - endif () - endforeach() - else() - message(STATUS "Tried to enable sanitizers (-DECM_ENABLE_SANITIZERS=${ECM_ENABLE_SANITIZERS}), \ -but compiler (${CMAKE_CXX_COMPILER_ID}) does not have sanitizer support") - endif() -endif() diff --git a/cmake/modules/ECMFindModuleHelpers.cmake b/cmake/modules/ECMFindModuleHelpers.cmake deleted file mode 100644 index 4e7ca880db3bd..0000000000000 --- 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() -# -# 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( -# RESULT_VAR -# KNOWN_COMPONENTS [ [...]] -# [SKIP_DEPENDENCY_HANDLING]) -# -# This macro will populate with a list of components found in -# _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 _FIND_REQUIRED) and call -# return(). -# -# The order of components in 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 -# __component_deps will be checked for dependent components. -# If is listed in _FIND_COMPONENTS, then all its (transitive) -# dependencies will also be added to . -# -# :: -# -# ecm_find_package_handle_library_components( -# COMPONENTS [ [...]] -# [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 __lib variable should contain the name of this library, -# and __header variable should contain the name of a header -# file associated with it (whatever relative path is normally passed to -# '#include'). __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 ::. -# -# Additional variables can be used to provide additional information: -# -# If SKIP_PKG_CONFIG, the __pkg_config variable is set, and -# pkg-config is found, the pkg-config module given by -# __pkg_config will be searched for and used to help locate the -# library and header file. It will also be used to set -# __VERSION. -# -# Note that if version information is found via pkg-config, -# __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 will be set to contain the imported -# targets for the components listed in __component_deps. -# _FOUND will also be set to false if any of the components in -# __component_deps are not found. This requires the components -# in __component_deps to be listed before in the -# COMPONENTS argument. -# -# The following variables will be set: -# -# ``_TARGETS`` -# the imported targets -# ``_LIBRARIES`` -# the found libraries -# ``_INCLUDE_DIRS`` -# the combined required include directories for the components -# ``_DEFINITIONS`` -# the "other" CFLAGS provided by pkg-config, if any -# ``_VERSION`` -# the value of ``__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 -# ``_TARGETS``, for example, will contain all the targets found in any -# call (although no duplicates). -# -# Since pre-1.0.0. - -#============================================================================= -# Copyright 2014 Alex Merry -# -# 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 bb8c9a62fc6d9..0000000000000 --- a/cmake/modules/ECMFindModuleHelpersStub.cmake +++ /dev/null @@ -1 +0,0 @@ -include(${CMAKE_CURRENT_LIST_DIR}/../modules/ECMFindModuleHelpers.cmake) diff --git a/cmake/modules/FindInotify.cmake b/cmake/modules/FindInotify.cmake deleted file mode 100644 index 8b0f8510c0ef0..0000000000000 --- a/cmake/modules/FindInotify.cmake +++ /dev/null @@ -1,62 +0,0 @@ -#.rst: -# FindInotify -# -------------- -# -# Try to find inotify on this system. This finds: -# - libinotify on Unix like systems, or -# - the kernel's inotify on Linux systems. -# -# This will define the following variables: -# -# ``Inotify_FOUND`` -# True if inotify is available -# ``Inotify_LIBRARIES`` -# This has to be passed to target_link_libraries() -# ``Inotify_INCLUDE_DIRS`` -# This has to be passed to target_include_directories() -# -# On Linux, the libraries and include directories are empty, -# even though ``Inotify_FOUND`` may be set to TRUE. This is because -# no special includes or libraries are needed. On other systems -# these may be needed to use inotify. -# -# Since 5.32.0. - -#============================================================================= -# SPDX-FileCopyrightText: 2016 Tobias C. Berner -# SPDX-FileCopyrightText: 2017 Adriaan de Groot -# -# SPDX-License-Identifier: BSD-2-Clause -#============================================================================= - -find_path(Inotify_INCLUDE_DIRS sys/inotify.h) - -if(Inotify_INCLUDE_DIRS) -# On Linux there is no library to link against, on the BSDs there is. -# On the BSD's, inotify is implemented through a library, libinotify. - if( CMAKE_SYSTEM_NAME MATCHES "Linux") - set(Inotify_FOUND TRUE) - set(Inotify_LIBRARIES "") - set(Inotify_INCLUDE_DIRS "") - else() - find_library(Inotify_LIBRARIES NAMES inotify) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Inotify - FOUND_VAR - Inotify_FOUND - REQUIRED_VARS - Inotify_LIBRARIES - Inotify_INCLUDE_DIRS - ) - mark_as_advanced(Inotify_LIBRARIES Inotify_INCLUDE_DIRS) - include(FeatureSummary) - set_package_properties(Inotify PROPERTIES - URL "https://github.com/libinotify-kqueue/" - DESCRIPTION "inotify API on the *BSD family of operating systems." - ) - endif() -else() - set(Inotify_FOUND FALSE) -endif() - -mark_as_advanced(Inotify_LIBRARIES Inotify_INCLUDE_DIRS) diff --git a/cmake/modules/FindSharedMimeInfo.cmake b/cmake/modules/FindSharedMimeInfo.cmake deleted file mode 100644 index 0b8dec9c03482..0000000000000 --- a/cmake/modules/FindSharedMimeInfo.cmake +++ /dev/null @@ -1,93 +0,0 @@ -#.rst: -# FindSharedMimeInfo -# ------------------ -# -# Try to find the shared-mime-info package. -# -# This will define the following variables: -# -# ``SharedMimeInfo_FOUND`` -# True if system has the shared-mime-info package -# ``UPDATE_MIME_DATABASE_EXECUTABLE`` -# The update-mime-database executable -# -# and the following imported targets: -# -# ``SharedMimeInfo::UpdateMimeDatabase`` -# The update-mime-database executable -# -# The follow macro is available:: -# -# update_xdg_mimetypes() -# -# Updates the XDG mime database at install time (unless the ``$DESTDIR`` -# environment variable is set, in which case it is up to package managers to -# perform this task). -# -# Since pre-1.0.0. - -#============================================================================= -# SPDX-FileCopyrightText: 2013-2014 Alex Merry -# SPDX-FileCopyrightText: 2007 Pino Toscano -# -# SPDX-License-Identifier: BSD-3-Clause -#============================================================================= - -include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) - -ecm_find_package_version_check(SharedMimeInfo) - -find_program (UPDATE_MIME_DATABASE_EXECUTABLE NAMES update-mime-database) - -if (UPDATE_MIME_DATABASE_EXECUTABLE) - execute_process( - COMMAND "${UPDATE_MIME_DATABASE_EXECUTABLE}" -v - OUTPUT_VARIABLE _smiVersionRaw - ERROR_VARIABLE _smiVersionRaw) - - string(REGEX REPLACE "update-mime-database \\([a-zA-Z\\-]+\\) ([0-9]\\.[0-9]+).*" - "\\1" SharedMimeInfo_VERSION_STRING "${_smiVersionRaw}") -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SharedMimeInfo - FOUND_VAR - SharedMimeInfo_FOUND - REQUIRED_VARS - UPDATE_MIME_DATABASE_EXECUTABLE - VERSION_VAR - SharedMimeInfo_VERSION_STRING) - -if(SharedMimeInfo_FOUND AND NOT TARGET SharedMimeInfo::UpdateMimeDatabase) - add_executable(SharedMimeInfo::UpdateMimeDatabase IMPORTED) - set_target_properties(SharedMimeInfo::UpdateMimeDatabase PROPERTIES - IMPORTED_LOCATION "${UPDATE_MIME_DATABASE_EXECUTABLE}" - ) -endif() - -mark_as_advanced(UPDATE_MIME_DATABASE_EXECUTABLE) - -function(UPDATE_XDG_MIMETYPES _path) - get_filename_component(_xdgmimeDir "${_path}" NAME) - if("${_xdgmimeDir}" STREQUAL packages ) - get_filename_component(_xdgmimeDir "${_path}" PATH) - else() - set(_xdgmimeDir "${_path}") - endif() - - # Note that targets and most variables are not available to install code - install(CODE " -set(DESTDIR_VALUE \"\$ENV{DESTDIR}\") -if (NOT DESTDIR_VALUE) - # under Windows relative paths are used, that's why it runs from CMAKE_INSTALL_PREFIX - message(STATUS \"Updating MIME database at \${CMAKE_INSTALL_PREFIX}/${_xdgmimeDir}\") - execute_process(COMMAND \"${UPDATE_MIME_DATABASE_EXECUTABLE}\" -n \"${_xdgmimeDir}\" - WORKING_DIRECTORY \"\${CMAKE_INSTALL_PREFIX}\") -endif (NOT DESTDIR_VALUE) -") -endfunction() - -include(FeatureSummary) -set_package_properties(SharedMimeInfo PROPERTIES - URL https://freedesktop.org/wiki/Software/shared-mime-info/ - DESCRIPTION "A database of common MIME types") diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 290e16e9443d8..08a336e1f2afe 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -498,7 +498,7 @@ if(APPLE) MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}") endif() -ecm_add_app_icon(APP_ICON RC_DEPENDENCIES ${RC_DEPENDENCIES} ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}" ICON_INDEX 1) +ecm_add_app_icon(APP_ICON ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}") # -------------------------------------- if(WIN32)