Phase 30: complete configurable installation and release qualification
This commit is contained in:
parent
afc049e2c8
commit
90eac33a71
18 changed files with 399 additions and 59 deletions
|
|
@ -3,14 +3,23 @@
|
|||
import argparse
|
||||
from pathlib import Path
|
||||
from dist import version
|
||||
from install_layout import directory
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--prefix', required=True)
|
||||
parser.add_argument('--exec-prefix')
|
||||
parser.add_argument('--libdir')
|
||||
parser.add_argument('--includedir')
|
||||
parser.add_argument('--jack', default='')
|
||||
parser.add_argument('--output', type=Path, required=True)
|
||||
args = parser.parse_args()
|
||||
if not args.prefix.startswith('/') or any(c in args.prefix for c in '\n\r\0"$\\'):
|
||||
parser.error('PREFIX must be absolute, without newlines, quotes, $, or backslashes')
|
||||
text = Path('packaging/xtc.pc.in').read_text().replace('@PREFIX@', args.prefix)
|
||||
prefix = directory(args.prefix)
|
||||
exec_prefix = directory(args.exec_prefix or prefix)
|
||||
libdir = directory(args.libdir or exec_prefix / 'lib')
|
||||
includedir = directory(args.includedir or prefix / 'include')
|
||||
def reference(path):
|
||||
return '${prefix}/' + str(path.relative_to(prefix)) if path != prefix and prefix in path.parents else str(path)
|
||||
text = Path('packaging/xtc.pc.in').read_text().replace('@PREFIX@', str(prefix))
|
||||
text = text.replace('@EXEC_PREFIX@', reference(exec_prefix)).replace('@LIBDIR@', reference(libdir)).replace('@INCLUDEDIR@', reference(includedir))
|
||||
text = text.replace('@VERSION@', version(Path.cwd())).replace('@JACK@', args.jack)
|
||||
args.output.parent.mkdir(parents=True, exist_ok=True)
|
||||
args.output.write_text(text)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue