diff options
author | Aleksey Filippov <alekseyf@google.com> | 2018-01-29 14:46:07 +0000 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-02-04 00:43:00 +0200 |
commit | 8fe816101467e66792251b4f57e0ddddb537764a (patch) | |
tree | 619898a29c07275a49ecf1a5df87a8cc22f3b799 /mesonbuild/backend/ninjabackend.py | |
parent | f25070ec089719a607c545c1b44a678c6bbce5c9 (diff) | |
download | meson-8fe816101467e66792251b4f57e0ddddb537764a.zip meson-8fe816101467e66792251b4f57e0ddddb537764a.tar.gz meson-8fe816101467e66792251b4f57e0ddddb537764a.tar.bz2 |
Refactor and simplify install_subdir()
- Pass exclude_files and exclude_directories relative to src_dir,
same as specified by user and documented in public install_subdir().
- Make do_copydir() interface similar to do_copyfile():
install src_dir contents to dst_dir.
- Remove src_prefix/src_dir code, it adds confusion and duplicates arguments.
Use single src_dir parameter instead.
- Make callers specify that src_dir contents should be installed
under dst_dir/basename(src_dir) if necessary.
- Use os.path.relpath() instead of string manipulations on paths.
- Add documentation to do_copydir(): specify types and add usage example.
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index ecb43aa..d9c56df 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -847,17 +847,14 @@ int dummy; def generate_subdir_install(self, d): for sd in self.build.get_install_subdirs(): - inst_subdir = sd.installable_subdir.rstrip('/') - idir_parts = inst_subdir.split('/') - if len(idir_parts) > 1: - subdir = os.path.join(sd.source_subdir, '/'.join(idir_parts[:-1])) - inst_dir = idir_parts[-1] - else: - subdir = sd.source_subdir - inst_dir = sd.installable_subdir - src_dir = os.path.join(self.environment.get_source_dir(), subdir) - dst_dir = os.path.join(self.environment.get_prefix(), sd.install_dir) - d.install_subdirs.append([src_dir, inst_dir, dst_dir, sd.install_mode, sd.exclude]) + src_dir = os.path.join(self.environment.get_source_dir(), + sd.source_subdir, + sd.installable_subdir).rstrip('/') + dst_dir = os.path.join(self.environment.get_prefix(), + sd.install_dir, + os.path.basename(src_dir)) + d.install_subdirs.append([src_dir, dst_dir, sd.install_mode, + sd.exclude]) def generate_tests(self, outfile): self.serialize_tests() |