From 02c9296db4af08688e8b800d94893756f9e53a18 Mon Sep 17 00:00:00 2001
From: Martin Aumüller <aumuell@reserv.at>
Date: Tue, 12 Sep 2023 19:37:48 +0200
Subject: openexr: add 2.4.3, 2.5.9, 3.1.11 & 3.2.0 (#39863)

* openexr: add 2.4.3, 2.5.9, 3.1.11 & 3.2.0

- 2.5.9 is the latest version compatible with OpenScenGraph
- improved compatibility with GCC 13

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* openexr: drop unsupported debug variant

--disable/enable-debug is not supported by ./configure in 1.3, 1.7, 2.0, 2.2 and 2.3

* openexr: transform into multi-build system package

simplifies package considerably, as nothing special seems to be required

* openexr: pkg-config is also used by @3

* openexr: use system libdeflate instead of internal

if no libdeflate is found, openexr would download and build its own starting with 3.2.0

* openexr: disable tests

would download lots of data during cmake and make build times noticably longer

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
---
 .../repos/builtin/packages/openexr/package.py      | 40 ++++++++++------------
 1 file changed, 19 insertions(+), 21 deletions(-)

diff --git a/var/spack/repos/builtin/packages/openexr/package.py b/var/spack/repos/builtin/packages/openexr/package.py
index 14db2b9249..af9f4b02b6 100644
--- a/var/spack/repos/builtin/packages/openexr/package.py
+++ b/var/spack/repos/builtin/packages/openexr/package.py
@@ -3,18 +3,23 @@
 #
 # SPDX-License-Identifier: (Apache-2.0 OR MIT)
 
+from spack.build_systems.cmake import CMakeBuilder
 from spack.package import *
 
 
-class Openexr(CMakePackage):
+class Openexr(CMakePackage, AutotoolsPackage):
     """OpenEXR Graphics Tools (high dynamic-range image file format)"""
 
     homepage = "https://www.openexr.com/"
     url = "https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.1.5.tar.gz"
 
     # New versions should come from github now
+    version("3.2.0", sha256="b1b200606640547fceff0d3ebe01ac05c4a7ae2a131be7e9b3e5b9f491ef35b3")
+    version("3.1.11", sha256="06b4a20d0791b5ec0f804c855d320a0615ce8445124f293616a086e093f1f1e1")
     version("3.1.7", sha256="78dbca39115a1c526e6728588753955ee75fa7f5bb1a6e238bed5b6d66f91fd7")
     version("3.1.5", sha256="93925805c1fc4f8162b35f0ae109c4a75344e6decae5a240afdfce25f8a433ec")
+    version("2.5.9", sha256="05bb9c2da3ff3508eee51c30f59c7f2c59bf068f3b636d12d5991e8bbaf13e01")
+    version("2.4.2", sha256="8e5bfd89f4ae1221f84216a163003edddf0d37b8aac4ee42b46edb55544599b9")
     version(
         "2.3.0",
         sha256="fd6cb3a87f8c1a233be17b94c74799e6241d50fc5efd4df75c7a4b9cf4e25ea6",
@@ -62,31 +67,24 @@ class Openexr(CMakePackage):
         url="http://download.savannah.nongnu.org/releases/openexr/openexr-1.3.2.tar.gz",
     )
 
-    variant("debug", default=False, description="Builds a debug version of the libraries")
-
-    depends_on("cmake@3.12:", when="@3:", type="build")
-    depends_on("pkgconfig", when="@:2", type="build")
+    depends_on("pkgconfig", type="build")
     depends_on("imath", when="@3:")
     depends_on("ilmbase", when="@:2")
     depends_on("zlib-api")
+    depends_on("libdeflate", when="@3.2:")
+
+    conflicts("@:2.5.8 %gcc@13:")
 
-    @property
-    def build_directory(self):
-        if self.spec.satisfies("@3:"):
-            return super().build_directory
-        else:
-            return "."
+    # Build system
+    build_system(
+        conditional("cmake", when="@2.4:"), conditional("autotools", when="@:2.3"), default="cmake"
+    )
 
-    def configure_args(self):
-        args = ["--prefix=" + self.prefix]
+    with when("build_system=cmake"):
+        depends_on("cmake@3.12:", type="build")
 
-        if "+debug" in self.spec:
-            args.append("--enable-debug")
-        else:
-            args.append("--disable-debug")
 
+class CMakeBuilder(CMakeBuilder):
+    def cmake_args(self):
+        args = [self.define("BUILD_TESTING", self.pkg.run_tests)]
         return args
-
-    @when("@:2")
-    def cmake(self, spec, prefix):
-        configure(*self.configure_args())
-- 
cgit v1.2.3-70-g09d2