diff options
author | Dan Lipsa <dan.lipsa@kitware.com> | 2023-02-08 11:00:14 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-08 10:00:14 -0600 |
commit | 126accfce1df6aa774f2554b3ea730f162d19594 (patch) | |
tree | bf7ed4f9f3dcac11b4fd2c375d2acc7428018965 | |
parent | 27c2ff6c64e0228ef66891e9618405abd1c1c200 (diff) | |
download | spack-126accfce1df6aa774f2554b3ea730f162d19594.tar.gz spack-126accfce1df6aa774f2554b3ea730f162d19594.tar.bz2 spack-126accfce1df6aa774f2554b3ea730f162d19594.tar.xz spack-126accfce1df6aa774f2554b3ea730f162d19594.zip |
Fix external freetype that provides freetype-config.cmake (#35363)
* Fix external freetype that provides freetype-config.cmake
---------
Co-authored-by: Dan Lipsa <dan.lipsa@khq.kitware.com>
-rw-r--r-- | var/spack/repos/builtin/packages/paraview/FindFreetype.cmake.patch | 35 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/paraview/package.py | 3 |
2 files changed, 38 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/paraview/FindFreetype.cmake.patch b/var/spack/repos/builtin/packages/paraview/FindFreetype.cmake.patch new file mode 100644 index 0000000000..ebb5f7c29c --- /dev/null +++ b/var/spack/repos/builtin/packages/paraview/FindFreetype.cmake.patch @@ -0,0 +1,35 @@ +diff --git a/VTK/CMake/FindFreetype.cmake b/VTK/CMake/FindFreetype.cmake +index b4532735c2..f06d32327e 100644 +--- a/VTK/CMake/FindFreetype.cmake ++++ b/VTK/CMake/FindFreetype.cmake +@@ -63,6 +63,30 @@ directory of a Freetype installation. + # I'm going to attempt to cut out the middleman and hope + # everything still works. + ++find_package(freetype CONFIG) # foward `QUIET`, version, and components here, but not `REQUIRED` ++if (freetype_FOUND) ++ if (NOT TARGET Freetype::Freetype) ++ # make target chain to target from config mode ++ get_target_property(freetype_library_type freetype TYPE) ++ get_target_property(freetype_location freetype LOCATION) ++ if (freetype_library_type STREQUAL STATIC_LIBRARY) ++ set(freetype_library_type STATIC) ++ endif() ++ get_target_property(freetype_interface_include_directories freetype INTERFACE_INCLUDE_DIRECTORIES) ++ get_target_property(freetype_interface_link_libraries freetype INTERFACE_LINK_LIBRARIES) ++ add_library(Freetype::Freetype "${freetype_library_type}" IMPORTED) ++ set_target_properties(Freetype::Freetype PROPERTIES ++ INTERFACE_INCLUDE_DIRECTORIES "${freetype_interface_include_directories}" ++ INTERFACE_LINK_LIBRARIES "${freetype_interface_link_libraries}" ++ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" ++ IMPORTED_LOCATION "${freetype_location}") ++ endif () ++ set(FREETYPE_INCLUDE_DIRS "${freetype_interface_include_directories}") ++ set(FREETYPE_LIBRARIES "${freetype_interface_link_libraries}") ++ set(Freetype_FOUND 1) # might need to also forward the version found ++ return () ++endif () ++ + set(FREETYPE_FIND_ARGS + HINTS + ENV FREETYPE_DIR diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index e3401ec4ac..702f9b800c 100644 --- a/var/spack/repos/builtin/packages/paraview/package.py +++ b/var/spack/repos/builtin/packages/paraview/package.py @@ -273,6 +273,9 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): patch("vtk-xdmf2-hdf51.13.1.patch", when="@5.10.0:5.10") patch("vtk-xdmf2-hdf51.13.2.patch", when="@5.10:") + # Fix VTK to work with external freetype using CONFIG mode for find_package + patch("FindFreetype.cmake.patch", when="@5.10.1:") + @property def generator(self): # https://gitlab.kitware.com/paraview/paraview/-/issues/21223 |