osxbundle: add optional source path argument

This commit is contained in:
der richter 2024-02-17 22:40:46 +01:00
parent 166f039edb
commit f9197e07ee
1 changed files with 11 additions and 9 deletions

View File

@ -24,11 +24,11 @@ def target_binary(binary_name):
return os.path.join(target_directory(binary_name), return os.path.join(target_directory(binary_name),
os.path.basename(binary_name)) os.path.basename(binary_name))
def copy_bundle(binary_name): def copy_bundle(binary_name, src_path):
if os.path.isdir(bundle_path(binary_name)): if os.path.isdir(bundle_path(binary_name)):
shutil.rmtree(bundle_path(binary_name)) shutil.rmtree(bundle_path(binary_name))
shutil.copytree( shutil.copytree(
os.path.join('TOOLS', 'osxbundle', bundle_name(binary_name)), os.path.join(src_path, 'TOOLS', 'osxbundle', bundle_name(binary_name)),
bundle_path(binary_name)) bundle_path(binary_name))
def copy_binary(binary_name): def copy_binary(binary_name):
@ -41,10 +41,11 @@ def apply_plist_template(plist_file, version):
def sign_bundle(binary_name): def sign_bundle(binary_name):
sh('codesign --force --deep -s - ' + bundle_path(binary_name)) sh('codesign --force --deep -s - ' + bundle_path(binary_name))
def bundle_version(): def bundle_version(src_path):
version = 'UNKNOWN' version = 'UNKNOWN'
if os.path.exists('VERSION'): version_path = os.path.join(src_path, 'VERSION')
x = open('VERSION') if os.path.exists(version_path):
x = open(version_path)
version = x.read() version = x.read()
x.close() x.close()
return version return version
@ -58,16 +59,17 @@ def main():
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
if len(args) != 1: if len(args) < 1 or len(args) > 2:
parser.error("incorrect number of arguments") parser.error("incorrect number of arguments")
else: else:
binary_name = args[0] binary_name = args[0]
src_path = args[1] if len(args) > 1 else "."
version = bundle_version().rstrip() version = bundle_version(src_path).rstrip()
print("Creating Mac OS X application bundle (version: %s)..." % version) print("Creating Mac OS X application bundle (version: %s)..." % version)
print("> copying bundle skeleton") print("> copying bundle skeleton")
copy_bundle(binary_name) copy_bundle(binary_name, src_path)
print("> copying binary") print("> copying binary")
copy_binary(binary_name) copy_binary(binary_name)
print("> generating Info.plist") print("> generating Info.plist")
@ -75,7 +77,7 @@ def main():
if options.deps: if options.deps:
print("> bundling dependencies") print("> bundling dependencies")
print(sh(" ".join(["TOOLS/dylib-unhell.py", target_binary(binary_name)]))) print(sh(" ".join([os.path.join(src_path, "TOOLS/dylib-unhell.py"), target_binary(binary_name)])))
print("> signing bundle with ad-hoc pseudo identity") print("> signing bundle with ad-hoc pseudo identity")
sign_bundle(binary_name) sign_bundle(binary_name)