summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/zlib/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/zlib/package.py')
-rw-r--r--var/spack/repos/builtin/packages/zlib/package.py60
1 files changed, 30 insertions, 30 deletions
diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py
index 9a445b8173..3b6b1fd18d 100644
--- a/var/spack/repos/builtin/packages/zlib/package.py
+++ b/var/spack/repos/builtin/packages/zlib/package.py
@@ -6,7 +6,11 @@
# Although zlib comes with a configure script, it does not use Autotools
# The AutotoolsPackage causes zlib to fail to build with PGI
-class Zlib(CMakePackage):
+import glob
+import os
+
+
+class Zlib(Package):
"""A free, general-purpose, legally unencumbered lossless
data-compression library.
"""
@@ -37,16 +41,29 @@ class Zlib(CMakePackage):
['libz'], root=self.prefix, recursive=True, shared=shared
)
- def cmake_args(self):
- args = ['-DBUILD_SHARED_LIBS:BOOL=' +
- ('ON' if self._building_shared else 'OFF')]
- return args
+ def win_install(self):
+ build_dir = self.stage.source_path
+ install_tree = {}
+ install_tree["bin"] = glob.glob(os.path.join(build_dir, "*.dll"))
+ install_tree["lib"] = glob.glob(os.path.join(build_dir, "*.lib"))
+ compose_src_path = lambda x: os.path.join(build_dir, x)
+ install_tree["include"] = [compose_src_path("zlib.h"),
+ compose_src_path("zconf.h")]
+ install_tree["share"] = {"man": {"man3": [compose_src_path("zlib.3")]}}
- @property
- def build_directory(self):
- return join_path(self.stage.source_path,
- 'spack-build-shared' if self._building_shared
- else 'spack-build-static')
+ def installtree(dst, tree):
+ for inst_dir in tree:
+ if type(tree[inst_dir]) is list:
+ install_dst = getattr(dst, inst_dir)
+ try:
+ os.makedirs(install_dst)
+ except OSError:
+ pass
+ for file in tree[inst_dir]:
+ copy(file, install_dst)
+ else:
+ installtree(getattr(dst, inst_dir), tree[inst_dir])
+ installtree(self.prefix, install_tree)
def setup_build_environment(self, env):
if '+pic' in self.spec:
@@ -54,27 +71,10 @@ class Zlib(CMakePackage):
if '+optimize' in self.spec:
env.append_flags('CFLAGS', '-O2')
- # Build, install, and check both static and shared versions of the
- # libraries when +shared
- @when('+shared platform=windows')
- def cmake(self, spec, prefix):
- for self._building_shared in (False, True):
- super(Zlib, self).cmake(spec, prefix)
-
- @when('+shared platform=windows')
- def build(self, spec, prefix):
- for self._building_shared in (False, True):
- super(Zlib, self).build(spec, prefix)
-
- @when('+shared platform=windows')
- def check(self):
- for self._building_shared in (False, True):
- super(Zlib, self).check()
-
def install(self, spec, prefix):
- if 'platform=windows' in self.spec and '+shared' in self.spec:
- for self._building_shared in (False, True):
- super(Zlib, self).install(spec, prefix)
+ if 'platform=windows' in self.spec:
+ nmake('-f' 'win32\\Makefile.msc')
+ self.win_install()
else:
config_args = []
if '~shared' in spec: