From c5b3d913a3cbadbef0f378968db7711d82920295 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Fri, 8 Feb 2013 20:41:13 +0200 Subject: Can pickle and load install data object. --- builder_install.py | 15 +++++++++++++-- generators.py | 13 ++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/builder_install.py b/builder_install.py index 79e046d..a31c133 100755 --- a/builder_install.py +++ b/builder_install.py @@ -14,10 +14,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys +import sys, pickle + +class InstallData(): + def __init__(self, src_dir, build_dir): + self.src_dir = src_dir + self.build_dir = build_dir + +def do_install(datafilename): + ifile = open(datafilename, 'rb') + d = pickle.load(ifile) if __name__ == '__main__': if len(sys.argv) != 2: print('Installer script for Builder. Do not run on your own, mmm\'kay?') print('%s [install info file]' % sys.argv[0]) - datafile = sys.argv[1] + datafilename = sys.argv[1] + do_install(datafilename) + diff --git a/generators.py b/generators.py index 173fa7c..9f468fa 100755 --- a/generators.py +++ b/generators.py @@ -14,8 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os, stat, re +import os, stat, re, pickle import interpreter, nodes +from builder_install import InstallData def shell_quote(cmdlist): return ["'" + x + "'" for x in cmdlist] @@ -167,7 +168,14 @@ class NinjaGenerator(Generator): 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): + #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()) + ofile = open(install_data_file, 'wb') + pickle.dump(d, ofile) def generate_tests(self, outfile): script_root = self.get_script_root() @@ -197,7 +205,6 @@ class NinjaGenerator(Generator): rule = 'rule STATIC_LINKER\n' command = ' command = %s $LINK_FLAGS $out $in\n' % \ ' '.join(static_linker.get_exelist()) - description = ' description = Static linking library $out\n\n' outfile.write(rule) outfile.write(command) -- cgit v1.1