summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author健美猞猁 <weijianwen@gmail.com>2018-09-05 03:49:28 +0800
committerAdam J. Stewart <ajstewart426@gmail.com>2018-09-04 14:49:28 -0500
commit501669faba73d578fad745954f2deed8d653ebe2 (patch)
tree41243e8fb341657c280651721da5f5123e4d3f37
parent8b9b89b931ad033509e36d0582eb0e44e3686f85 (diff)
downloadspack-501669faba73d578fad745954f2deed8d653ebe2.tar.gz
spack-501669faba73d578fad745954f2deed8d653ebe2.tar.bz2
spack-501669faba73d578fad745954f2deed8d653ebe2.tar.xz
spack-501669faba73d578fad745954f2deed8d653ebe2.zip
Pack dlang's stdlib into dmd. (#9131)
* Update dmd. * Build dmd and druntime. * Build dmd. * Restore edit. * Flake8.
-rw-r--r--var/spack/repos/builtin/packages/dmd/package.py55
1 files changed, 50 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/dmd/package.py b/var/spack/repos/builtin/packages/dmd/package.py
index 1396d80878..dcbae9f869 100644
--- a/var/spack/repos/builtin/packages/dmd/package.py
+++ b/var/spack/repos/builtin/packages/dmd/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import os
class Dmd(MakefilePackage):
@@ -36,16 +37,60 @@ class Dmd(MakefilePackage):
depends_on('openssl')
depends_on('curl')
+ # https://wiki.dlang.org/Building_under_Posix
+ resource(name='druntime',
+ url='https://github.com/dlang/druntime/archive/v2.081.1.tar.gz',
+ md5='49c8ba48fcb1e53d553a52d8ed7f9164',
+ placement='druntime')
+ resource(name='phobos',
+ url='https://github.com/dlang/phobos/archive/v2.081.1.tar.gz',
+ md5='ccf4787275b490eb2ddfc6713f9e9882',
+ placement='phobos')
+ resource(name='tools',
+ url='https://github.com/dlang/tools/archive/v2.081.1.tar.gz',
+ md5='a3bc7ed3d60b39712ef011bf19b3d427',
+ placement='tools')
+
def setup_environment(self, spack_env, run_env):
run_env.prepend_path('PATH', self.prefix.linux.bin64)
+ run_env.prepend_path('LIBRARY_PATH', self.prefix.linux.lib64)
+ run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.linux.lib64)
def edit(self, spec, prefix):
- makefile = FileFilter('posix.mak')
- makefile.filter('$(PWD)/../install', prefix, string=True)
+ # Move contents to dmd/
+ mkdir = which('mkdir')
+ mkdir('dmd')
+ mv = which('mv')
+ dmd_files = [f for f in os.listdir('.')
+ if not f.startswith(('dmd',
+ 'druntime',
+ 'phobos',
+ 'tools',
+ 'spack-build'))]
+ for f in dmd_files:
+ mv(f, 'dmd')
+ # Edit
+ dmd_mak = FileFilter('dmd/posix.mak')
+ dmd_mak.filter('$(PWD)/../install', prefix, string=True)
+ dr_mak = FileFilter('druntime/posix.mak')
+ dr_mak.filter('INSTALL_DIR=.*', 'INSTALL_DIR={0}'.format(prefix))
+ pb_mak = FileFilter('phobos/posix.mak')
+ pb_mak.filter('INSTALL_DIR = .*', 'INSTALL_DIR = {0}'.format(prefix))
+ tl_mak = FileFilter('tools/posix.mak')
+ tl_mak.filter('INSTALL_DIR = .*', 'INSTALL_DIR = {0}'.format(prefix))
def build(self, spec, prefix):
- make('-f', 'posix.mak', 'AUTO_BOOTSTRAP=1')
+ with working_dir('dmd'):
+ make('-f', 'posix.mak', 'AUTO_BOOTSTRAP=1')
+ with working_dir('phobos'):
+ make('-f', 'posix.mak')
def install(self, spec, prefix):
- make('-f', 'posix.mak', 'install', 'AUTO_BOOTSTRAP=1')
- install_tree('src', prefix.src)
+ with working_dir('dmd'):
+ make('-f', 'posix.mak', 'install', 'AUTO_BOOTSTRAP=1')
+ with working_dir('phobos'):
+ make('-f', 'posix.mak', 'install')
+ with working_dir('tools'):
+ make('-f', 'posix.mak', 'install')
+ with working_dir('druntime'):
+ make('-f', 'posix.mak', 'install')