ecmwf / ecbuild

A CMake-based build system, consisting of a collection of CMake macros and functions that ease the managing of software build systems
https://ecbuild.readthedocs.io
Apache License 2.0
26 stars 25 forks source link

Stricter match condition for _fail strings #64

Closed cresswellp closed 3 weeks ago

cresswellp commented 2 months ago

ecbuild_check_fortran triggers a string match for "_fail" against a filename held in ecbuild, which can cause an unintended match if the path to the ecbuild installation contains this string. This is easily done in an IFS build if the branch name contains this string, because the cloned ecbuild will sit inside a directory named after the IFS branch, e.g. .../user_cycle_fix_failures/source/ecbuild/...

The result is that any Fortran feature being checked for is accidentally removed from the list of features to check, resulting in an empty feature list and an instant build failure: CRITICAL - [Fortran] Expected to find only one feature. Found 0 --

Making the match condition stricter against the files it's actually looking for solves the problem.