Skip to content

Remove MAPL_SUPPORT_MAPL3 build option#4634

Merged
tclune merged 4 commits into
developfrom
feature/#4633-remove-mapl-support-mapl3
Apr 9, 2026
Merged

Remove MAPL_SUPPORT_MAPL3 build option#4634
tclune merged 4 commits into
developfrom
feature/#4633-remove-mapl-support-mapl3

Conversation

@tclune
Copy link
Copy Markdown
Collaborator

@tclune tclune commented Apr 9, 2026

Types of change(s)

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Trivial change (affects only documentation or cleanup)
  • Refactor (no functional changes, no api changes)

Checklist

  • Tested this change with a run of GEOSgcm
  • Ran the Unit Tests (make tests or ctest)

Description

Removes the MAPL_SUPPORT_MAPL3 CMake build option and all associated MAPL_TARGET_PREFIX variable logic.

The dual-mount MAPL2+MAPL3 approach has been abandoned. MAPL2 and MAPL3 share 23+ files with identical Fortran module names and C symbols, making it impossible to build both as independent CMake targets without vtable mismatches and symbol ambiguity errors. This approach is superseded by a single-mount MAPL3-only strategy.

What was removed:

  • MAPL_SUPPORT_MAPL3 CMake option() declaration and all if (MAPL_SUPPORT_MAPL3) / if (NOT MAPL_SUPPORT_MAPL3) guards in the top-level CMakeLists.txt — all previously gated subdirectories (Apps, generic, gridcomps, docs, benchmarks, Python, Tests) are now unconditionally included
  • MAPL_TARGET_PREFIX variable replaced with the literal MAPL across all component CMakeLists.txt files
  • #ifdef MAPL_SUPPORT_MAPL3 preprocessor guards removed from MAPL/MAPL.F90; module is now unconditionally module MAPL / module MAPL_Mod
  • add_compile_definitions(MAPL_SUPPORT_MAPL3) call removed

Related Issue

Closes #4633

Removes the MAPL_SUPPORT_MAPL3 CMake option and all associated
MAPL_TARGET_PREFIX variable logic (GH-4633).

The dual-mount MAPL2+MAPL3 approach has been abandoned due to
vtable mismatches and symbol ambiguity from 23+ shared source
files with identical Fortran module names and C symbols. The
strategy is superseded by a single-mount MAPL3-only approach.

Changes:
- Remove option() declaration and if/else blocks in top-level
  CMakeLists.txt; all previously gated subdirectories (Apps,
  generic, gridcomps, docs, benchmarks, Python, Tests) are now
  unconditionally added
- Replace ${MAPL_TARGET_PREFIX} with literal 'MAPL' across all
  component CMakeLists.txt files
- Remove MAPL_SUPPORT_MAPL3 guards from MAPL/CMakeLists.txt and
  base/tests/CMakeLists.txt
- Remove #ifdef MAPL_SUPPORT_MAPL3 preprocessor guards from
  MAPL/MAPL.F90; module is now unconditionally 'module MAPL'
- Update CHANGELOG.md
@tclune tclune added 0 Diff The changes in this pull request have verified to be zero-diff with the target branch. 📈 MAPL3 MAPL 3 Related labels Apr 9, 2026
@tclune tclune marked this pull request as ready for review April 9, 2026 14:40
@tclune tclune requested a review from a team as a code owner April 9, 2026 14:40
Comment thread CHANGELOG.md
@tclune tclune merged commit 787b635 into develop Apr 9, 2026
39 of 40 checks passed
@tclune tclune deleted the feature/#4633-remove-mapl-support-mapl3 branch April 9, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

0 Diff The changes in this pull request have verified to be zero-diff with the target branch. 📈 MAPL3 MAPL 3 Related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants