sparrow: add new package (#29291)

This commit is contained in:
David M. Rogers 2022-03-21 11:59:11 -04:00 committed by GitHub
parent dba7a03daa
commit 6d0b59b7ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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")