diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-08 21:07:53 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-08 21:07:53 +0200 |
commit | 9ad292165924bdf8927551d3fdc960066dc3ec41 (patch) | |
tree | a0116e2eb17b87b85fcceb3531e7826e797839c1 | |
parent | c5b3d913a3cbadbef0f378968db7711d82920295 (diff) | |
download | meson-9ad292165924bdf8927551d3fdc960066dc3ec41.zip meson-9ad292165924bdf8927551d3fdc960066dc3ec41.tar.gz meson-9ad292165924bdf8927551d3fdc960066dc3ec41.tar.bz2 |
Can install targets.
-rwxr-xr-x | builder_install.py | 15 | ||||
-rwxr-xr-x | generators.py | 17 |
2 files changed, 25 insertions, 7 deletions
diff --git a/builder_install.py b/builder_install.py index a31c133..4f2a295 100755 --- a/builder_install.py +++ b/builder_install.py @@ -14,16 +14,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys, pickle +import sys, pickle, os, shutil class InstallData(): - def __init__(self, src_dir, build_dir): - self.src_dir = src_dir - self.build_dir = build_dir + def __init__(self): + self.targets = [] def do_install(datafilename): ifile = open(datafilename, 'rb') d = pickle.load(ifile) + for t in d.targets: + fullfilename = t[0] + outdir = t[1] + fname = os.path.split(fullfilename)[1] + outname = os.path.join(outdir, fname) + print('Copying %s to %s' % (fname, outdir)) + os.makedirs(outdir, exist_ok=True) + shutil.copyfile(fullfilename, outname) if __name__ == '__main__': if len(sys.argv) != 2: diff --git a/generators.py b/generators.py index 9f468fa..5100453 100755 --- a/generators.py +++ b/generators.py @@ -171,9 +171,20 @@ class NinjaGenerator(Generator): self.generate_install_data(outfile, install_data) def generate_install_data(self, outfile, install_data_file): - #d['source_dir'] = self.environment.get_source_dir() - #d['build_dir'] = self.environment.get_build_dir() - d = InstallData(self.environment.get_source_dir(), self.environment.get_build_dir()) + prefix = self.environment.get_prefix() + d = InstallData() + 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 + if t.should_install(): + if isinstance(t, interpreter.Executable): + outdir = bindir + else: + 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) |