diff options
author | 健美猞猁 <weijianwen@gmail.com> | 2018-09-05 03:49:28 +0800 |
---|---|---|
committer | Adam J. Stewart <ajstewart426@gmail.com> | 2018-09-04 14:49:28 -0500 |
commit | 501669faba73d578fad745954f2deed8d653ebe2 (patch) | |
tree | 41243e8fb341657c280651721da5f5123e4d3f37 | |
parent | 8b9b89b931ad033509e36d0582eb0e44e3686f85 (diff) | |
download | spack-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.py | 55 |
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') |