From f4e4d83a02a64b32ea20edcb9fd6991d00dc70a1 Mon Sep 17 00:00:00 2001
From: "Adam J. Stewart" <ajstewart426@gmail.com>
Date: Wed, 22 Mar 2023 16:25:02 -0500
Subject: LLVM OpenMP: add v16.0.0 (#36330)

---
 .../repos/builtin/packages/llvm-openmp/package.py  | 27 ++++++++++++++++++----
 .../repos/builtin/packages/py-filecheck/package.py | 17 ++++++++++++++
 2 files changed, 40 insertions(+), 4 deletions(-)
 create mode 100644 var/spack/repos/builtin/packages/py-filecheck/package.py

diff --git a/var/spack/repos/builtin/packages/llvm-openmp/package.py b/var/spack/repos/builtin/packages/llvm-openmp/package.py
index d16a78ed90..ce27b342ef 100644
--- a/var/spack/repos/builtin/packages/llvm-openmp/package.py
+++ b/var/spack/repos/builtin/packages/llvm-openmp/package.py
@@ -3,6 +3,8 @@
 #
 # SPDX-License-Identifier: (Apache-2.0 OR MIT)
 
+import os
+
 from spack.package import *
 
 
@@ -13,23 +15,34 @@ class LlvmOpenmp(CMakePackage):
     homepage = "https://openmp.llvm.org/"
     url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.6/openmp-14.0.6.src.tar.xz"
 
+    version("16.0.0", sha256="e30f69c6533157ec4399193ac6b158807610815accfbed98695d72074e4bedd0")
     version("14.0.6", sha256="4f731ff202add030d9d68d4c6daabd91d3aeed9812e6a5b4968815cfdff0eb1f")
     version("12.0.1", sha256="60fe79440eaa9ebf583a6ea7f81501310388c02754dbe7dc210776014d06b091")
     version("9.0.0", sha256="9979eb1133066376cc0be29d1682bc0b0e7fb541075b391061679111ae4d3b5b")
     version("8.0.0", sha256="f7b1705d2f16c4fc23d6531f67d2dd6fb78a077dd346b02fed64f4b8df65c9d5")
 
-    depends_on("cmake@3.13.4:", when="@12:", type="build")
-    depends_on("cmake@2.8:", type="build")
-
     variant(
         "multicompat",
         default=False,
         description="Support gomp and the Intel openMP runtime library.",
     )
 
+    depends_on("cmake@3.13.4:", when="@12:", type="build")
+    depends_on("cmake@2.8:", type="build")
+    depends_on("py-lit", type="test")
+    depends_on("py-filecheck", type="test")
+    # depends_on("llvm-utils", type="test")  # for "not"
+
+    resource(
+        name="cmake",
+        url="https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/cmake-16.0.0.src.tar.xz",
+        sha256="04e62ab7d0168688d9102680adf8eabe7b04275f333fe20eef8ab5a3a8ea9fcc",
+        when="@16.0.0",
+    )
+
     @property
     def root_cmakelists_dir(self):
-        if self.spec.satisfies("@14:"):
+        if self.spec.satisfies("@14"):
             return "openmp-{}.src".format(self.version)
         else:
             return "."
@@ -42,6 +55,12 @@ class LlvmOpenmp(CMakePackage):
 
         return url.format(version)
 
+    @when("@16:")
+    def patch(self):
+        src = os.path.join(self.stage.source_path, f"cmake-{self.version}.src")
+        dst = os.path.join(self.stage.path, "cmake")
+        os.rename(src, dst)
+
     def cmake_args(self):
         # Disable LIBOMP_INSTALL_ALIASES, otherwise the library is installed as
         # libgomp alias which can conflict with GCC's libgomp.
diff --git a/var/spack/repos/builtin/packages/py-filecheck/package.py b/var/spack/repos/builtin/packages/py-filecheck/package.py
new file mode 100644
index 0000000000..18839444d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-filecheck/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class PyFilecheck(PythonPackage):
+    """Python port of LLVM's FileCheck, flexible pattern matching file verifier."""
+
+    pypi = "filecheck/filecheck-0.0.23.tar.gz"
+
+    version("0.0.23", sha256="1c5db511fb7b5a32e1e24736479cfe754ea27c9ae0d5b6d52c0af132c8db3e7d")
+
+    depends_on("python@3.6.2:3", type=("build", "run"))
+    depends_on("py-poetry-core", type="build")
-- 
cgit v1.2.3-70-g09d2