From 6d0b59b7ea4a2ba2fc63e3b088afbf3db0c11fbb Mon Sep 17 00:00:00 2001 From: "David M. Rogers" Date: Mon, 21 Mar 2022 11:59:11 -0400 Subject: sparrow: add new package (#29291) --- .../repos/builtin/packages/sparrow/package.py | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 var/spack/repos/builtin/packages/sparrow/package.py diff --git a/var/spack/repos/builtin/packages/sparrow/package.py b/var/spack/repos/builtin/packages/sparrow/package.py new file mode 100644 index 0000000000..4171f5ee27 --- /dev/null +++ b/var/spack/repos/builtin/packages/sparrow/package.py @@ -0,0 +1,85 @@ +# 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 import * + + +class Sparrow(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/" + url = "https://github.com/qcscine/sparrow/archive/refs/tags/3.0.0.tar.gz" + + maintainers = ["frobnitzem"] + + version( + "3.0.0", + sha256="70636871694c9363ae3fb2df5050bddb22667b71d875d5a7e9afd872f6a2b65d", + ) + + resource( + name="dev", + url="https://github.com/qcscine/development-utils/archive/refs/tags/4.0.0.tar.gz", + sha256="54002c2082b6bb75672ec66bf9cf3935bbdf6b085ed9b4d7174cbdedb7c2275d", + destination="deps", + placement="dev", + ) + + depends_on("eigen@3.3.2:") + depends_on("boost+filesystem+program_options cxxstd=17 @1.65.0:") + depends_on("py-pybind11@2.6.2") + depends_on("py-pip", type="build") + depends_on("yaml-cpp") + depends_on("cereal") + depends_on("googletest") + + def patch(self): + os.rmdir("dev") + os.rename("deps/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( + r"MAKE_CXX_STANDARD 14 PARENT_SCOPE", + "MAKE_CXX_STANDARD 17 PARENT_SCOPE", + "dev/cmake/ComponentSetup.cmake", + ) + + def cmake_args(self): + args = [ + self.define("SCINE_BUILD_PYTHON_BINDINGS", True), + self.define("SCINE_BUILD_TESTS", self.run_tests), + ] + + 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") -- cgit v1.2.3-60-g2f50