Development of the GATE framework started in a simple Visual Studio
Solution. To ensure portability, a switch to
CMake was made.
But now also
CMake requires additional parameters to produce the
When we are only targeting Windows or Linux,
CMake is easy.
It just collects
.cpp files and feeds them to the compiler.
With a great vision comes great responsibility.
CMake build configurations are currently in use:
- MSBUILD Windows 32 bit (Unicode)
- MSBUILD Windows 32 bit (ANSI)
- MSBUILD Windows 32 bit (with WinXP toolchain)
- MSBUILD Windows 64 bit (Unicode)
- MSBUILD Windows ARM 32
- MSBUILD Windows ARM 64
- MSBUILD EFI x64 ABI
- NMAKE Windows 32 bit
- MinGW Windows 32 bit cross compile on Linux
- Codeblocks MinGW
- Codeblocks Unix Makefiles
- MAKE (default system compiler)
- Adaptions for Linux
- Adaptions for NetBSD
- Adaptions for OpenBSD
- Adaptions for FreeBSD
- GCC x64 EFI ABI
- GCC ARMv7 Linux ABI cross compile on Linux X86/X64
- Watcom WMAKE DOS
- Watcom WMAKE NT
Most of these configurations are prepared by simple shell scripts
/scripts folder, that start the compilation process without
any other arguments.
A lot of magic is done in the
CMakeLists.txt files, where compiler
versions and features are evaluated at runtime, as some older or also
newer compilers need additional command line switches to make everything
compilable with the best possible code generation.
Finally, binaries are written into
One major goal is now to standardize all different build variants and to run their scripts automated on a build server.
Notice: Some platforms are not
CMake-ready at the moment:
- Universal Windows Platform
Both are still Visual Studio Solutions that control the proper build steps.
Hopefully they will be managed by
CMake too in the near future.