Scripts: Handle "nothing installed" case gracefully for plugin builds

When (temporarily) turning off the QmlDesigner build, the separate
QmlDesigner plugin repository build results in nothing being installed.
The 7zip call and signing code then fails if the installation directory
isn't even created as a consequence.

Change-Id: I14cc9504b6a5d653ab94845423e266d2cb8caf42
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2025-06-13 15:41:08 +02:00
parent c028858639
commit ef02bd8ea9

View File

@@ -142,6 +142,8 @@ def build(args, paths):
paths.build) paths.build)
def package(args, paths): def package(args, paths):
if not os.path.exists(paths.install):
os.makedirs(paths.install)
if not os.path.exists(paths.result): if not os.path.exists(paths.result):
os.makedirs(paths.result) os.makedirs(paths.result)
if common.is_windows_platform() and args.sign_command: if common.is_windows_platform() and args.sign_command:
@@ -165,15 +167,20 @@ def package(args, paths):
if os.environ.get('SIGNING_IDENTITY'): if os.environ.get('SIGNING_IDENTITY'):
signed_install_path = paths.install + '-signed' signed_install_path = paths.install + '-signed'
common.copytree(paths.install, signed_install_path, symlinks=True) common.copytree(paths.install, signed_install_path, symlinks=True)
apps = [d for d in os.listdir(signed_install_path) if d.endswith('.app')] zippattern = None
if apps: if os.path.exists(signed_install_path):
app = apps[0] apps = [d for d in os.listdir(signed_install_path) if d.endswith('.app')]
common.conditional_sign_recursive(os.path.join(signed_install_path, app), if apps:
lambda ff: ff.endswith('.dylib')) zippattern = apps[0]
common.check_print_call(zip if not zippattern:
+ [os.path.join(paths.result, args.name + '-signed.7z'), os.makedirs(signed_install_path) # if nothing was installed
app], zippattern = '*'
signed_install_path) common.conditional_sign_recursive(signed_install_path,
lambda ff: ff.endswith('.dylib'))
common.check_print_call(zip
+ [os.path.join(paths.result, args.name + '-signed.7z'),
zippattern],
signed_install_path)
def get_paths(args): def get_paths(args):
Paths = collections.namedtuple('Paths', Paths = collections.namedtuple('Paths',