diff options
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() |