topic "Build flags";
[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param]
[a83;*R6 $$2,5#31310162474203024125188417583966:caption]
[H4;b83;*2 $$3,5#07864147445237544204411237157677:title]
[b167;a42;C2 $$4,6#40027414424643823182269349404212:item]
[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text]
[l288;a17;2 $$6,6#27521748481378242620020725143825:desc]
[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code]
[b2503;2 $$8,0#65142375456100023862071332075487:separator]
[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base]
[t4167;C2 $$10,0#37138531426314131251341829483380:class]
[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement]
[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam]
[b167;C2 $$13,13#92430459443460461911108080531343:item1]
[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2]
[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate]
[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result]
[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line]
[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title]
[2 $$0,0#00000000000000000000000000000000:Default]
[{_}%EN-US 
[s2; Build flags&]
[s3; [4 Table of contents]&]
[s0; &]
[s0; [^topic`:`/`/ide`/app`/Flags`_en`-us`#1^ 1. Introduction]&]
[s0; [^topic`:`/`/ide`/app`/Flags`_en`-us`#2^ 2. Main configuration 
flags]&]
[s0; [^topic`:`/`/ide`/app`/Flags`_en`-us`#3^ 3. Output method flags]&]
[s0; [^topic`:`/`/ide`/app`/Flags`_en`-us`#4^ 4. Platform flags]&]
[s0; [^topic`:`/`/ide`/app`/Flags`_en`-us`#5^ 5. Flags determining 
the builder]&]
[s0; [^topic`:`/`/ide`/app`/Flags`_en`-us`#6^ 6. Other flags]&]
[s0; &]
[s3;:1: [4 1. Introduction]&]
[s5; 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:&]
[s0; &]
[s0;= 
@@rawimage:2932&795
([encoded data, 63332 characters])
&]
[s0; &]
[s5; 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:&]
[s0; &]
[s0;= 
@@rawimage:2774&1050
([encoded data, 35292 characters])
&]
[s0; &]
[s5; 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.&]
[s3;:2: [4 2. Main configuration flags]&]
[s5; 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:&]
[s0; &]
[ {{2429:7571 [s5;%- [* GUI]]
:: [s5; Build GUI application.]}}&]
[s0; &]
[s0; &]
[s3;:3: [4 3. Output method flags]&]
[s0; &]
[s0; These flags are added based on options in build method dialog.&]
[s0; &]
[ {{2441:7559^ [s5;%- [* DEBUG]]
::= [s5; Output mode is set to Debug (not Release).]
::^ [s5;%- [* DEBUG`_MINIMAL]]
::= [s5; Minimal debug information `- depends on actual builder, usually 
it should provide line numbers information to debugger.]
::^ [s5;%- [* DEBUG`_FULL]]
::= [s5; Full debug info.]
::^ [s5;%- [* SHARED]]
::= [s5; Prefer dynamic libraries when linking.]
::^ [s5;%- [* SO]]
::= [s5; Link non`-main packages as shared libraries (.dll/.so). Implies 
SHARED.]
::^ [s5;%- [* BLITZ]]
::= [s5; Use blitz build.]}}&]
[s0; &]
[s0; &]
[s3;:4: [4 4. Platform flags]&]
[s0; &]
[s0; These flags are added by builder based on target platform.&]
[s0; &]
[ {{2426:7574 [s5;%- [* ANDROID]]
:: [s5; Android]
:: [s5;%- [* WIN32]]
:: [s5; Win32.]
:: [s5;%- [* WIN64]]
:: [s5; Win64]
:: [s5;%- [* POSIX]]
:: [s5; Anything else than WIN32]
:: [s5;%- [* LINUX]]
:: [s5; Linux]
:: [s5;%- [* COCOA]]
:: [s5; macOS]
:: [s5;%- [* FREEBSD]]
:: [s5; FreeBSD]
:: [s5;%- [* OPENBSD]]
:: [s5; OpenBSD]
:: [s5;%- [* NETBSD]]
:: [s5; NetBSD]
:: [s5;%- [* SOLARIS]]
:: [s5; Solaris]}}&]
[s0; &]
[s0; &]
[s3;:5: [4 5. Flags determining the builder]&]
[s5; Following flags are provided by the currently selected build 
method:&]
[s0; &]
[ {{2426:7574 [s5;%- [* MSC71]]
:: [s5; Microsoft Visual C`+`+ 7.1]
:: [s5;%- [* MSC8]]
:: [s5; Microsoft Visual C`+`+ 8.0]
:: [s5;%- [* GCC]]
:: [s5; GCC compiler in implicit mode (32 or 64).]
:: [s5;%- [* GCC32]]
:: [s5; GCC compiler in 32`-bit mode (`-m32)]
:: [s5;%- [* CLANG]]
:: [s5; CLANG compiler in implicit mode.]
:: [s5;%- [* EVC`_ARM]]
:: [s5; Microsoft WinCE C`+`+ ARM complier.]
:: [s5;%- [* EVC`_MIPS]]
:: [s5; Microsoft WinCE C`+`+ MIPS complier.]
:: [s5;%- [* EVC`_SH3]]
:: [s5; Microsoft WinCE C`+`+ SH3 complier.]
:: [s5;%- [* EVC`_SH4]]
:: [s5; Microsoft WinCE C`+`+ SH4 complier.]
:: [s5;%- [* INTEL]]
:: [s5; Intel C`+`+.]}}&]
[s0; &]
[s0; &]
[s3;:6: [4 6. Other flags]&]
[s5; These flags needs to be specify directly by the user. Available 
flags are located below:&]
[s0; &]
[ {{2426:7574 [s5;%- [* X11]]
:: [s5; On POSIX systems turns on X11 backend.]
:: [s5;%- [* NOGTK]]
:: [s5; On POSIX systems turns on X11 backend and prevents linking against 
GTK libraries.]
:: [s5;%- [* USEMALLOC]]
:: [s5; Use malloc to allocate memory instead of U`+`+ allocator.]
:: [s5;%- [* NOAPPSQL]]
:: [s5; Do not create global SQL/SQLR instances.]
:: [s5;%- [* NOMYSQL]]
:: [s5; Disable MySql package.]
:: [s5;%- [* NOPOSTGRESQL]]
:: [s5; Disable PostgreSQL package.]
:: [s5;%- [* DLL]]
:: [s5; Force target to be .DLL. Not typical for U`+`+.]
:: [s5;%- [* DEBUGCODE]]
:: [s5; Allows debugging code in release mode (normally it is allowed 
in debug mode only).]
:: [s5;%- [* MAKE`_LIB]]
:: [s5; 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.]
:: [s5;%- [* MAKE`_MLIB]]
:: [s5; Similar to MAKE`_LIB, but only the main package put into the 
library.]}}&]
[s0; &]
[s0; ]]