From d35c24a3ed5b5ee826c525b3673e2fdcef8d33a8 Mon Sep 17 00:00:00 2001 From: Sebastian Ehlert <28669218+awvwgk@users.noreply.github.com> Date: Wed, 25 Jan 2023 18:33:37 +0100 Subject: Add packages for scine modules (#34969) * Add packages for scine modules - lbfgspp (dependency for scine-utilities) - scine-core - scine-utilities and py-scine-utilities (virtual) - scine-readuct and py-scine-readuct (virtual) - scine-sparrow and py-scine-sparrow (virtual) - scine-database and py-scine-database (virtual) - scine-molassembler and py-scine-molassembler (virtual) - scine-xtb and py-scine-xtb (virtual) - py-scine-chemoton - py-scine-puffin * Fix line-length for flake8 * Remove virtual dependencies * Update detection of boost, minor fixes in packages / dependencies * Correctly declare build-only dependencies, add git versions * Add sparrow dummy packages, fix dependencies * Rename latest version from develop to master * Restore original sparrow package * Also rename latest version for chemoton and puffin --- .../repos/builtin/packages/lbfgspp/package.py | 17 ++++ .../builtin/packages/py-scine-chemoton/package.py | 27 ++++++ .../builtin/packages/py-scine-puffin/package.py | 32 +++++++ .../repos/builtin/packages/scine-core/package.py | 44 +++++++++ .../builtin/packages/scine-database/package.py | 59 ++++++++++++ .../builtin/packages/scine-molassembler/package.py | 98 ++++++++++++++++++++ .../builtin/packages/scine-readuct/package.py | 67 ++++++++++++++ .../builtin/packages/scine-sparrow/package.py | 100 +++++++++++++++++++++ .../builtin/packages/scine-utilities/package.py | 81 +++++++++++++++++ .../repos/builtin/packages/scine-xtb/package.py | 59 ++++++++++++ .../repos/builtin/packages/sparrow/package.py | 1 + 11 files changed, 585 insertions(+) create mode 100644 var/spack/repos/builtin/packages/lbfgspp/package.py create mode 100644 var/spack/repos/builtin/packages/py-scine-chemoton/package.py create mode 100644 var/spack/repos/builtin/packages/py-scine-puffin/package.py create mode 100644 var/spack/repos/builtin/packages/scine-core/package.py create mode 100644 var/spack/repos/builtin/packages/scine-database/package.py create mode 100644 var/spack/repos/builtin/packages/scine-molassembler/package.py create mode 100644 var/spack/repos/builtin/packages/scine-readuct/package.py create mode 100644 var/spack/repos/builtin/packages/scine-sparrow/package.py create mode 100644 var/spack/repos/builtin/packages/scine-utilities/package.py create mode 100644 var/spack/repos/builtin/packages/scine-xtb/package.py diff --git a/var/spack/repos/builtin/packages/lbfgspp/package.py b/var/spack/repos/builtin/packages/lbfgspp/package.py new file mode 100644 index 0000000000..70f5865d9d --- /dev/null +++ b/var/spack/repos/builtin/packages/lbfgspp/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2022 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 Lbfgspp(CMakePackage): + """A Header-only C++ Library for L-BFGS and L-BFGS-B Algorithms""" + + homepage = "https://lbfgspp.statr.me/" + url = "https://github.com/yixuan/LBFGSpp/archive/refs/tags/v0.2.0.tar.gz" + + version("0.2.0", sha256="7101744a538c3aff52e10c82267305847b0b5e9d39f9974b4b29812cd1398ff9") + + depends_on("eigen @3:") diff --git a/var/spack/repos/builtin/packages/py-scine-chemoton/package.py b/var/spack/repos/builtin/packages/py-scine-chemoton/package.py new file mode 100644 index 0000000000..1a8e0cc264 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scine-chemoton/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2022 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 PyScineChemoton(PythonPackage): + """Software driving the automated exploration of chemical reaction networks""" + + homepage = "https://scine.ethz.ch/download/chemoton" + pypi = "scine_chemoton/scine_chemoton-2.2.0.tar.gz" + git = "https://github.com/qcscine/puffin.git" + + version("master", branch="master") + version("2.2.0", "cda4f9de1e1c00ecc5e0b2d9c17a5edb56b468d454022e3f4045ec116ba2ec45") + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-networkx", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-setproctitle", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("scine-database+python", type=("build", "run")) + depends_on("scine-molassembler+python", type=("build", "run")) + depends_on("scine-utilities+python", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-scine-puffin/package.py b/var/spack/repos/builtin/packages/py-scine-puffin/package.py new file mode 100644 index 0000000000..fd8c504d57 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scine-puffin/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2022 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 PyScinePuffin(PythonPackage): + """Calculation handler for SCINE Chemoton""" + + homepage = "https://scine.ethz.ch/download/puffin" + pypi = "scine_puffin/scine_puffin-1.1.0.tar.gz" + git = "https://github.com/qcscine/puffin.git" + + version("master", branch="master") + version("1.1.0", "1a15232b1b472c36349e5534e4fdf9dd90bc554926cb42fba37eee8e60be8c44") + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-gitpython", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-psutil", type=("build", "run")) + depends_on("py-python-daemon", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-setproctitle", type=("build", "run")) + depends_on("py-setuptools", type="build") + # Promoted from optional to explicit dependencies to avoid compiling them on puffin startup + depends_on("scine-database+python", type=("build", "run")) + depends_on("scine-molassembler+python", type=("build", "run")) + depends_on("scine-readuct+python", type=("build", "run")) + depends_on("scine-utilities+python", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/scine-core/package.py b/var/spack/repos/builtin/packages/scine-core/package.py new file mode 100644 index 0000000000..88ed0b7b84 --- /dev/null +++ b/var/spack/repos/builtin/packages/scine-core/package.py @@ -0,0 +1,44 @@ +# Copyright 2013-2022 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 * + + +class ScineCore(CMakePackage): + """Core provides the functionality necessary to couple the individual SCINE modules together""" + + homepage = "https://scine.ethz.ch/" + url = "https://github.com/qcscine/core/archive/refs/tags/4.0.2.tar.gz" + git = "https://github.com/qcscine/core.git" + + version("master", branch="master") + version("4.0.2", "7181c6f93d71def22f1e0e5767afc7587c04b49abc03516f6926394868e7adc6") + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/5.0.1.tar.gz", + sha256="089ca500fc191e04a968ea166d2fe80178b227bc2e6d3926523fa2eee5f6492d", + placement="_dev", + ) + + depends_on("boost+filesystem+program_options cxxstd=17 @1.65.0:") + depends_on("googletest", type="build") + + def patch(self): + os.rmdir("dev") + os.rename("_dev", "dev") + + def cmake_args(self): + return [ + self.define("SCINE_BUILD_TESTS", self.run_tests), + self.define("SCINE_MARCH", ""), + self.define("BOOST_ROOT", self.spec["boost"].prefix), + self.define("BOOST_LIBRARY_DIR", self.spec["boost"].libs.directories[0]), + self.define("BOOST_INCLUDE_DIR", self.spec["boost"].headers.directories[0]), + self.define("BOOST_NO_SYSTEM_PATHS", True), + self.define("Boost_NO_BOOST_CMAKE", True), + ] diff --git a/var/spack/repos/builtin/packages/scine-database/package.py b/var/spack/repos/builtin/packages/scine-database/package.py new file mode 100644 index 0000000000..c62bf10c26 --- /dev/null +++ b/var/spack/repos/builtin/packages/scine-database/package.py @@ -0,0 +1,59 @@ +# Copyright 2013-2022 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 * + + +class ScineDatabase(CMakePackage): + """The SCINE database module is a database wrapper for a MongoDB encoding reaction networks.""" + + homepage = "https://scine.ethz.ch/" + url = "https://github.com/qcscine/database/archive/refs/tags/1.1.0.tar.gz" + git = "https://github.com/qcscine/database.git" + + version("master", branch="master") + version("1.1.0", "a9144631dfb90e06f6924cf58fc5db13719cf8577fcd3bbf788a135060a70c18") + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/5.0.1.tar.gz", + sha256="089ca500fc191e04a968ea166d2fe80178b227bc2e6d3926523fa2eee5f6492d", + placement="_dev", + ) + + variant("python", default=False, description="Build Python extension module") + + depends_on("eigen@3:") + depends_on("googletest", type="build") + depends_on("mongo-cxx-driver@3.2.1:") + depends_on("python@3.6:", when="+python", type=("build", "run")) + depends_on("py-pip", when="+python", type="build") + depends_on("py-pybind11", when="+python", type="build") + depends_on("scine-utilities@5:") + depends_on("scine-utilities+python", when="+python") + + extends("python", when="+python") + + def patch(self): + os.rmdir("dev") + os.rename("_dev", "dev") + + filter_file( + "#include ", + "#include \n#include ", + "src/Database/Database/Collection.cpp", + ) + + def cmake_args(self): + args = [ + self.define("SCINE_BUILD_TESTS", self.run_tests), + self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec), + self.define("SCINE_MARCH", ""), + ] + if "+python" in self.spec: + args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)) + return args diff --git a/var/spack/repos/builtin/packages/scine-molassembler/package.py b/var/spack/repos/builtin/packages/scine-molassembler/package.py new file mode 100644 index 0000000000..14ffcd9c79 --- /dev/null +++ b/var/spack/repos/builtin/packages/scine-molassembler/package.py @@ -0,0 +1,98 @@ +# Copyright 2013-2022 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 * + + +class ScineMolassembler(CMakePackage): + """Chemoinformatics toolkit with support for inorganic molecules.""" + + homepage = "https://scine.ethz.ch/download/molassembler" + url = "https://github.com/qcscine/molassembler/archive/refs/tags/1.2.1.tar.gz" + git = "https://github.com/qcscine/molassembler.git" + + version("master", branch="master") + version("1.2.1", "c9fea41d383b7f54cf8a3ed4dabebe9e942fe3ef5b47895e3533e8ce42dacd38") + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/5.0.1.tar.gz", + sha256="089ca500fc191e04a968ea166d2fe80178b227bc2e6d3926523fa2eee5f6492d", + placement="_dev", + ) + + resource( + name="nauty-finder", + url="https://raw.githubusercontent.com/conda-forge/scine-molassembler-feedstock/0aa909d/recipe/cmake/Findnauty.cmake", + sha256="0746e8a1e35687687866e82797ceb848d941a0c232ed5daa63689476b557e18e", + destination="cmake", + expand=False, + ) + + # resource( + # name="ringdecomposerlib-finder", + # url="https://raw.githubusercontent.com/conda-forge/scine-molassembler-feedstock/0aa909d/recipe/cmake/FindRingDecomposerLib.cmake", + # sha256="5ecfbccf48a66d8477011aa576181b56d725f1716cca5a268683e586d761a3ec", + # destination="cmake", + # expand=False, + # ) + + patch( + "https://raw.githubusercontent.com/conda-forge/scine-molassembler-feedstock/0aa909d/recipe/patches/nlohmann_json.patch", + level=1, + sha256="a9afcc42b264620ee24505c1857b8493c2fb632a1d155362ba4519814922a6af", + ) + + patch( + "https://raw.githubusercontent.com/conda-forge/scine-molassembler-feedstock/0aa909d/recipe/patches/no_cfenv.patch", + level=1, + sha256="4d746ebd3567d7209200614613861995b999e65e7e26fc0338184fffa0cb3fb7", + when="platform=darwin", + ) + + variant("python", default=False, description="Build Python extension module") + + depends_on("boost+system+filesystem+program_options cxxstd=17 @1.65.0:") + depends_on("eigen@3:") + depends_on("googletest", type="build") + depends_on("nauty") + depends_on("nlohmann-json", type="build") + depends_on("python@3.6:", when="+python", type=("build", "run")) + depends_on("py-pip", when="+python", type="build") + depends_on("py-pybind11@2.6.2:", when="+python", type="build") + # depends_on("ringdecomposerlib") + depends_on("scine-core") + depends_on("scine-utilities") + depends_on("scine-utilities+python", when="+python", type=("build", "run")) + + extends("python", when="+python") + + def patch(self): + os.rmdir("dev") + os.rename("_dev", "dev") + + filter_file( + "find_package(pybind11 2.6.2 EXACT QUIET)", + "find_package(pybind11)", + "dev/cmake/ImportPybind11.cmake", + ) + + def cmake_args(self): + args = [ + self.define("BUILD_SHARED_LIBS", True), + self.define("SCINE_BUILD_TESTS", self.run_tests), + self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec), + self.define("SCINE_MARCH", ""), + self.define("BOOST_ROOT", self.spec["boost"].prefix), + self.define("BOOST_LIBRARY_DIR", self.spec["boost"].libs.directories[0]), + self.define("BOOST_INCLUDE_DIR", self.spec["boost"].headers.directories[0]), + self.define("BOOST_NO_SYSTEM_PATHS", True), + self.define("Boost_NO_BOOST_CMAKE", True), + ] + if "+python" in self.spec: + args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)) + return args diff --git a/var/spack/repos/builtin/packages/scine-readuct/package.py b/var/spack/repos/builtin/packages/scine-readuct/package.py new file mode 100644 index 0000000000..0f77db749f --- /dev/null +++ b/var/spack/repos/builtin/packages/scine-readuct/package.py @@ -0,0 +1,67 @@ +# Copyright 2013-2022 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 * + + +class ScineReaduct(CMakePackage): + """ + ReaDuct allows you to carry out structure optimizations, transition state searches + and intrinsic reaction coordinate (IRC) calculations among other things + """ + + homepage = "https://scine.ethz.ch/download/readuct" + url = "https://github.com/qcscine/readuct/archive/refs/tags/4.1.0.tar.gz" + + version("4.1.0", "9cec0192a444403d6a8fd096509798c49fbd1eec298ec7194aba915e31f50782") + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/5.0.1.tar.gz", + sha256="089ca500fc191e04a968ea166d2fe80178b227bc2e6d3926523fa2eee5f6492d", + placement="_dev", + ) + + variant("python", default=False, description="Build Python extension module") + + depends_on("boost+system+filesystem+program_options cxxstd=17 @1.65.0:") + depends_on("eigen@3:") + depends_on("googletest") + depends_on("python@3.6:", when="+python", type=("build", "run")) + depends_on("py-pip", when="+python", type="build") + depends_on("py-pybind11@2.6.2:", when="+python", type=("build", "run")) + depends_on("scine-core") + depends_on("scine-utilities") + depends_on("scine-utilities+python", when="+python", type=("build", "run")) + depends_on("yaml-cpp") + + extends("python", when="+python") + + def patch(self): + os.rmdir("dev") + os.rename("_dev", "dev") + + filter_file( + "find_package(pybind11 2.6.2 EXACT QUIET)", + "find_package(pybind11)", + "dev/cmake/ImportPybind11.cmake", + ) + + def cmake_args(self): + args = [ + self.define("SCINE_BUILD_TESTS", self.run_tests), + self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec), + self.define("SCINE_MARCH", ""), + self.define("BOOST_ROOT", self.spec["boost"].prefix), + self.define("BOOST_LIBRARY_DIR", self.spec["boost"].libs.directories[0]), + self.define("BOOST_INCLUDE_DIR", self.spec["boost"].headers.directories[0]), + self.define("BOOST_NO_SYSTEM_PATHS", True), + self.define("Boost_NO_BOOST_CMAKE", True), + ] + if "+python" in self.spec: + args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)) + return args diff --git a/var/spack/repos/builtin/packages/scine-sparrow/package.py b/var/spack/repos/builtin/packages/scine-sparrow/package.py new file mode 100644 index 0000000000..10993213d6 --- /dev/null +++ b/var/spack/repos/builtin/packages/scine-sparrow/package.py @@ -0,0 +1,100 @@ +# Copyright 2013-2022 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 * + + +class ScineSparrow(CMakePackage): + """Sparrow: fast semiempirical quantum chemical calculations. + + When publishing results obtained with Sparrow, please cite + the corresponding release as archived on Zenodo + (DOI 10.5281/zenodo.3244105; please use the DOI of the respective + release). + + In addition, we kindly request you to cite the following article + when using Sparrow: + + T. Husch, A. C. Vaucher, M. Reiher, "Semiempirical molecular orbital + models based on the neglect of diatomic differential overlap + approximation", Int. J. Quantum Chem., 2018, 118, e25799. + """ + + homepage = "https://scine.ethz.ch/download/sparrow" + url = "https://github.com/qcscine/sparrow/archive/refs/tags/3.1.0.tar.gz" + git = "https://github.com/qcscine/sparrow.git" + + maintainers = ["frobnitzem"] + + version("master", branch="master") + version("3.1.0", "91412de0f2670a1735c4ca76406db5bea04236eeac0bc1f93ccfe18104aa7ce4") + version("3.0.0", "70636871694c9363ae3fb2df5050bddb22667b71d875d5a7e9afd872f6a2b65d") + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/5.0.1.tar.gz", + sha256="089ca500fc191e04a968ea166d2fe80178b227bc2e6d3926523fa2eee5f6492d", + placement="_dev", + ) + + variant("python", default=False, description="Build Python extension module") + + depends_on("boost+filesystem+program_options cxxstd=17 @1.65.0:") + depends_on("cereal") + depends_on("eigen@3.3.2:") + depends_on("googletest", type="build") + depends_on("python@3.6:", when="+python", type=("build", "run")) + depends_on("py-pip", when="+python", type="build") + depends_on("scine-core") + depends_on("scine-utilities") + depends_on("scine-utilities+python", when="+python", type=("build", "run")) + depends_on("yaml-cpp") + + extends("python", when="+python") + + def patch(self): + os.rmdir("dev") + os.rename("_dev", "dev") + + if self.spec.satisfies("platform=darwin"): + filter_file( + r"SparrowApp PROPERTIES OUTPUT_NAME sparrow", + 'SparrowApp PROPERTIES OUTPUT_NAME sparrow SUFFIX ".exe"', + "src/Sparrow/CMakeLists.txt", + ) + + filter_file( + "#include ", + "#include \n#include ", + "src/Sparrow/Sparrow/Implementations/Dftb/Utils/SkfParser.cpp", + ) + + def cmake_args(self): + args = [ + self.define("SCINE_BUILD_TESTS", self.run_tests), + self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec), + self.define("SCINE_MARCH", ""), + self.define("BOOST_ROOT", self.spec["boost"].prefix), + self.define("BOOST_LIBRARY_DIR", self.spec["boost"].libs.directories[0]), + self.define("BOOST_INCLUDE_DIR", self.spec["boost"].headers.directories[0]), + self.define("BOOST_NO_SYSTEM_PATHS", True), + self.define("Boost_NO_BOOST_CMAKE", True), + ] + if "+python" in self.spec: + args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)) + return args + + # Adapted from ddd in MacPorts: cmake will build the executable + # "sparrow" right next to the copy of the source directory "Sparrow". + # As HFS+ is case-insensitive by default this will loosely FAIL. + # Mitigate this by building/installing 'sparrowexe' + # on Darwin and fixing up post install. + @run_after("install") + def _rename_exe_on_darwin(self): + if self.spec.satisfies("platform=darwin"): + with working_dir(self.prefix.bin): + os.rename("sparrow.exe", "sparrow") diff --git a/var/spack/repos/builtin/packages/scine-utilities/package.py b/var/spack/repos/builtin/packages/scine-utilities/package.py new file mode 100644 index 0000000000..bf7a8fa9d6 --- /dev/null +++ b/var/spack/repos/builtin/packages/scine-utilities/package.py @@ -0,0 +1,81 @@ +# Copyright 2013-2022 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 * + + +class ScineUtilities(CMakePackage): + """Contains functionality which is used in most SCINE modules.""" + + homepage = "https://scine.ethz.ch" + url = "https://github.com/qcscine/utilities/archive/refs/tags/6.0.0.tar.gz" + git = "https://github.com/qcscine/utilities.git" + + version("master", branch="master") + version("6.0.0", "e4387d5562b7442a8e31e4dfc028bacfeb6d12e39f2d8aa6effc6db380863b4a") + version("5.0.0", "a304c89d9a196fe304f38610dea6b066d74590c0d434e4bd09a9796340700465") + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/5.0.1.tar.gz", + sha256="089ca500fc191e04a968ea166d2fe80178b227bc2e6d3926523fa2eee5f6492d", + placement="_dev", + ) + + variant("python", default=False, description="Build Python extension module") + + depends_on("boost+system+filesystem+program_options cxxstd=17 @1.65.0:") + depends_on("eigen@3:") + depends_on("googletest", type="build") + depends_on("lbfgspp", type="build") + depends_on("python@3.6:", when="+python", type=("build", "run")) + depends_on("py-numpy", when="+python", type=("build", "run")) + depends_on("py-pip", when="+python", type="build") + depends_on("py-pybind11@2.6.2:", when="+python", type="build") + depends_on("py-scipy", when="+python", type=("build", "run")) + depends_on("scine-core") + depends_on("yaml-cpp") + + extends("python", when="+python") + + def patch(self): + os.rmdir("dev") + os.rename("_dev", "dev") + + filter_file( + "find_package(pybind11 2.6.2 EXACT QUIET)", + "find_package(pybind11)", + "dev/cmake/ImportPybind11.cmake", + ) + + filter_file( + "#include ", + "#include \n#include ", + "src/Utils/Utils/ExternalQC/Turbomole/TurbomoleHelper.cpp", + ) + + filter_file( + "#include ", + "#include \n#include ", + "src/Utils/Utils/IO/TurbomoleMinimalBasisfile.cpp", + ) + + def cmake_args(self): + args = [ + self.define("SCINE_BUILD_TESTS", self.run_tests), + self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec), + self.define("SCINE_MARCH", ""), + self.define("BOOST_ROOT", self.spec["boost"].prefix), + self.define("BOOST_LIBRARY_DIR", self.spec["boost"].libs.directories[0]), + self.define("BOOST_INCLUDE_DIR", self.spec["boost"].headers.directories[0]), + self.define("BOOST_NO_SYSTEM_PATHS", True), + self.define("Boost_NO_BOOST_CMAKE", True), + ] + if "+python" in self.spec: + args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)) + + return args diff --git a/var/spack/repos/builtin/packages/scine-xtb/package.py b/var/spack/repos/builtin/packages/scine-xtb/package.py new file mode 100644 index 0000000000..c1219abb3a --- /dev/null +++ b/var/spack/repos/builtin/packages/scine-xtb/package.py @@ -0,0 +1,59 @@ +# Copyright 2013-2022 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 * + + +class ScineXtb(CMakePackage): + """Wrapper around xtb to export it into the Scine tool chain.""" + + homepage = "https://scine.ethz.ch" + url = "https://github.com/qcscine/xtb_wrapper/archive/refs/tags/1.0.2.tar.gz" + git = "https://github.com/qcscine/xtb_wrapper.git" + + version("master", branch="master") + version("1.0.2", "9beb1103467f3cfd9ad33beb2f3ec650bc3e6dc7094876774be3cc4e6f210487") + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/5.0.1.tar.gz", + sha256="089ca500fc191e04a968ea166d2fe80178b227bc2e6d3926523fa2eee5f6492d", + placement="_dev", + ) + + variant("python", default=False, description="Build Python extension module") + + depends_on("boost+system+filesystem+program_options cxxstd=17 @1.65.0:") + depends_on("eigen@3:") + depends_on("pkgconfig", type="build") + depends_on("python@3.6:", when="+python", type=("build", "run")) + depends_on("py-pip", when="+python", type="build") + depends_on("scine-core") + depends_on("scine-utilities") + depends_on("scine-utilities+python", when="+python", type=("build", "run")) + depends_on("xtb") + + extends("python", when="+python") + + def patch(self): + os.rmdir("dev") + os.rename("_dev", "dev") + + def cmake_args(self): + args = [ + self.define("SCINE_BUILD_TESTS", self.run_tests), + self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec), + self.define("SCINE_MARCH", ""), + self.define("BOOST_ROOT", self.spec["boost"].prefix), + self.define("BOOST_LIBRARY_DIR", self.spec["boost"].libs.directories[0]), + self.define("BOOST_INCLUDE_DIR", self.spec["boost"].headers.directories[0]), + self.define("BOOST_NO_SYSTEM_PATHS", True), + self.define("Boost_NO_BOOST_CMAKE", True), + ] + if "+python" in self.spec: + args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)) + return args diff --git a/var/spack/repos/builtin/packages/sparrow/package.py b/var/spack/repos/builtin/packages/sparrow/package.py index 195c1b57b1..dac5cf3690 100644 --- a/var/spack/repos/builtin/packages/sparrow/package.py +++ b/var/spack/repos/builtin/packages/sparrow/package.py @@ -32,6 +32,7 @@ class Sparrow(CMakePackage): version( "3.0.0", sha256="70636871694c9363ae3fb2df5050bddb22667b71d875d5a7e9afd872f6a2b65d", + deprecated=True, ) resource( -- cgit v1.2.3-60-g2f50