Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🍎 Mac Qt6 .dmg #60039

Draft
wants to merge 24 commits into
base: master
Choose a base branch
from
Draft

🍎 Mac Qt6 .dmg #60039

wants to merge 24 commits into from

Conversation

m-kuhn
Copy link
Member

@m-kuhn m-kuhn commented Jan 2, 2025

Description

Creates macos installers (dmg), based on Qt6/vcpkg for desktop components

  • It provides QGIS, qgis_process, qgis_bench and a few executable binaries
  • The package is created for master, pull requests and releases
  • It creates two builds, one for x64 (intel) and one for arm64 (M) processors
  • It simplifies a lot of cmake code by not building frameworks. If there is a good reason to reintroduce frameworks, I am happy to discuss how to deal with specific use cases for which they are currently used.
  • It separates the Python_SITEARCH directory with an absolute system path (where site-packages is installed on the system) from a new variable QGIS_PYTHON_INSTALL_DIR with relative variable where our python bindings will be installed to (which can be the same path as Python_SITEARCH if the prefix provided through CMAKE_INSTALL_PREFIX and/or DESTDIR matches)
  • It completely removed CMAKE_INSTALL_DIR from cmake code in install directives, to allow for installation on relative paths
  • It does not include QGIS server, if you want to run QGIS server on macos, there are homebrew, conda and other options
  • This removes the current mac bundles (the dependencies in there are outdated)
  • It separates building the application (for development/debugging) from bundling. The macos bundle is only created at bundling time. For debugging, no libraries are copied into the build path.
  • For creating an app and fixing rpath, macdeployqt is used (only minimal usage within cmake)
  • For creating a shiny dmg, create-dmg is used
  • No notarisation or code signing is done (yet)

Fixes #46299

@github-actions github-actions bot added this to the 3.42.0 milestone Jan 2, 2025
Copy link

github-actions bot commented Jan 2, 2025

🧮 Vcpkg update report

Updated packages:
🍇 py-tomli: 2.0.1 -> 2.0.1#1

🪟 Windows builds

Download Windows builds of this PR for testing.
Debug symbols for this build are available here.
(Built from commit 43b13c3)

🪟 Windows Qt6 builds

Download Windows Qt6 builds of this PR for testing.
(Built from commit 43b13c3)

🍎 MacOS Qt6 builds

Download MacOS Qt6 builds of this PR for testing.
This installer is not signed, control+click > open the app to avoid the warning
(Built from commit 43b13c3)

cmake/VcpkgInstallDeps.cmake Outdated Show resolved Hide resolved
@m-kuhn m-kuhn changed the title Mac Qt6 .dmg 🍎 Mac Qt6 .dmg Jan 2, 2025
@m-kuhn
Copy link
Member Author

m-kuhn commented Jan 3, 2025

Creating the dmg on x64 github action runners (macos-13) randomly fails because of "resource busy" in hdiutil. There is not much we can do but retry until we succeed -- which can eventually take a very long time.

@nyalldawson
Copy link
Collaborator

@m-kuhn

Creating the dmg on x64 github action runners (macos-13) randomly fails because of "resource busy" in hdiutil. There is not much we can do but retry until we succeed -- which can eventually take a very long time.

Should we just disable these then? (At least it's only the legacy build)

@m-kuhn
Copy link
Member Author

m-kuhn commented Jan 5, 2025

Possibly, I'm trying to create a zip or a universal app. Last resort would be killing x64

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Native support for Apple Silicon (ARM64 architecture)
3 participants