summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/dftd3-lib/package.py
blob: ff42d16ab8631038aafb17f18ec1e542abb0c428 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Copyright 2013-2024 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 Dftd3Lib(MakefilePackage):
    """A dispersion correction for density functionals,
    Hartree-Fock and semi-empirical quantum chemical methods"""

    homepage = "https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/dft-d3"
    url = "https://github.com/dftbplus/dftd3-lib/archive/0.9.2.tar.gz"

    version("0.9.2", sha256="4178f3cf2f3e7e982a7084ec66bac92b4fdf164537d9fc0ada840a11b784f0e0")

    # This fixes a concurrency bug, where make would try to start compiling
    # the dftd3 target before the lib target ended.
    # Since the library is small, disabling causes not much harm
    parallel = False

    def edit(self, spec, prefix):
        makefile = FileFilter("make.arch")
        makefile.filter("FC = gfortran", "")
        makefile.filter("LN = gfortran", "LN = $(FC)")

    def install(self, spec, prefix):
        mkdir(prefix.lib)
        mkdir(prefix.bin)
        mkdir(prefix.include)
        install("lib/libdftd3.a", prefix.lib)
        install("prg/dftd3", prefix.bin)
        install("lib/dftd3_api.mod", prefix.include)
        install("lib/dftd3_common.mod", prefix.include)
        install("lib/dftd3_core.mod", prefix.include)
        install("lib/dftd3_pars.mod", prefix.include)
        install("lib/dftd3_sizes.mod", prefix.include)