From bb03a1768b317607204ae05e66485ce7f7398a6f Mon Sep 17 00:00:00 2001
From: Sam Reeve <6740307+streeve@users.noreply.github.com>
Date: Mon, 2 Oct 2023 16:27:13 -0700
Subject: Add AdditiveFOAM package (#39295)

* Add AdditiveFOAM package
* Add AdditiveFOAM build and install

Co-authored-by: kjrstory <kjrstory@gmail.com>
Co-authored-by: Knapp, Gerry <knappgl@ornl.gov>

---------

Co-authored-by: kjrstory <kjrstory@gmail.com>
Co-authored-by: Knapp, Gerry <knappgl@ornl.gov>
---
 .../builtin/packages/additivefoam/assets/Allwmake  |  4 ++
 .../additivefoam/assets/applications/Allwmake      |  5 ++
 .../repos/builtin/packages/additivefoam/package.py | 59 ++++++++++++++++++++++
 3 files changed, 68 insertions(+)
 create mode 100755 var/spack/repos/builtin/packages/additivefoam/assets/Allwmake
 create mode 100755 var/spack/repos/builtin/packages/additivefoam/assets/applications/Allwmake
 create mode 100644 var/spack/repos/builtin/packages/additivefoam/package.py

(limited to 'var')

diff --git a/var/spack/repos/builtin/packages/additivefoam/assets/Allwmake b/var/spack/repos/builtin/packages/additivefoam/assets/Allwmake
new file mode 100755
index 0000000000..e0aa5c6b87
--- /dev/null
+++ b/var/spack/repos/builtin/packages/additivefoam/assets/Allwmake
@@ -0,0 +1,4 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+applications/Allwmake $targetType $*
diff --git a/var/spack/repos/builtin/packages/additivefoam/assets/applications/Allwmake b/var/spack/repos/builtin/packages/additivefoam/assets/applications/Allwmake
new file mode 100755
index 0000000000..c0edc3142b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/additivefoam/assets/applications/Allwmake
@@ -0,0 +1,5 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # Run from this directory
+
+wmake libso solvers/additiveFoam/movingHeatSource
+wmake solvers/additiveFoam
diff --git a/var/spack/repos/builtin/packages/additivefoam/package.py b/var/spack/repos/builtin/packages/additivefoam/package.py
new file mode 100644
index 0000000000..3141c4b6ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/additivefoam/package.py
@@ -0,0 +1,59 @@
+# 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)
+
+import os
+
+from spack.package import *
+from spack.pkg.builtin.openfoam import add_extra_files
+
+
+class Additivefoam(Package):
+    """AdditiveFOAM is a heat and mass transfer software for Additive Manufacturing (AM)"""
+
+    homepage = "https://github.com/ORNL/AdditiveFOAM"
+    git = "https://github.com/ORNL/AdditiveFOAM.git"
+    url = "https://github.com/ORNL/AdditiveFOAM/archive/1.0.0.tar.gz"
+
+    maintainers("streeve", "colemanjs", "gknapp1")
+
+    tags = ["ecp"]
+
+    version("main", branch="main")
+    version("1.0.0", sha256="abbdf1b0230cd2f26f526be76e973f508978611f404fe8ec4ecdd7d5df88724c")
+
+    depends_on("openfoam-org@10")
+
+    common = ["spack-derived-Allwmake"]
+    assets = ["applications/Allwmake", "Allwmake"]
+
+    build_script = "./spack-derived-Allwmake"
+
+    phases = ["configure", "build", "install"]
+
+    def patch(self):
+        add_extra_files(self, self.common, self.assets)
+
+    def configure(self, spec, prefix):
+        pass
+
+    def build(self, spec, prefix):
+        """Build with Allwmake script, wrapped to source environment first."""
+        args = []
+        if self.parallel:  # Parallel build? - pass via environment
+            os.environ["WM_NCOMPPROCS"] = str(make_jobs)
+        builder = Executable(self.build_script)
+        builder(*args)
+
+    def install(self, spec, prefix):
+        """Install under the prefix directory"""
+
+        for f in ["README.md", "LICENSE"]:
+            if os.path.isfile(f):
+                install(f, join_path(self.prefix, f))
+
+        dirs = ["tutorials", "applications"]
+        for d in dirs:
+            if os.path.isdir(d):
+                install_tree(d, join_path(self.prefix, d), symlinks=True)
-- 
cgit v1.2.3-70-g09d2