Can install data.

pull/15/head
Jussi Pakkanen 12 years ago
parent cd9b9f8ec5
commit 2ce0ee6aed
  1. 21
      builder_install.py
  2. 15
      generators.py

@ -23,6 +23,7 @@ class InstallData():
self.dep_prefix = dep_prefix
self.headers = []
self.man = []
self.data = []
def do_install(datafilename):
ifile = open(datafilename, 'rb')
@ -30,6 +31,17 @@ def do_install(datafilename):
install_targets(d)
install_headers(d)
install_man(d)
install_data(d)
def install_data(d):
for i in d.data:
fullfilename = i[0]
outfilename = i[1]
outdir = os.path.split(outfilename)[0]
os.makedirs(outdir, exist_ok=True)
print('Installing %s to %s.' % (fullfilename, outdir))
gzip.open(outfilename, 'w').write(open(fullfilename, 'rb').read())
shutil.copystat(fullfilename, outfilename)
def install_man(d):
for m in d.man:
@ -38,18 +50,19 @@ def install_man(d):
outdir = os.path.split(outfilename)[0]
os.makedirs(outdir, exist_ok=True)
print('Installing %s to %s.' % (fullfilename, outdir))
gzip.open(outfilename, 'w').write(open(fullfilename, 'rb').read())
shutil.copyfile(fullfilename, outfilename)
shutil.copystat(fullfilename, outfilename)
def install_headers(d):
for t in d.headers:
fullfilename = t[0]
outdir = t[1]
fname = os.path.split(fullfilename)[1]
outname = os.path.join(outdir, fname)
outfilename = os.path.join(outdir, fname)
print('Installing %s to %s' % (fname, outdir))
os.makedirs(outdir, exist_ok=True)
shutil.copyfile(fullfilename, outname)
shutil.copyfile(fullfilename, outfilename)
shutil.copystat(fullfilename, outfilename)
def install_targets(d):
for t in d.targets:

@ -174,7 +174,7 @@ class NinjaGenerator(Generator):
self.generate_target_install(d)
self.generate_header_install(d)
self.generate_man_install(d)
#self.generate_data_install(outfile)
self.generate_data_install(d)
ofile = open(install_data_file, 'wb')
pickle.dump(d, ofile)
@ -218,6 +218,19 @@ class NinjaGenerator(Generator):
i = [srcabs, dstabs]
d.man.append(i)
def generate_data_install(self, d):
prefix = self.environment.get_prefix()
dataroot = os.path.join(prefix, self.environment.get_datadir())
data = self.build.get_data()
for de in data:
subdir = os.path.join(dataroot, de.get_subdir())
absdir = os.path.join(self.environment.get_prefix(), subdir)
for f in de.get_sources():
srcabs = os.path.join(self.environment.get_source_dir(), f)
dstabs = os.path.join(absdir, f)
i = [srcabs, dstabs]
d.data.append(i)
def generate_tests(self, outfile):
script_root = self.get_script_root()
test_script = os.path.join(script_root, 'builder_test.py')

Loading…
Cancel
Save