aboutsummaryrefslogtreecommitdiff
path: root/builder_install.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-23 13:18:56 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-23 13:18:56 +0200
commit603625b61c7b1aa073a4008a5b6ce812b56f8015 (patch)
tree0ad7326e0e774ad2ecc80b07e85cdf9eca5ccfc6 /builder_install.py
parent816752f51a5fad8200eefe17908903ccd11bd014 (diff)
downloadmeson-603625b61c7b1aa073a4008a5b6ce812b56f8015.zip
meson-603625b61c7b1aa073a4008a5b6ce812b56f8015.tar.gz
meson-603625b61c7b1aa073a4008a5b6ce812b56f8015.tar.bz2
Builder -> Meson renaming.
Diffstat (limited to 'builder_install.py')
-rwxr-xr-xbuilder_install.py117
1 files changed, 0 insertions, 117 deletions
diff --git a/builder_install.py b/builder_install.py
deleted file mode 100755
index 28d70ec..0000000
--- a/builder_install.py
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/python3 -tt
-
-# Copyright 2013 Jussi Pakkanen
-
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys, pickle, os, shutil, subprocess, gzip
-
-class InstallData():
- def __init__(self, prefix, depfixer, dep_prefix):
- self.prefix = prefix
- self.targets = []
- self.depfixer = depfixer
- self.dep_prefix = dep_prefix
- self.headers = []
- self.man = []
- self.data = []
-
-def do_install(datafilename):
- ifile = open(datafilename, 'rb')
- d = pickle.load(ifile)
- destdir_var = 'DESTDIR'
- if destdir_var in os.environ:
- if d.prefix[0] == '/':
- subdir = d.prefix[1:]
- else:
- subdir = d.prefix
- d.prefix = os.path.join(os.environ[destdir_var], subdir)
- install_targets(d)
- install_headers(d)
- install_man(d)
- install_data(d)
-
-def install_data(d):
- for i in d.data:
- fullfilename = i[0]
- outfilerel = i[1]
- outdir = os.path.join(d.prefix, os.path.split(outfilerel)[0])
- outfilename = os.path.join(outdir, os.path.split(outfilerel)[1])
- os.makedirs(outdir, exist_ok=True)
- print('Installing %s to %s.' % (fullfilename, outdir))
- shutil.copyfile(fullfilename, outfilename)
- shutil.copystat(fullfilename, outfilename)
-
-def install_man(d):
- for m in d.man:
- outfileroot = m[1]
- outfilename = os.path.join(d.prefix, outfileroot)
- full_source_filename = m[0]
- outdir = os.path.split(outfilename)[0]
- os.makedirs(outdir, exist_ok=True)
- print('Installing %s to %s.' % (full_source_filename, outdir))
- if outfilename.endswith('.gz') and not full_source_filename.endswith('.gz'):
- open(outfilename, 'wb').write(gzip.compress(open(full_source_filename, 'rb').read()))
- else:
- shutil.copyfile(full_source_filename, outfilename)
- shutil.copystat(full_source_filename, outfilename)
-
-def install_headers(d):
- for t in d.headers:
- fullfilename = t[0]
- outdir = os.path.join(d.prefix, t[1])
- fname = os.path.split(fullfilename)[1]
- outfilename = os.path.join(outdir, fname)
- print('Installing %s to %s' % (fname, outdir))
- os.makedirs(outdir, exist_ok=True)
- shutil.copyfile(fullfilename, outfilename)
- shutil.copystat(fullfilename, outfilename)
-
-def install_targets(d):
- for t in d.targets:
- fname = t[0]
- outdir = os.path.join(d.prefix, t[1])
- aliases = t[2]
- outname = os.path.join(outdir, fname)
- should_strip = t[3]
- print('Installing %s to %s' % (fname, outname))
- os.makedirs(outdir, exist_ok=True)
- shutil.copyfile(fname, outname)
- shutil.copystat(fname, outname)
- if should_strip:
- print('Stripping target')
- ps = subprocess.Popen(['strip', outname], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- (stdo, stde) = ps.communicate()
- if ps.returncode != 0:
- print('Could not strip file.\n')
- print('Stdout:\n%s\n' % stdo.decode())
- print('Stderr:\n%s\n' % stde.decode())
- sys.exit(1)
- for alias in aliases:
- os.symlink(fname, os.path.join(outdir, alias))
- p = subprocess.Popen([d.depfixer, outname, d.dep_prefix], stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- (stdo, stde) = p.communicate()
- if p.returncode != 0:
- print('Could not fix dependency info.\n')
- print('Stdout:\n%s\n' % stdo.decode())
- print('Stderr:\n%s\n' % stde.decode())
- sys.exit(1)
-
-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])
- datafilename = sys.argv[1]
- do_install(datafilename)
-