diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-08 22:05:46 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-08 22:05:46 +0200 |
commit | cd9b636fe14de75b9fb9f62e675a7ecc879071af (patch) | |
tree | cfb6a330072cf4fe3f4237379d39c16832e222d2 /generators.py | |
parent | cdf99fa3be509bf895c96da7c7ccb46d8dd0b2b0 (diff) | |
download | meson-cd9b636fe14de75b9fb9f62e675a7ecc879071af.zip meson-cd9b636fe14de75b9fb9f62e675a7ecc879071af.tar.gz meson-cd9b636fe14de75b9fb9f62e675a7ecc879071af.tar.bz2 |
Can install headers with Ninja.
Diffstat (limited to 'generators.py')
-rwxr-xr-x | generators.py | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/generators.py b/generators.py index 535e9fe..44a7176 100755 --- a/generators.py +++ b/generators.py @@ -165,21 +165,25 @@ class NinjaGenerator(Generator): def generate_install(self, outfile): script_root = self.get_script_root() install_script = os.path.join(script_root, 'builder_install.py') - install_data = os.path.join(self.environment.get_scratch_dir(), 'install.dat') - outfile.write('build install: CUSTOM_COMMAND | all\n') - outfile.write(" COMMAND = '%s' '%s'\n\n" % (ninja_quote(install_script), ninja_quote(install_data))) - self.generate_install_data(outfile, install_data) - - def generate_install_data(self, outfile, install_data_file): + install_data_file = os.path.join(self.environment.get_scratch_dir(), 'install.dat') depfixer = os.path.join(self.get_script_root(), 'depfixer.py') - - prefix = self.environment.get_prefix() d = InstallData(depfixer, './') # Fixme + + outfile.write('build install: CUSTOM_COMMAND | all\n') + outfile.write(" COMMAND = '%s' '%s'\n\n" % (ninja_quote(install_script), ninja_quote(install_data_file))) + self.generate_target_install(d) + self.generate_header_install(d) + #self.generate_man_install(outfile) + #self.generate_data_install(outfile) + ofile = open(install_data_file, 'wb') + pickle.dump(d, ofile) + + def generate_target_install(self, d): + prefix = self.environment.get_prefix() libdir = os.path.join(prefix, self.environment.get_libdir()) bindir = os.path.join(prefix, self.environment.get_bindir()) - for tmp in self.build.get_targets().items(): - (name, t) = tmp + for t in self.build.get_targets().values(): if t.should_install(): if isinstance(t, interpreter.Executable): outdir = bindir @@ -187,8 +191,18 @@ class NinjaGenerator(Generator): outdir = libdir i = [os.path.join(self.environment.get_build_dir(), self.get_target_filename(t)), outdir] d.targets.append(i) - ofile = open(install_data_file, 'wb') - pickle.dump(d, ofile) + + def generate_header_install(self, d): + prefix = self.environment.get_prefix() + incroot = os.path.join(prefix, self.environment.get_includedir()) + headers = self.build.get_headers() + + for h in headers: + outdir = os.path.join(incroot, h.get_subdir()) + for f in h.get_sources(): + abspath = os.path.join(self.environment.get_source_dir(), f) # FIXME + i = [abspath, outdir] + d.headers.append(i) def generate_tests(self, outfile): script_root = self.get_script_root() |