Can install man files with Ninja.

pull/15/head
Jussi Pakkanen 12 years ago
parent cd9b636fe1
commit cd9b9f8ec5
  1. 14
      builder_install.py
  2. 16
      generators.py

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import sys, pickle, os, shutil, subprocess
import sys, pickle, os, shutil, subprocess, gzip
class InstallData():
def __init__(self, depfixer, dep_prefix):
@ -22,12 +22,24 @@ class InstallData():
self.depfixer = depfixer
self.dep_prefix = dep_prefix
self.headers = []
self.man = []
def do_install(datafilename):
ifile = open(datafilename, 'rb')
d = pickle.load(ifile)
install_targets(d)
install_headers(d)
install_man(d)
def install_man(d):
for m in d.man:
fullfilename = m[0]
outfilename = m[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())
def install_headers(d):
for t in d.headers:

@ -173,7 +173,7 @@ class NinjaGenerator(Generator):
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_man_install(d)
#self.generate_data_install(outfile)
ofile = open(install_data_file, 'wb')
pickle.dump(d, ofile)
@ -204,6 +204,20 @@ class NinjaGenerator(Generator):
i = [abspath, outdir]
d.headers.append(i)
def generate_man_install(self, d):
prefix = self.environment.get_prefix()
manroot = os.path.join(prefix, self.environment.get_mandir())
man = self.build.get_man()
for m in man:
for f in m.get_sources():
num = f.split('.')[-1]
subdir = 'man' + num
srcabs = os.path.join(self.environment.get_source_dir(), f)
dstabs = os.path.join(manroot,
os.path.join(subdir, f + '.gz'))
i = [srcabs, dstabs]
d.man.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