summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/libtree/package.py
blob: 5eed802797c605a7d4aa141c8761544fa3c6b47b (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# 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 spack.build_systems.cmake
import spack.build_systems.makefile
from spack.package import *


class Libtree(MakefilePackage, CMakePackage):
    """ldd as a tree"""

    homepage = "https://github.com/haampie/libtree"
    git = "https://github.com/haampie/libtree.git"
    url = "https://github.com/haampie/libtree/archive/refs/tags/v2.0.0.tar.gz"
    maintainers("haampie")

    license("MIT")

    version("master", branch="master")
    version("3.1.1", sha256="6148436f54296945d22420254dd78e1829d60124bb2f5b9881320a6550f73f5c")
    version("3.1.0", sha256="8057edb2dd77b0acf6ceab6868741993979dccd41fc41a58bde743f11666d781")
    version("3.0.4", sha256="38d08d7513a11934a83b13ad5aa44ee2406cca70a8186fa621705df8b8d2ef06")
    version("3.0.3", sha256="7e4589b617775cb3a2b4b8fe03f80b81e43ef16046d680f1517ce52d7be9893f")
    version("3.0.2", sha256="f07c9cf3394cacd1eab15d42b97b9b6787d8bd3b7f6746fe0f39e7d951eebaac")
    version("3.0.1", sha256="20d3cd66f5c74058de9dd594af8ffd639c795d27ab435c588a3cd43911c1604f")
    version("3.0.0", sha256="6f7b069a8e5d86741e18a4c8a7e835ac530ae012dfc9509e00ffa694aa6818b1")
    version("2.0.0", sha256="099e85d8ba3c3d849ce05b8ba2791dd25cd042a813be947fb321b0676ef71883")
    version("1.2.3", sha256="4a912cf97109219fe931942a30579336b6ab9865395447bd157bbfa74bf4e8cf")
    version("1.2.2", sha256="4ccf09227609869b85a170550b636defcf0b0674ecb0785063b81785b1c29bdd")
    version("1.2.1", sha256="26791c0f418b93d502879db0e1fd2fd3081b885ad87326611d992a5f8977a9b0")
    version("1.2.0", sha256="3e74655f22b1dcc19e8a1b9e7796b8ad44bc37f29e9a99134119e8521e28be97")
    version("1.1.4", sha256="38648f67c8fa72c3a4a3af2bb254b5fd6989c0f1362387ab298176db5cbbcc4e")
    version("1.1.3", sha256="4c681d7b67ef3d62f95450fb7eb84e33ff10a3b9db1f7e195b965b2c3c58226b")
    version("1.1.2", sha256="31641c6bf6c2980ffa7b4c57392460434f97ba66fe51fe6346867430b33a0374")
    version("1.1.1", sha256="3e8543145a40a94e9e2ce9fed003d2bf68294e1fce9607028a286bc132e17dc4")
    version("1.1.0", sha256="6cf36fb9a4c8c3af01855527d4931110732bb2d1c19be9334c689f1fd1c78536")
    version("1.0.4", sha256="b15a54b6f388b8bd8636e288fcb581029f1e65353660387b0096a554ad8e9e45")
    version("1.0.3", sha256="67ce886c191d50959a5727246cdb04af38872cd811c9ed4e3822f77a8f40b20b")

    build_system(
        conditional("cmake", when="@:2"), conditional("makefile", when="@3:"), default="makefile"
    )

    def url_for_version(self, version):
        if version < Version("2.0.0"):
            return (
                "https://github.com/haampie/libtree/releases/download/v{0}/sources.tar.gz".format(
                    version
                )
            )

        return "https://github.com/haampie/libtree/archive/refs/tags/v{0}.tar.gz".format(version)

    # Version 2.x and earlier (CMake)
    with when("build_system=cmake"):
        variant("chrpath", default=False, description="Use chrpath for deployment")
        variant("strip", default=False, description="Use binutils strip for deployment")
        depends_on("googletest", type="test")
        depends_on("cmake@3:", type="build")
        depends_on("chrpath", when="+chrpath", type="run")
        depends_on("binutils", when="+strip", type="run")

    # header only dependencies
    depends_on("cpp-termcolor", when="@2.0.0:2", type="build")
    depends_on("cxxopts", when="@2.0.0:2", type="build")
    depends_on("elfio@:3.9", when="@2.0.0:2", type="build")


class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
    def cmake_args(self):
        tests_enabled = "ON" if self.pkg.run_tests else "OFF"
        if self.spec.satisfies("@2.0:"):
            tests_define = "LIBTREE_BUILD_TESTS"
        else:
            tests_define = "BUILD_TESTING"

        return [self.define(tests_define, tests_enabled)]


class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
    @property
    def install_targets(self):
        return ["install", "PREFIX=" + self.prefix]