Skip to content

feat: Bump to C++20 and update TPLs - #4127

Open
victorapm wants to merge 23 commits into
developfrom
feature/paludettomag1/tpls-next
Open

feat: Bump to C++20 and update TPLs#4127
victorapm wants to merge 23 commits into
developfrom
feature/paludettomag1/tpls-next

Conversation

@victorapm

@victorapm victorapm commented Aug 21, 2026

Copy link
Copy Markdown
Contributor
  • Move minimal supported C++ standard from C++17 to C++20
  • Update TPLs (VTK 9.7, RAJA suite 2026, fmt 12) and update geos codebase accordingly
  • Add ROCm build-only (no executed tests) to CI testing
  • Bump blt to 0.7.2
  • Fix various CMake warnings

Depends on GEOS-DEV/thirdPartyLibs#361
Depends on GEOS-DEV/LvArray#356

@victorapm victorapm self-assigned this Aug 21, 2026
@victorapm victorapm added the ci: run CUDA builds Allows to triggers (costly) CUDA jobs label Aug 21, 2026
@victorapm
victorapm requested a review from wrtobin as a code owner August 21, 2026 03:05
@victorapm victorapm added the flag: requires updated TPL(s) Needs a specific TPL PR label Aug 21, 2026
@victorapm victorapm added the ci: run integrated tests Allows to run the integrated tests in GEOS CI label Aug 21, 2026
@victorapm victorapm added the ci: run device builds Allows to run the device (CUDA/HIP) builds label Aug 21, 2026
Comment thread src/cmake/GeosxOptions.cmake Outdated
#include "../include/fmt/ranges.h"
#include "../include/fmt/xchar.h"
#define GEOS_FMT_NS fmt
#else // use C++20's <format>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm a bit confused here. Since we are not enforcing C++20, shouldn't we always use <format>?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Hi Dick, this branch is enforcing C++20, but {fmt} remains intentional because GEOS uses fmt::runtime, fmt::join, fmt::is_formattable and custom fmt::formatter. Also, <format> is not uniformly supported by the CUDA/HIP backends. Maybe we can address this on a separate PR

@victorapm victorapm added the flag: requires rebaseline Requires rebaseline branch in integratedTests label Aug 21, 2026
@victorapm

Copy link
Copy Markdown
Contributor Author

Rebaseline needed because of a baseline mismatch (3051 vs 3095 faces) caused by the VTK 9.4.2 → 9.7.0 upgrade

@jafranc jafranc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Great work @victorapm

It start having quite some patch for this or that compiler depending on the version. Would it worth having a page in the doc stating those ?

@victorapm

Copy link
Copy Markdown
Contributor Author

Thanks, Jacques! You mean the checks on the vtk version? If so, I think we can remove those and just support the path for the newest version (9.7.0)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run device builds Allows to run the device (CUDA/HIP) builds ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: ready for review flag: requires rebaseline Requires rebaseline branch in integratedTests flag: requires updated TPL(s) Needs a specific TPL PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants