Skip to content

Use cxx20 standard for build #62468

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

nyalldawson
Copy link
Collaborator

The main motivation here is allowing us to drop the downstream patches adding < cxx20 support to pdf4qt, which will allow us to resync that library (after moving the main builds to qt 6 only, that is)

But the secondary benefit is that we'll be able to cleanup a bunch of cxx20 todos in the code, including replacing custom equality operators with compiler default ones.

@github-actions github-actions bot added this to the 3.46.0 milestone Jun 30, 2025
Copy link
Contributor

github-actions bot commented Jun 30, 2025

🪟 Windows builds

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

🪟 Windows Qt6 builds

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

# require c++17
target_compile_features(qgis_3d PRIVATE cxx_std_17)
# require c++20
target_compile_features(qgis_3d PRIVATE cxx_std_20)
Copy link
Member

@m-kuhn m-kuhn Jun 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should kill most of these for individual targets.

We should only specify it for targets that actually make use of c++20 features (and flag it PUBLIC if this needs to propagate to downstream targets). This can also just be specified on the pdf4qt target -- or for simplicity on the qgis_core target.

I don't see any risks involved with that (worst case build will fail for targets where we forgot to specify this)

Copy link
Contributor

The QGIS project highly values your contribution and would love to see this work merged! Unfortunately this PR has not had any activity in the last 14 days and is being automatically marked as "stale". If you think this pull request should be merged, please check

  • that all unit tests are passing

  • that all comments by reviewers have been addressed

  • that there is enough information for reviewers, in particular

    • link to any issues which this pull request fixes

    • add a description of workflows which this pull request fixes

    • add screenshots if applicable

  • that you have written unit tests where possible
    In case you should have any uncertainty, please leave a comment and we will be happy to help you proceed with this pull request.
    If there is no further activity on this pull request, it will be closed in a week.

@github-actions github-actions bot added the stale Uh oh! Seems this work is abandoned, and the PR is about to close. label Jul 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Uh oh! Seems this work is abandoned, and the PR is about to close.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants