diff options
author | Dan Lipsa <dan.lipsa@kitware.com> | 2024-06-17 09:33:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-17 15:33:22 +0200 |
commit | 9ba90e322eb4ce16c543e9ac27058188d5471654 (patch) | |
tree | 7cdf762df65e5b8ba0c094d1c3999275b1808b0c /var | |
parent | d9c6b40d8e7dacec9c6dee1c8942aace9717fe78 (diff) | |
download | spack-9ba90e322eb4ce16c543e9ac27058188d5471654.tar.gz spack-9ba90e322eb4ce16c543e9ac27058188d5471654.tar.bz2 spack-9ba90e322eb4ce16c543e9ac27058188d5471654.tar.xz spack-9ba90e322eb4ce16c543e9ac27058188d5471654.zip |
PROJ: add new versions, improve tiff patches (#42767)
* Projsync needs curl
This fixes a proj compilation error from paraview
* tiff does not set TIFF_INCLUDE_DIR tested by proj
* TIFF patch exists for proj 9.2
* Add comments with location of proj patch
* Use TIFF patches for different cmake versions
* Use modules starting cmake 3.28 and variables before that
* Fix black style
* Simpler patches, add newer proj
* Remove duplicated flag
* Deprecate PROJ 4.8 and older
* Remove PRIVATE
* Deprecate PROJ 7.0.0
---------
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
Diffstat (limited to 'var')
5 files changed, 72 insertions, 38 deletions
diff --git a/var/spack/repos/builtin/packages/proj/package.py b/var/spack/repos/builtin/packages/proj/package.py index 78a92e8ad6..0058b85831 100644 --- a/var/spack/repos/builtin/packages/proj/package.py +++ b/var/spack/repos/builtin/packages/proj/package.py @@ -25,6 +25,10 @@ class Proj(CMakePackage, AutotoolsPackage): license("MIT") + version("9.4.1", sha256="ffe20170ee2b952207adf8a195e2141eab12cda181e49fdeb54425d98c7171d7") + version("9.4.0", sha256="3643b19b1622fe6b2e3113bdb623969f5117984b39f173b4e3fb19a8833bd216") + version("9.3.1", sha256="b0f919cb9e1f42f803a3e616c2b63a78e4d81ecfaed80978d570d3a5e29d10bc") + version("9.3.0", sha256="91a3695a004ea28db0448a34460bed4cc3b130e5c7d74339ec999efdab0e547d") version("9.2.1", sha256="15ebf4afa8744b9e6fccb5d571fc9f338dc3adcf99907d9e62d1af815d4971a1") version("9.2.0", sha256="dea816f5aa732ae6b2ee3977b9bdb28b1d848cf56a1aad8faf6708b89f0ed50e") version("9.1.1", sha256="003cd4010e52bb5eb8f7de1c143753aa830c8902b6ed01209f294846e40e6d39") @@ -41,7 +45,11 @@ class Proj(CMakePackage, AutotoolsPackage): version("7.2.0", sha256="2957798e5fe295ff96a2af1889d0428e486363d210889422f76dd744f7885763") version("7.1.0", sha256="876151e2279346f6bdbc63bd59790b48733496a957bccd5e51b640fdd26eaa8d") version("7.0.1", sha256="a7026d39c9c80d51565cfc4b33d22631c11e491004e19020b3ff5a0791e1779f") - version("7.0.0", sha256="ee0e14c1bd2f9429b1a28999240304c0342ed739ebaea3d4ff44c585b1097be8") + version( + "7.0.0", + sha256="ee0e14c1bd2f9429b1a28999240304c0342ed739ebaea3d4ff44c585b1097be8", + deprecated=True, + ) version("6.3.2", sha256="cb776a70f40c35579ae4ba04fb4a388c1d1ce025a1df6171350dc19f25b80311") version("6.3.1", sha256="6de0112778438dcae30fcc6942dee472ce31399b9e5a2b67e8642529868c86f8") version("6.2.0", sha256="b300c0f872f632ad7f8eb60725edbf14f0f8f52db740a3ab23e7b94f1cd22a50") @@ -52,12 +60,24 @@ class Proj(CMakePackage, AutotoolsPackage): version("5.0.1", sha256="a792f78897482ed2c4e2af4e8a1a02e294c64e32b591a635c5294cb9d49fdc8c") version("4.9.2", sha256="60bf9ad1ed1c18158e652dfff97865ba6fb2b67f1511bc8dceae4b3c7e657796") version("4.9.1", sha256="fca0388f3f8bc5a1a803d2f6ff30017532367992b30cf144f2d39be88f36c319") - version("4.8.0", sha256="2db2dbf0fece8d9880679154e0d6d1ce7c694dd8e08b4d091028093d87a9d1b5") - version("4.7.0", sha256="fc5440002a496532bfaf423c28bdfaf9e26cc96c84ccefcdefde911efbd98986") - version("4.6.1", sha256="76d174edd4fdb4c49c1c0ed8308a469216c01e7177a4510b1b303ef3c5f97b47") + version( + "4.8.0", + sha256="2db2dbf0fece8d9880679154e0d6d1ce7c694dd8e08b4d091028093d87a9d1b5", + deprecated=True, + ) + version( + "4.7.0", + sha256="fc5440002a496532bfaf423c28bdfaf9e26cc96c84ccefcdefde911efbd98986", + deprecated=True, + ) + version( + "4.6.1", + sha256="76d174edd4fdb4c49c1c0ed8308a469216c01e7177a4510b1b303ef3c5f97b47", + deprecated=True, + ) - variant("tiff", default=True, description="Enable TIFF support") - variant("curl", default=True, description="Enable curl support") + variant("tiff", default=True, when="@7:", description="Enable TIFF support") + variant("curl", default=True, when="@7:", description="Enable curl support") variant("shared", default=True, description="Enable shared libraries") variant("pic", default=False, description="Enable position-independent code (PIC)") @@ -89,14 +109,14 @@ class Proj(CMakePackage, AutotoolsPackage): # https://proj.org/install.html#build-requirements with when("build_system=cmake"): - # CMake 3.19 refactored the FindTiff module interface, update older proj's - # to be compatible with this "new" interface - # patch replaces the TIFF_LIBRARY variable (no longer used) with TIFF_LIBRARIES - patch("proj-8.1-cmake-3.29-new-tiff-interface.patch", when="+tiff @8:9.1.0 ^cmake@3.19:") - patch("proj-7-cmake-3.29-new-tiff-interface.patch", when="+tiff @7 ^cmake@3.19:") + # https://github.com/OSGeo/PROJ/pull/3374 + patch("proj-8-tiff.patch", when="@8:9.1") + patch("proj-7-tiff.patch", when="@7") + # https://github.com/spack/spack/pull/41065 patch("proj.cmakelists.5.0.patch", when="@5.0") patch("proj.cmakelists.5.1.patch", when="@5.1:5.2") - conflicts("cmake@3.19:", when="@:7") + + depends_on("cmake@3.16:", when="@9.4:", type="build") depends_on("cmake@3.9:", when="@6:", type="build") depends_on("cmake@3.5:", when="@5", type="build") depends_on("cmake@2.6:", when="@:4", type="build") @@ -138,6 +158,8 @@ class CMakeBuilder(BaseBuilder, cmake.CMakeBuilder): self.define_from_variant("ENABLE_TIFF", "tiff"), self.define_from_variant("ENABLE_CURL", "curl"), self.define_from_variant(shared_arg, "shared"), + # projsync needs curl + self.define_from_variant("BUILD_PROJSYNC", "curl"), self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), ] if self.spec.satisfies("@6:") and self.pkg.run_tests: diff --git a/var/spack/repos/builtin/packages/proj/proj-7-cmake-3.29-new-tiff-interface.patch b/var/spack/repos/builtin/packages/proj/proj-7-cmake-3.29-new-tiff-interface.patch deleted file mode 100644 index be0095ffde..0000000000 --- a/var/spack/repos/builtin/packages/proj/proj-7-cmake-3.29-new-tiff-interface.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake -index cf30734e5779b102dac3e72ac13962687f6e376e..b2f42c13bc43b6cf5475965c2ce0077daefc47e2 100644 ---- a/src/lib_proj.cmake -+++ b/src/lib_proj.cmake -@@ -420,7 +420,7 @@ target_link_libraries(${PROJ_CORE_TARGET} ${SQLITE3_LIBRARY}) - if(TIFF_ENABLED) - target_compile_definitions(${PROJ_CORE_TARGET} PRIVATE -DTIFF_ENABLED) - target_include_directories(${PROJ_CORE_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) -- target_link_libraries(${PROJ_CORE_TARGET} ${TIFF_LIBRARY}) -+ target_link_libraries(${PROJ_CORE_TARGET} ${TIFF_LIBRARIES}) - endif() - - if(CURL_ENABLED) diff --git a/var/spack/repos/builtin/packages/proj/proj-7-tiff.patch b/var/spack/repos/builtin/packages/proj/proj-7-tiff.patch new file mode 100644 index 0000000000..d6597a3e93 --- /dev/null +++ b/var/spack/repos/builtin/packages/proj/proj-7-tiff.patch @@ -0,0 +1,19 @@ +--- a/src/lib_proj.cmake 2024-06-12 13:29:53 ++++ b/src/lib_proj.cmake 2024-06-12 13:30:27 +@@ -406,8 +406,14 @@ + + if(TIFF_ENABLED) + target_compile_definitions(${PROJ_CORE_TARGET} PRIVATE -DTIFF_ENABLED) +- target_include_directories(${PROJ_CORE_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) +- target_link_libraries(${PROJ_CORE_TARGET} ${TIFF_LIBRARY}) ++ if( CMAKE_VERSION VERSION_LESS 3.11 AND CMAKE_CROSSCOMPILING ) ++ # Hack needed for ubuntu:18.04 mingw64 cross compiling to avoid ++ # -isystem to be emitted (similar to https://discourse.cmake.org/t/use-of-isystem/1574) ++ target_include_directories(proj PRIVATE ${TIFF_INCLUDE_DIRS}) ++ target_link_libraries(proj ${TIFF_LIBRARIES}) ++ else() ++ target_link_libraries(proj TIFF::TIFF) ++ endif() + endif() + + if(CURL_ENABLED) diff --git a/var/spack/repos/builtin/packages/proj/proj-8-tiff.patch b/var/spack/repos/builtin/packages/proj/proj-8-tiff.patch new file mode 100644 index 0000000000..e223d860c9 --- /dev/null +++ b/var/spack/repos/builtin/packages/proj/proj-8-tiff.patch @@ -0,0 +1,19 @@ +--- a/src/lib_proj.cmake 2024-06-12 13:07:41 ++++ b/src/lib_proj.cmake 2024-06-12 13:08:16 +@@ -404,8 +404,14 @@ + + if(TIFF_ENABLED) + target_compile_definitions(proj PRIVATE -DTIFF_ENABLED) +- target_include_directories(proj PRIVATE ${TIFF_INCLUDE_DIR}) +- target_link_libraries(proj PRIVATE ${TIFF_LIBRARY}) ++ if( CMAKE_VERSION VERSION_LESS 3.11 AND CMAKE_CROSSCOMPILING ) ++ # Hack needed for ubuntu:18.04 mingw64 cross compiling to avoid ++ # -isystem to be emitted (similar to https://discourse.cmake.org/t/use-of-isystem/1574) ++ target_include_directories(proj PRIVATE ${TIFF_INCLUDE_DIRS}) ++ target_link_libraries(proj PRIVATE ${TIFF_LIBRARIES}) ++ else() ++ target_link_libraries(proj PRIVATE TIFF::TIFF) ++ endif() + endif() + + if(CURL_ENABLED) diff --git a/var/spack/repos/builtin/packages/proj/proj-8.1-cmake-3.29-new-tiff-interface.patch b/var/spack/repos/builtin/packages/proj/proj-8.1-cmake-3.29-new-tiff-interface.patch deleted file mode 100644 index d278029aed..0000000000 --- a/var/spack/repos/builtin/packages/proj/proj-8.1-cmake-3.29-new-tiff-interface.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake -index f2de1c10..a5697608 100644 ---- a/src/lib_proj.cmake -+++ b/src/lib_proj.cmake -@@ -405,7 +405,7 @@ endif() - if(TIFF_ENABLED) - target_compile_definitions(proj PRIVATE -DTIFF_ENABLED) - target_include_directories(proj PRIVATE ${TIFF_INCLUDE_DIR}) -- target_link_libraries(proj PRIVATE ${TIFF_LIBRARY}) -+ target_link_libraries(proj PRIVATE ${TIFF_LIBRARIES}) - endif() - - if(CURL_ENABLED) |