message: build, qt: Align frameworks with macOS codesign tool requirements
  Currently the codesign tool fails to sign copied frameworks.
diff: @@ -245,6 +245,7 @@ def copyFramework(framework: FrameworkInfo, path: str, verbose: int) -> Optional
  toDir = os.path.join(path, framework.destinationDirectory)
  toPath = os.path.join(toDir, framework.binaryName)
  + if framework.isDylib():
  if not os.path.exists(fromPath):
  raise RuntimeError(f"No file at {fromPath}")
  @@ -258,35 +259,32 @@ def copyFramework(framework: FrameworkInfo, path: str, verbose: int) -> Optional
  if verbose:
  print("Copied:", fromPath)
  print(" to:", toPath)
  + else:
  + to_dir = os.path.join(path, "Contents", "Frameworks", framework.frameworkName)
  + if os.path.exists(to_dir):
  + return None # Already there
  +
  + from_dir = framework.frameworkPath
  + if not os.path.exists(from_dir):
  + raise RuntimeError(f"No directory at {from_dir}")
  +
  + shutil.copytree(from_dir, to_dir, symlinks=True)
  + if verbose:
  + print("Copied:", from_dir)
  + print(" to:", to_dir)
  +
  + headers_link = os.path.join(to_dir, "Headers")
  + if os.path.exists(headers_link):
  + os.unlink(headers_link)
  +
  + headers_dir = os.path.join(to_dir, framework.binaryDirectory, "Headers")
  + if os.path.exists(headers_dir):
  + shutil.rmtree(headers_dir)
  permissions = os.stat(toPath)
  if not permissions.st_mode & stat.S_IWRITE:
  os.chmod(toPath, permissions.st_mode | stat.S_IWRITE)
  - if not framework.isDylib(): # Copy resources for real frameworks
  -
  - linkfrom = os.path.join(path, "Contents","Frameworks", framework.frameworkName, "Versions", "Current")
  - linkto = framework.version
  - if not os.path.exists(linkfrom):
  - os.symlink(linkto, linkfrom)
  - print("Linked:", linkfrom, "->", linkto)
  - fromResourcesDir = framework.sourceResourcesDirectory
  - if os.path.exists(fromResourcesDir):
  - toResourcesDir = os.path.join(path, framework.destinationResourcesDirectory)
  - shutil.copytree(fromResourcesDir, toResourcesDir, symlinks=True)
  - if verbose:
  - print("Copied resources:", fromResourcesDir)
  - print(" to:", toResourcesDir)
  - fromContentsDir = framework.sourceVersionContentsDirectory
  - if not os.path.exists(fromContentsDir):
  - fromContentsDir = framework.sourceContentsDirectory
  - if os.path.exists(fromContentsDir):
  - toContentsDir = os.path.join(path, framework.destinationVersionContentsDirectory)
  - shutil.copytree(fromContentsDir, toContentsDir, symlinks=True)
  - if verbose:
  - print("Copied Contents:", fromContentsDir)
  - print(" to:", toContentsDir)
  -
  return toPath
  def deployFrameworks(frameworks: List[FrameworkInfo], bundlePath: str, binaryPath: str, strip: bool, verbose: int, deploymentInfo: Optional[DeploymentInfo] = None) -> DeploymentInfo:
  