summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/zziplib/package.py
blob: ce98d4c3fc5d9e89f6937cd1b74e1c4f0aee6f49 (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
# 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 Zziplib(AutotoolsPackage):
    """The zziplib provides read access to zipped files in a zip-archive, using
    compression based solely on free algorithms provided by zlib.  It also
    provides a functionality to overlay the archive filesystem with the
    filesystem of the operating system environment."""

    homepage = "https://github.com/gdraheim/zziplib"
    url = "https://github.com/gdraheim/zziplib/archive/v0.13.69.tar.gz"

    # Switch to CMake from 0.13.70, first working release is 0.13.71
    version("0.13.72", sha256="93ef44bf1f1ea24fc66080426a469df82fa631d13ca3b2e4abaeab89538518dc")
    version("0.13.69", sha256="846246d7cdeee405d8d21e2922c6e97f55f24ecbe3b6dcf5778073a88f120544")

    patch("python2to3.patch", when="@:0.13.69")

    build_directory = "spack-build"

    depends_on("python@3.5:", type="build", when="@0.13.71:")
    depends_on("cmake", type="build", when="@0.13.71:")
    depends_on("python", type="build")
    depends_on("zlib")
    # see zzip/CMakeLists.txt
    depends_on("coreutils", type="build", when="@0.13.71:")
    depends_on("pkgconfig", type="build", when="@0.13.71:")

    @when("@0.13.71:")
    def autoreconf(self, spec, prefix):
        touch("configure")

    @when("@0.13.71:")
    def _cmake_args(self):
        spec = self.spec
        args = []
        zlib = spec["zlib"]
        # Do not use self.define('VAR', path) unless a CMakePackage
        args.extend(
            [
                "-DZLIB_LIBRARY:FILEPATH={0}".format(zlib.libs[0]),
                "-DZLIB_INCLUDE_DIR:FILEPATH={0}".format(zlib.headers.directories[0]),
            ]
        )
        args.append("-DPYTHON_EXECUTABLE:FILEPATH={0}".format(spec["python"].command.path))
        args.append("-DCMAKE_INSTALL_PREFIX:PATH={0}".format(spec.prefix))

        return args

    def configure_args(self):
        args = ["--with-zlib={0}".format(self.spec["zlib"].prefix)]
        return args

    @when("@0.13.71:")
    def configure(self, spec, prefix):
        with working_dir("spack-build", create=True):
            cmake_args = self._cmake_args()
            cmake("..", *cmake_args)