I can\'t find any info on it, but only the other way around (e.g., how to set CMake to use clang).
I\'ve installed gcc-4.8 using brew, setup all dependencies, header
Just to add that there is also a CMake variable "CMAKE_Fortran_COMPILER" to pick up GNU Fortran rather than clang fortran. But it seems to be missing in the documentation
cmake -DCMAKE_Fortran_COMPILER=/usr/.../bin/gfortran-6.x.0
CMake doesn't (always) listen to CC and CXX. Instead use CMAKE_C_COMPILER and CMAKE_CXX_COMPILER:
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ ...
See also the documentation.
Alternatively, you can provide a toolchain file, but that might be overkill in this case.
it should be enough to use CC and CXX environment variables, but in macOS are not "working as expected".
but it works in this way instead eg:
CXX="gcc-8" CC="gcc-8" cmake ..
Current versions of CMake do not respect the CC and CXX environment variables like one would expect. Specifically if they are absolute paths to the compiler binaries they seem to be ignored. On my system with a freshly compiled cmake 3.7.1 I have to do cmake -H. -Bbuild -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX.
As others have stated it is not a great idea to force a compiler choice within your CMakeLists.txt, however if this is required for your use case here's how you do it:
cmake_minimum_required(VERSION 3.5) # Or whatever version you use
# THIS HAS TO COME BEFORE THE PROJECT LINE
set(CMAKE_C_COMPILER "gcc")
set(CMAKE_CXX_COMPILER "g++")
# THIS HAS TO COME BEFORE THE PROJECT LINE
project(my_project VERSION 0.0.0 LANGUAGES C CXX)
In this case cmake will fail if the indicated compiler is not found. Note that you must set these variables before the project line as this command is what finds and configures the compilers.