Skip to content

build on macos (case insensitive filesystem)

As noted in #1602 (closed) and internally on EP2234, it would be convenient to build OpenFOAM on a case-insensitive filesystem.

Types of name clashes:

Direct name clashes

When directory names or files with the same directory resolve to identical names. Eg,

  • src/OpenFOAM/matrices/lduMatrix
  • src/OpenFOAM/matrices/LduMatrix

Symlink name clashes

When files exist in different directories, but resolve to identical names. Eg,

  • Vector.H, vector.H
  • PrimitivePatch.H, primitivePatch.H

after using wmakeLnInclude this will resolve to the same symlink name.

Name masking

Not sure how many of these, but the OpenFOAM string.H will definitely be found first when the compiler tries to resolve #include "<string.h>". No way around this other than renaming as foamString.Horfoam_string.H`.

Other considerations

Not sure if the case-insensitivity means that the make rules resolve the .C endings as .c and then invoke the c compiler instead of c++.

Some of these issues will be similar to what @wyldckat experienced with his Window port. Many of the conflicts from template files were resolved by renaming template files (eg, Vector.H -> Vector.T.H). Could work here, but not really sold on the naming convention.

For the others in the MacOS world (@alexey, @gerlero, @philipc, etc) - has anyone already started working on this, or even just thought about good ways to tackle it?