From b5725ae619438455edd7ff9ef4e1a89f8a8c0938 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 25 Jan 2024 14:45:49 -0500 Subject: FindFreetype: Revert use of upstream freetype cmake package The upstream freetype cmake package uses generator expressions and imported target to express its dependencies. That's fine on its own. However, our use of it since commit d83d925045 (FindFreetype: use `freetype-config.cmake` if available, 2023-09-06, v3.28.0-rc1~130^2) causes the `FREETYPE_LIBRARIES` result variable to reference those imported targets and create a package-level dependency for clients that did not exist previously. Revert that change for now, along with its follow-up fixes. Further investigation will be needed to solve the motivating use case another way. Fixes: #25635 --- Modules/FindFreetype.cmake | 98 ---------------------------------------------- 1 file changed, 98 deletions(-) diff --git a/Modules/FindFreetype.cmake b/Modules/FindFreetype.cmake index 7352769..82885cb 100644 --- a/Modules/FindFreetype.cmake +++ b/Modules/FindFreetype.cmake @@ -65,104 +65,6 @@ directory of a Freetype installation. # I'm going to attempt to cut out the middleman and hope # everything still works. -set(_Freetype_args) -if (Freetype_FIND_VERSION) - list(APPEND _Freetype_args - "${Freetype_FIND_VERSION}") - if (Freetype_FIND_VERSION_EXACT) - list(APPEND _Freetype_args - EXACT) - endif () -endif () -set(_Freetype_component_req) -set(_Freetype_component_opt) -foreach (_Freetype_component IN LISTS Freetype_FIND_COMPONENTS) - if (Freetype_FIND_REQUIRE_${_Freetype_component}) - list(APPEND _Freetype_component_req - "${_Freetype_component}") - else () - list(APPEND _Freetype_component_opt - "${_Freetype_component}") - endif () -endforeach () -unset(_Freetype_component) -if (_Freetype_component_req) - list(APPEND _Freetype_args - COMPONENTS "${_Freetype_component_req}") -endif () -unset(_Freetype_component_req) -if (_Freetype_component_opt) - list(APPEND _Freetype_args - OPTIONAL_COMPONENTS "${_Freetype_component_opt}") -endif () -unset(_Freetype_component_opt) -# Always find with QUIET to avoid noise when it is not found. -find_package(freetype CONFIG QUIET ${_Freetype_args}) -unset(_Freetype_args) -if (freetype_FOUND) - if (NOT TARGET Freetype::Freetype) - add_library(Freetype::Freetype IMPORTED INTERFACE) - set_target_properties(Freetype::Freetype PROPERTIES - INTERFACE_LINK_LIBRARIES freetype) - endif () - get_property(FREETYPE_INCLUDE_DIRS TARGET freetype PROPERTY INTERFACE_INCLUDE_DIRECTORIES) - get_property(FREETYPE_LIBRARIES TARGET freetype PROPERTY INTERFACE_LINK_LIBRARIES) - get_property(_Freetype_location TARGET freetype PROPERTY IMPORTED_IMPLIB) - if (NOT _Freetype_location) - get_property(_Freetype_location_release TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE) - if (NOT _Freetype_location_release) - get_property(_Freetype_location_release TARGET freetype PROPERTY IMPORTED_IMPLIB_RELWITHDEBINFO) - endif () - get_property(_Freetype_location_debug TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG) - if (_Freetype_location_release AND _Freetype_location_debug) - set(_Freetype_location - optimized "${_Freetype_location_release}" - debug "${_Freetype_location_debug}") - elseif (_Freetype_location_release) - set(_Freetype_location "${_Freetype_location_release}") - elseif (_Freetype_location_debug) - set(_Freetype_location "${_Freetype_location_debug}") - else () - get_property(_Freetype_location_release TARGET freetype PROPERTY LOCATION_RELEASE) - if (NOT _Freetype_location_release) - get_property(_Freetype_location_release TARGET freetype PROPERTY LOCATION_RELWITHDEBINFO) - endif () - get_property(_Freetype_location_debug TARGET freetype PROPERTY LOCATION_DEBUG) - if (_Freetype_location_release AND _Freetype_location_debug) - set(_Freetype_location - optimized "${_Freetype_location_release}" - debug "${_Freetype_location_debug}") - elseif (_Freetype_location_release) - set(_Freetype_location "${_Freetype_location_release}") - elseif (_Freetype_location_debug) - set(_Freetype_location "${_Freetype_location_debug}") - else () - get_property(_Freetype_location TARGET freetype PROPERTY LOCATION) - endif () - endif () - unset(_Freetype_location_release) - unset(_Freetype_location_debug) - endif () - list(INSERT FREETYPE_LIBRARIES 0 - "${_Freetype_location}") - unset(_Freetype_location) - set(Freetype_FOUND 1) - set(FREETYPE_FOUND 1) - set(FREETYPE_VERSION_STRING "${freetype_VERSION}") - foreach (_Freetype_component IN LISTS Freetype_FIND_COMPONENTS) - set(Freetype_${_Freetype_component}_FOUND "${freetype_${_Freetype_component}_FOUND}") - endforeach () - unset(_Freetype_component) - - include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) - find_package_handle_standard_args(Freetype - HANDLE_COMPONENTS - VERSION_VAR FREETYPE_VERSION_STRING - ) - - return () -endif () - set(FREETYPE_FIND_ARGS HINTS ENV FREETYPE_DIR -- cgit v0.12