CMake: use separate host Python interpreter and target development artifacts when cross-compiling - #67302
Open
ar-jan wants to merge 1 commit into
Open
CMake: use separate host Python interpreter and target development artifacts when cross-compiling#67302ar-jan wants to merge 1 commit into
ar-jan wants to merge 1 commit into
Conversation
…s when cross-compiling Gated on CMP0190 NEW, available from CMake 4.1+.
Contributor
🪟 Windows Qt6 buildsDownload Windows Qt6 builds of this PR for testing. 🍎 MacOS Qt6 buildsDownload MacOS Qt6 builds of this PR for testing. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Cross-compiling QGIS with a recent version of CMake fails at
find_package(Python 3.11 REQUIRED COMPONENTS Interpreter Development), because it expects lookups for separate host Python interpreter and target development artifacts (CMP0190 isNEW, starting from CMake 4.1.).This patch makes it so when
CMP0190=NEWandCMAKE_CROSSCOMPILINGare both detected, separate host Python interpreter and target development artifacts are set. Otherwise, the lookup is unchanged.This would remove the need for patching QGIS when packaging for distributions that support cross-compiling, like I used for Void Linux here.
I've manually tested a native x86_64 build and a cross-compiled aarch64 build.
I'm admittedly not familiar with how much coordination there is around downstream packaging of QGIS, but this seems to me like a helpful change.
I think backporting would also be helpful to support packaging efforts.
AI tool usage
I used gpt-5.6-sol for implementing the patch.