OpenGATE | News: Building a new GATE
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
required results.
When we are only targeting Windows or Linux, CMake
is easy.
It just collects .c
and .cpp
files and feeds them to the compiler.
But:
With a great vision comes great responsibility.
Following different 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
in the /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 /build/TOOLCHAINNAME/deploy/bin
.
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:
- Android
- 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.