Build flags
Table of contents
1. Introduction
2. Main configuration flags
3. Output method flags
4. Platform flags
5. Flags determining the builder
6. Other flags
1. Introduction
Build flags are preprocesor values that are defined during compilation process. Some of theme are provided automatically. On the other hand we have a flags that can be defined by the user directly in TheIDE. Below screenshot presents where you can do it:

You can posses several flags configuration and change it by selecting item in the drop down list ([2]). You can add new configuration or edit existing one in the flags editor ([1]) shown below:

Flags can be combined for single configuration. Each flag needs to be separated with the space. For example we can have "GUI USEMALLOC". This configuration will create GUI application without custom U++ allocator.
2. Main configuration flags
Main configuration flags are provided by the user. Most of the time they are added automatically to the project. This situation happens when you create your package using our "New Package" creator. For example user creates "CtrlLib" application, then "GUI" flag is added automatically. Main configuration flags are located below:
GUI
|
Build GUI application.
|
|
3. Output method flags
These flags are added based on options in build method dialog.
DEBUG
|
Output mode is set to Debug (not Release).
|
DEBUG_MINIMAL
|
Minimal debug information - depends on actual builder, usually it should provide line numbers information to debugger.
|
DEBUG_FULL
|
Full debug info.
|
SHARED
|
Prefer dynamic libraries when linking.
|
SO
|
Link non-main packages as shared libraries (.dll/.so). Implies SHARED.
|
BLITZ
|
Use blitz build.
|
|
4. Platform flags
These flags are added by builder based on target platform.
ANDROID
|
Android
|
WIN32
|
Win32.
|
WIN64
|
Win64
|
POSIX
|
Anything else then WIN32
|
LINUX
|
Linux
|
COCOA
|
macOS
|
FREEBSD
|
FreeBSD
|
OPENBSD
|
OpenBSD
|
NETBSD
|
NetBSD
|
SOLARIS
|
Solaris
|
|
5. Flags determining the builder
Following flags are provided by the currently selected build method:
MSC71
|
Microsoft Visual C++ 7.1
|
MSC8
|
Microsoft Visual C++ 8.0
|
GCC
|
GCC compiler in implicit mode (32 or 64).
|
GCC32
|
GCC compiler in 32-bit mode (-m32)
|
CLANG
|
CLANG compiler in implicit mode.
|
EVC_ARM
|
Microsoft WinCE C++ ARM complier.
|
EVC_MIPS
|
Microsoft WinCE C++ MIPS complier.
|
EVC_SH3
|
Microsoft WinCE C++ SH3 complier.
|
EVC_SH4
|
Microsoft WinCE C++ SH4 complier.
|
INTEL
|
Intel C++.
|
|
6. Other flags
These flags needs to be specify directly by the user. Available flags are located below:
X11
|
On POSIX systems turns on X11 backend.
|
NOGTK
|
On POSIX systems turns on X11 backend and prevents linking against GTK libraries.
|
USEMALLOC
|
Use malloc to allocate memory instead of U++ allocator.
|
NOAPPSQL
|
Do not create global SQL/SQLR instances.
|
NOMYSQL
|
Disable MySql package.
|
NOPOSTGRESQL
|
Disable PostgreSQL package.
|
DLL
|
Force target to be .DLL. Not typical for U++.
|
DEBUGCODE
|
Allows debugging code in release mode (normally it is allowed in debug mode only).
|
MAKE_LIB
|
Special mode that produces library file. This is to be used when converting U++ to regular library. All packages in workspace are placed into this library.
|
MAKE_MLIB
|
Similar to MAKE_LIB, but only the main package put into the library.
|
|
|