diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-05-28 14:13:01 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-05-28 14:13:01 +0300 |
commit | 1b78e354a60af228ab0ab9497f3d890064e09caf (patch) | |
tree | d034f9fbd03444ee42481e3f2c99f832d764e9a4 | |
parent | ac152a22827090d0b731e647b312885b222e843d (diff) | |
download | meson-1b78e354a60af228ab0ab9497f3d890064e09caf.zip meson-1b78e354a60af228ab0ab9497f3d890064e09caf.tar.gz meson-1b78e354a60af228ab0ab9497f3d890064e09caf.tar.bz2 |
Join windows-style destdir paths correctly. Closes #567.
-rw-r--r-- | mesonbuild/scripts/meson_install.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/mesonbuild/scripts/meson_install.py b/mesonbuild/scripts/meson_install.py index 20a50f7..07fb83b 100644 --- a/mesonbuild/scripts/meson_install.py +++ b/mesonbuild/scripts/meson_install.py @@ -18,6 +18,13 @@ import sys, pickle, os, shutil, subprocess, gzip, platform from glob import glob from mesonbuild.scripts import depfixer +def destdir_join(d1, d2): + # c:\destdir + c:\prefix must produce c:\destdir\prefix + if len(d1) > 1 and d1[1] == ':' and \ + len(d2) > 1 and d2[1] == ':': + return d1 + d2[2:] + return d1 + d2 + def do_install(datafilename): ifile = open(datafilename, 'rb') d = pickle.load(ifile) @@ -26,7 +33,7 @@ def do_install(datafilename): d.destdir = os.environ[destdir_var] else: d.destdir = '' - d.fullprefix = d.destdir + d.prefix + d.fullprefix = destdir_join(d.destdir, d.prefix) install_subdirs(d) # Must be first, because it needs to delete the old subtree. install_targets(d) @@ -38,7 +45,7 @@ def do_install(datafilename): def install_subdirs(d): for (src_dir, dst_dir) in d.install_subdirs: if os.path.isabs(dst_dir): - dst_dir = d.destdir + dst_dir + dst_dir = destdir_join(d.destdir, dst_dir) else: dst_dir = d.fullprefix + dst_dir # Python's copytree works in strange ways. @@ -55,8 +62,8 @@ def install_data(d): fullfilename = i[0] outfilename = i[1] if os.path.isabs(outfilename): - outdir = d.destdir + os.path.split(outfilename)[0] - outfilename = d.destdir + outfilename + outdir = destdir_join(d.destdir, os.path.split(outfilename)[0]) + outfilename = destdir_join(d.destdir, outfilename) else: outdir = os.path.join(d.fullprefix, os.path.split(outfilename)[0]) outfilename = os.path.join(outdir, os.path.split(outfilename)[1]) |