Enable ARM macOS runner, fixes for SCOTCH allocation and PETSc detection on macOS
Issue/feature addressed
This MR enables a macOS ARM-based M1 runner. It also addresses two macOS-related issues with Scotch graph allocation and PETSc detection.
Proposed solution
Most of the work in this branch has been in setting up the runner itself. However two regressions were identified. Firstly, SCOTCH_Graph
behaviour seems to be different in newer versions of Scotch. Secondly, PETSc detection recently moved to use pkg-config
in !1454 (merged), but when the library is not in the main linker path, linking fails.
Implementation
Scotch graph allocation now uses the SCOTCH_graphAlloc
function in SubStructuredGraph.cpp
:
SCOTCH_graphAlloc *scGraph = SCOTCH_graphAlloc();
PETSc detection now uses the PETSC_LINK_LIBRARIES
variable, if available:
# Prefer to use absolute paths to avoid separate link directories on
# some platforms (e.g. macOS). However not available in all CMake
# versions.
IF (DEFINED PETSC_LINK_LIBRARIES)
SET(PETSC_LIBRARIES ${PETSC_LINK_LIBRARIES} CACHE INTERNAL "")
ENDIF()
Tests
No new tests, but macOS runner now enabled.
Suggested reviewers
Notes
@mgreen I think this is the thing that was causing runtime errors for you, might be worth checking this now works for you.
Checklist
[ ] Functions and classes, or changes to them, are documented.[ ] User guide/documentation is updated.-
Changelog is updated. -
Suitable tests added for new functionality. -
Contributed code is correctly formatted. (See the contributing guidelines). [ ] License added to any new files.-
No extraneous files have been added (e.g. compiler output or test data files).