Improving CMake outputs

This Issue is to discuss the CMake outputs in EaFort. I don't have strong opinions on the best practices with CMake, but the current setup causes non-critical issues.

Topics to be discussed:

  • Colors in outputs
  • Logging levels
  • Whether to ouput flags or not
  • Whether to only output if PROJECT_IS_TOP_LEVEL

Colors in ouputs

Currently EaFort colorizes the CMake output using ANSI escape sequences. However the output may not support ANSI escape codes. For example VSCode's output channel does not, so building EaFort looks very bad:

[cmake] -- The Fortran compiler identification is GNU 12.2.0
[cmake] -- Detecting Fortran compiler ABI info
[cmake] -- Detecting Fortran compiler ABI info - done
[cmake] -- Check for working Fortran compiler: /usr/bin/f95 - skipped
[cmake] -- 
[cmake] -- [1;33mProject: [1;37mEaFort
[cmake] -- 
[cmake] --   - [32mProject Path      [37m: /home/moran/EaFort [32m
[cmake] --   - [32mGIT_BRANCH        [37m: 1-improve-cmakelists-txt-behaviour-when-called-from-a-parent-project [32m
[cmake] --   - [32mGIT_COMMIT_HASH   [37m: 858319dbcc1ae7a9d37d59aac5d2f0e85521f72a [32m
[cmake] -- 
[cmake] --   - [32mCompilation Mode  [37m: Debug [32m
[cmake] -- [32m
[cmake] --   - [32mFortran Compiler  [37m: GNU [32m
[cmake] -- [m
```

The coloring is done only if `NOT WIN32`, but there is not way to check where the output may be redirected, I would suggest dropping the colored output altogether (or at least make it an option that defaults to no coloring).

## Logging levels

Currently none of the CMake `message` calls use [the `<mode>` option](https://cmake.org/cmake/help/v4.0/command/message.html). This options allows to specify a logging level for each message, and the user can then choose what level logging to actually output (default is `STATUS`)

**Note:** Without a `<mode>`, `message` outputs to stderr. It's probably not the intended behaviour for the current messages in EaFort.

## Flags outputting

EaFort outputs flags in two locations:
- `CMAKE_Fortran_FLAGS` in the main `CMakeLists.txt` (`CMAKE_Fortran_FLAGS` is set in `config/fortranFlag.cmake`)
- `Fortran_FLAG` in the `AutoCompile` function (`Fortran_FLAG` is set in `config/fortranFlag.cmake`)

In pactice, both variable should be equal because `CMAKE_Fortran_FLAGS` is set from the value of `Fortran_FLAG`.

However because flags have various scopes in CMake (global, target, source file), those outputs don't give an exact idea of the flags being applied.

## Condition output to `PROJECT_IS_TOP_LEVEL`

Because a lot of the information currently outputted by EaFort might not be wanted when using EaFort as a dependency (e.g. with `FetchContent` or with `ExternalProject`), I suggest wrapping most of the outputting in a `if(PROJECT_IS_TOP_LEVEL)` conditional statement.

Alternatively, one may want to change the logging level when processing files through `FetchContent` or `ExternalProject`, but this does not seem easy to do.