aboutsummaryrefslogtreecommitdiff
path: root/meson_install.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-11-03 23:28:47 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2014-11-03 23:28:47 +0200
commit0c86f30d4bd1fa53df139dd3a182381477a1fc12 (patch)
treec974c606dcf480d265e9e77e1a15490a407f95b7 /meson_install.py
parenta500c6cfa885ab9da7527d6f983f162f31e47710 (diff)
downloadmeson-0c86f30d4bd1fa53df139dd3a182381477a1fc12.zip
meson-0c86f30d4bd1fa53df139dd3a182381477a1fc12.tar.gz
meson-0c86f30d4bd1fa53df139dd3a182381477a1fc12.tar.bz2
Can install entire subtrees with one command. Closes #14.
Diffstat (limited to 'meson_install.py')
-rwxr-xr-xmeson_install.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/meson_install.py b/meson_install.py
index 67b3a07..0d6db82 100755
--- a/meson_install.py
+++ b/meson_install.py
@@ -30,6 +30,7 @@ class InstallData():
self.po_package_name = ''
self.po = []
self.install_script = None
+ self.install_subdirs = []
def do_install(datafilename):
ifile = open(datafilename, 'rb')
@@ -41,6 +42,7 @@ def do_install(datafilename):
else:
subdir = d.prefix
d.prefix = os.path.join(os.environ[destdir_var], subdir)
+ install_subdirs(d) # Must be first, because it needs to delete the old subtree.
install_targets(d)
install_headers(d)
install_man(d)
@@ -48,6 +50,15 @@ def do_install(datafilename):
install_po(d)
run_install_script(d)
+def install_subdirs(d):
+ for (src_dir, dst_dir) in d.install_subdirs:
+ # Python's copytree works in strange ways.
+ last_level = os.path.split(src_dir)[-1]
+ final_dst = os.path.join(dst_dir, last_level)
+ shutil.rmtree(final_dst, ignore_errors=True)
+ shutil.copytree(src_dir, final_dst, symlinks=True)
+ print('Installing subdir %s to %s.' % (src_dir, dst_dir))
+
def install_po(d):
packagename = d.po_package_name
for f in d.po: