aboutsummaryrefslogtreecommitdiff
path: root/shellgenerator.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-01-12 14:31:43 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-01-12 14:31:43 +0200
commit5969b1ed334454ff6907c521493d635bfb878456 (patch)
treeb3d6f9478695f17cd545d6720359b0a282735970 /shellgenerator.py
parent8d038ef09ed709f7db95504f04b13678ecf79816 (diff)
downloadmeson-5969b1ed334454ff6907c521493d635bfb878456.zip
meson-5969b1ed334454ff6907c521493d635bfb878456.tar.gz
meson-5969b1ed334454ff6907c521493d635bfb878456.tar.bz2
Can install Man files.
Diffstat (limited to 'shellgenerator.py')
-rwxr-xr-xshellgenerator.py29
1 files changed, 25 insertions, 4 deletions
diff --git a/shellgenerator.py b/shellgenerator.py
index 79dab1a..6b98b65 100755
--- a/shellgenerator.py
+++ b/shellgenerator.py
@@ -73,16 +73,37 @@ echo Run compile.sh before this or bad things will happen.
outfile = self.create_shfile(outfilename, message)
self.generate_target_install(outfile)
self.generate_header_install(outfile)
+ self.generate_man_install(outfile)
outfile.close()
def make_subdir(self, outfile, dir):
cmdlist = ['mkdir', '-p', dir]
- outfile.write(' '.join(shell_quote(cmdlist)) + '\n')
+ outfile.write(' '.join(shell_quote(cmdlist)) + ' || exit\n')
def copy_file(self, outfile, filename, outdir):
cpcommand = ['cp', filename, outdir]
- cpcommand = ' '.join(shell_quote(cpcommand)) + '\n'
+ cpcommand = ' '.join(shell_quote(cpcommand)) + ' || exit\n'
outfile.write(cpcommand)
+
+ def generate_man_install(self, outfile):
+ prefix = self.environment.get_prefix()
+ manroot = os.path.join(prefix, self.environment.get_mandir())
+ man = self.build.get_man()
+ if len(man) != 0:
+ outfile.write('\necho Installing man pages.\n')
+ else:
+ outfile.write('\necho This project has no man pages to install.\n')
+ for m in man:
+ for f in m.get_sources():
+ num = f.split('.')[-1]
+ subdir = 'man' + num
+ absdir = os.path.join(manroot, subdir)
+ self.make_subdir(outfile, absdir)
+ srcabs = os.path.join(self.environment.get_source_dir(), f)
+ dstabs = os.path.join(manroot,
+ os.path.join(subdir, f + '.gz'))
+ cmd = "gzip < '%s' > '%s' || exit\n" % (srcabs, dstabs)
+ outfile.write(cmd)
def generate_header_install(self, outfile):
prefix = self.environment.get_prefix()
@@ -91,12 +112,12 @@ echo Run compile.sh before this or bad things will happen.
if len(headers) != 0:
outfile.write('\necho Installing headers.\n')
else:
- outfile.write('\necho This project has no headers to install.')
+ outfile.write('\necho This project has no headers to install.\n')
for h in headers:
outdir = os.path.join(incroot, h.get_subdir())
self.make_subdir(outfile, outdir)
for f in h.get_sources():
- abspath = os.path.join(self.environment.get_source_dir(), f)
+ abspath = os.path.join(self.environment.get_source_dir(), f) # FIXME
self.copy_file(outfile, abspath, outdir)
def generate_target_install(self, outfile):