Developers’ Frequently Asked Questions (FAQ)¶
General¶
C++ standard and compilers’ support¶
You need C++17 support to build GeoModel.
On Linux, you should not have any issue related to that if you use a quite recent distribution.
On macOS, however, there is no proper C++17 support in the native compiler clang until Mojave (10.14) and the related Xcode. Thus, if you are running an older macOS release, you only have two options:
-
You update your system to a more recent macOS release
-
You install GCC on your system and you compile GeoModel with that compiler instead of the native compiler
clang. This will let you keep your system as it is, without the need of upgrading the main operating system. (If you choose this second option, we assume you are familiar enough with compilers and development in general, so you don’t need step-by-step instructions to compile GeoModel with GCC.)
Visualization¶
macOS – Why Do I see everything in 2D / flattened ???¶
That’s what we call the “Flatland Bug”, we fear… We have discovered that, on macOS, some combinations of clang compiler’s and Xcode’s versions make the 3D engine we use, Coin, fail somehow.
That only happens on macOS and you get that when you compile the GeoModelVisualization‘s graphics dependencies, Coin and SoQt on the affected platforms. The bug affects macOS Catalina (not in the 100% of the cases, still investigating why) and Big Sur (100%).
We are still investigating this.
There is no fix for it yet, but there is a workaround. For the moment, we would suggest to
What you must do to go around it is:
-
install
gmex(i.e., theGeoModelVisualizationexecutable) from the Homebrew packages (as explained here ); gmex on brew was built from Mojave and it is not affected by Flatland.brew install geomodelvisualization -
clone
GeoModeland build everything butGeoModelVisualizationlocally. You may wish to develop code underGeoModelbut rarely as an end user you want to develop anything underGeoModelVisualization. (As a quick reminder: to excludeGeoModelVisualizationfrom the compilation, you can simply omit the CMakeGEOMODEL_BUILD_VISUALIZATIONoption from the build configuration) -
Code that is client of
GeoModel(as, for example,GeoModelATLAS) is totally unaffected by the Flatland Bug and what you built until now should be fine as it is