From f73c5d508b27da2cc832746fa418830795286bf1 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Thu, 28 Mar 2019 08:36:42 -0500 Subject: [PATCH] pull in upstream fix for conflict with ECM/FindFontConfig --- ...onvert-module-variables-to-camel-cas.patch | 197 ++++++++++++++++++ cmake.spec | 8 +- 2 files changed, 204 insertions(+), 1 deletion(-) create mode 100644 0299-FindFontconfig-Convert-module-variables-to-camel-cas.patch diff --git a/0299-FindFontconfig-Convert-module-variables-to-camel-cas.patch b/0299-FindFontconfig-Convert-module-variables-to-camel-cas.patch new file mode 100644 index 0000000..ec8694f --- /dev/null +++ b/0299-FindFontconfig-Convert-module-variables-to-camel-cas.patch @@ -0,0 +1,197 @@ +From a3a1e69f8a8e6571bbb8c9257b401f04c22bd1e2 Mon Sep 17 00:00:00 2001 +From: Brad King +Date: Tue, 26 Mar 2019 13:44:52 -0400 +Subject: [PATCH 299/303] FindFontconfig: Convert module variables to camel + case + +Our documented standard for find module variable names is to match the +case of the find module package name. This was overlooked when the +module was added by commit 84e7920b3a (FindFontconfig: Add module to +find Fontconfig, 2018-09-27, v3.14.0-rc1~523^2). + +The module was released with the upper case names in CMake 3.14.0, so +fix it to have camel case names in 3.14.1. This is incompatible but +anyone using a given release series should be using the latest patch on +it and we've made breaking fixups on newly released features like this +before. + +Reported-by: Christophe Giboudeaux +Fixes: #19094 +--- + Help/release/3.14.rst | 14 ++++++ + Modules/FindFontconfig.cmake | 56 ++++++++++++------------ + Modules/FindX11.cmake | 2 +- + Tests/FindFontconfig/Test/CMakeLists.txt | 6 +-- + 4 files changed, 46 insertions(+), 32 deletions(-) + +diff --git a/Help/release/3.14.rst b/Help/release/3.14.rst +index 5038a75175..f2a91c6147 100644 +--- a/Help/release/3.14.rst ++++ b/Help/release/3.14.rst +@@ -377,3 +377,17 @@ Other Changes + * CMake no longer issues a warning if a target listed in an + :command:`install(TARGETS)` command has its :prop_tgt:`EXCLUDE_FROM_ALL` + property set to true. ++ ++Updates ++======= ++ ++Changes made since CMake 3.14.0 include the following. ++ ++3.14.1 ++------ ++ ++* The :module:`FindFontconfig` module added by 3.14.0 accidentally ++ used uppercase ``FONTCONFIG_*`` variable names that do not match ++ our conventions. 3.14.1 revises the module to use ``Fontconfig_*`` ++ variable names. This is incompatible with 3.14.0 but since the ++ module is new in the 3.14 series usage should not yet be widespread. +diff --git a/Modules/FindFontconfig.cmake b/Modules/FindFontconfig.cmake +index 96e1e7608c..a6f0180b37 100644 +--- a/Modules/FindFontconfig.cmake ++++ b/Modules/FindFontconfig.cmake +@@ -18,15 +18,15 @@ Result Variables + + This will define the following variables in your project: + +-``FONTCONFIG_FOUND`` ++``Fontconfig_FOUND`` + true if (the requested version of) Fontconfig is available. +-``FONTCONFIG_VERSION`` ++``Fontconfig_VERSION`` + the version of Fontconfig. +-``FONTCONFIG_LIBRARIES`` ++``Fontconfig_LIBRARIES`` + the libraries to link against to use Fontconfig. +-``FONTCONFIG_INCLUDE_DIRS`` ++``Fontconfig_INCLUDE_DIRS`` + where to find the Fontconfig headers. +-``FONTCONFIG_COMPILE_OPTIONS`` ++``Fontconfig_COMPILE_OPTIONS`` + this should be passed to target_compile_options(), if the + target is not used for linking + +@@ -37,10 +37,10 @@ This will define the following variables in your project: + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig QUIET) + pkg_check_modules(PKG_FONTCONFIG QUIET fontconfig) +-set(FONTCONFIG_COMPILE_OPTIONS ${PKG_FONTCONFIG_CFLAGS_OTHER}) +-set(FONTCONFIG_VERSION ${PKG_FONTCONFIG_VERSION}) ++set(Fontconfig_COMPILE_OPTIONS ${PKG_FONTCONFIG_CFLAGS_OTHER}) ++set(Fontconfig_VERSION ${PKG_FONTCONFIG_VERSION}) + +-find_path( FONTCONFIG_INCLUDE_DIR ++find_path( Fontconfig_INCLUDE_DIR + NAMES + fontconfig/fontconfig.h + HINTS +@@ -48,24 +48,24 @@ find_path( FONTCONFIG_INCLUDE_DIR + /usr/X11/include + ) + +-find_library( FONTCONFIG_LIBRARY ++find_library( Fontconfig_LIBRARY + NAMES + fontconfig + PATHS + ${PKG_FONTCONFIG_LIBRARY_DIRS} + ) + +-if (FONTCONFIG_INCLUDE_DIR AND NOT FONTCONFIG_VERSION) +- file(STRINGS ${FONTCONFIG_INCLUDE_DIR}/fontconfig/fontconfig.h _contents REGEX "^#define[ \t]+FC_[A-Z]+[ \t]+[0-9]+$") +- unset(FONTCONFIG_VERSION) ++if (Fontconfig_INCLUDE_DIR AND NOT Fontconfig_VERSION) ++ file(STRINGS ${Fontconfig_INCLUDE_DIR}/fontconfig/fontconfig.h _contents REGEX "^#define[ \t]+FC_[A-Z]+[ \t]+[0-9]+$") ++ unset(Fontconfig_VERSION) + foreach(VPART MAJOR MINOR REVISION) + foreach(VLINE ${_contents}) + if(VLINE MATCHES "^#define[\t ]+FC_${VPART}[\t ]+([0-9]+)$") +- set(FONTCONFIG_VERSION_PART "${CMAKE_MATCH_1}") +- if(FONTCONFIG_VERSION) +- string(APPEND FONTCONFIG_VERSION ".${FONTCONFIG_VERSION_PART}") ++ set(Fontconfig_VERSION_PART "${CMAKE_MATCH_1}") ++ if(Fontconfig_VERSION) ++ string(APPEND Fontconfig_VERSION ".${Fontconfig_VERSION_PART}") + else() +- set(FONTCONFIG_VERSION "${FONTCONFIG_VERSION_PART}") ++ set(Fontconfig_VERSION "${Fontconfig_VERSION_PART}") + endif() + endif() + endforeach() +@@ -75,27 +75,27 @@ endif () + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Fontconfig + FOUND_VAR +- FONTCONFIG_FOUND ++ Fontconfig_FOUND + REQUIRED_VARS +- FONTCONFIG_LIBRARY +- FONTCONFIG_INCLUDE_DIR ++ Fontconfig_LIBRARY ++ Fontconfig_INCLUDE_DIR + VERSION_VAR +- FONTCONFIG_VERSION ++ Fontconfig_VERSION + ) + + +-if(FONTCONFIG_FOUND AND NOT TARGET Fontconfig::Fontconfig) ++if(Fontconfig_FOUND AND NOT TARGET Fontconfig::Fontconfig) + add_library(Fontconfig::Fontconfig UNKNOWN IMPORTED) + set_target_properties(Fontconfig::Fontconfig PROPERTIES +- IMPORTED_LOCATION "${FONTCONFIG_LIBRARY}" +- INTERFACE_COMPILE_OPTIONS "${FONTCONFIG_COMPILE_OPTIONS}" +- INTERFACE_INCLUDE_DIRECTORIES "${FONTCONFIG_INCLUDE_DIR}" ++ IMPORTED_LOCATION "${Fontconfig_LIBRARY}" ++ INTERFACE_COMPILE_OPTIONS "${Fontconfig_COMPILE_OPTIONS}" ++ INTERFACE_INCLUDE_DIRECTORIES "${Fontconfig_INCLUDE_DIR}" + ) + endif() + +-mark_as_advanced(FONTCONFIG_LIBRARY FONTCONFIG_INCLUDE_DIR) ++mark_as_advanced(Fontconfig_LIBRARY Fontconfig_INCLUDE_DIR) + +-if(FONTCONFIG_FOUND) +- set(FONTCONFIG_LIBRARIES ${FONTCONFIG_LIBRARY}) +- set(FONTCONFIG_INCLUDE_DIRS ${FONTCONFIG_INCLUDE_DIR}) ++if(Fontconfig_FOUND) ++ set(Fontconfig_LIBRARIES ${Fontconfig_LIBRARY}) ++ set(Fontconfig_INCLUDE_DIRS ${Fontconfig_INCLUDE_DIR}) + endif() +diff --git a/Modules/FindX11.cmake b/Modules/FindX11.cmake +index 46a7449eda..b28dd125da 100644 +--- a/Modules/FindX11.cmake ++++ b/Modules/FindX11.cmake +@@ -206,7 +206,7 @@ if (UNIX) + if(X11_Xft_LIB AND X11_Xft_INCLUDE_PATH) + find_package(Freetype QUIET) + find_package(Fontconfig QUIET) +- if (FREETYPE_FOUND AND FONTCONFIG_FOUND) ++ if (FREETYPE_FOUND AND Fontconfig_FOUND) + set(X11_Xft_FOUND TRUE) + endif () + list(APPEND X11_INCLUDE_DIR ${X11_Xft_INCLUDE_PATH}) +diff --git a/Tests/FindFontconfig/Test/CMakeLists.txt b/Tests/FindFontconfig/Test/CMakeLists.txt +index 81db3ba4cd..36c76b1041 100644 +--- a/Tests/FindFontconfig/Test/CMakeLists.txt ++++ b/Tests/FindFontconfig/Test/CMakeLists.txt +@@ -4,13 +4,13 @@ include(CTest) + + find_package(Fontconfig REQUIRED) + +-add_definitions(-DCMAKE_EXPECTED_FONTCONFIG_VERSION="${FONTCONFIG_VERSION}") ++add_definitions(-DCMAKE_EXPECTED_FONTCONFIG_VERSION="${Fontconfig_VERSION}") + + add_executable(test_tgt main.c) + target_link_libraries(test_tgt Fontconfig::Fontconfig) + add_test(NAME test_tgt COMMAND test_tgt) + + add_executable(test_var main.c) +-target_include_directories(test_var PRIVATE ${FONTCONFIG_INCLUDE_DIRS}) +-target_link_libraries(test_var PRIVATE ${FONTCONFIG_LIBRARIES}) ++target_include_directories(test_var PRIVATE ${Fontconfig_INCLUDE_DIRS}) ++target_link_libraries(test_var PRIVATE ${Fontconfig_LIBRARIES}) + add_test(NAME test_var COMMAND test_var) +-- +2.17.2 + diff --git a/cmake.spec b/cmake.spec index 1ebf9c8..21e42f1 100644 --- a/cmake.spec +++ b/cmake.spec @@ -64,7 +64,7 @@ Name: %{orig_name}%{?name_suffix} Version: %{major_version}.%{minor_version}.0 -Release: 1%{?relsuf}%{?dist} +Release: 2%{?relsuf}%{?dist} Summary: Cross-platform make system # most sources are BSD @@ -96,6 +96,9 @@ Patch101: %{name}-fedora-flag_release.patch # https://gitlab.kitware.com/cmake/cmake/issues/17600 Patch102: %{name}-mingw-dl.patch +## upstream fix for FindFontConfig.cmake conflict with ECM +Patch299: 0299-FindFontconfig-Convert-module-variables-to-camel-cas.patch + # Patch for renaming on EPEL %if 0%{?name_suffix:1} Patch1: %{name}-rename.patch @@ -479,6 +482,9 @@ mv -f Modules/FindLibArchive.disabled Modules/FindLibArchive.cmake %changelog +* Thu Mar 28 2019 Rex Dieter - 3.14.0-2 +- pull in upstream fix for conflict with ECM/FindFontConfig + * Fri Mar 15 2019 Björn Esser - 3.14.0-1 - 3.14.0