topic "Getting started with TheIDE";
[2 $$0,0#00000000000000000000000000000000:Default]
[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param]
[a83;*R6 $$2,5#31310162474203024125188417583966:caption]
[H4;b83;*4 $$3,5#07864147445237544204411237157677:title]
[b167;a42;C2 $$4,6#40027414424643823182269349404212:item]
[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text]
[l288;a17;ph2 $$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]
[l192;i150;a42;phO2;2 $$19,19#37291126451403010472971723210990:point]
[i167;phO9;2 $$20,20#33190467493505743255250994711132:step]
[b83;*+117 $$21,21#2AC2FD302E8CD436942CC99374D81489:SubTitle]
[{_}%EN-US 
[s2; Getting started with TheIDE&]
[s3; Table of contents&]
[s0; &]
[s0; [^`#1^ 1. Launching TheIDE]&]
[s0; [^`#2^ 2. Assemblies and Packages]&]
[s0;     [^`#2`_1^ 2.1 Selecting assembly]&]
[s0;     [^`#2`_2^ 2.2 Creating new package]&]
[s0; [^`#3^ 3. Configuring package]&]
[s0; [^`#4^ 4. Creating new file]&]
[s0; [^`#5^ 5. Explanations about TheIDE]&]
[s0;     [^`#5`_1^ 5.1 What is stored where?]&]
[s0;     [^`#5`_2^ 5.2 Package organizer]&]
[s0;     [^`#5`_3^ 5.3 Build methods]&]
[s0;     [^`#5`_4^ 5.4 Output mode]&]
[s0; &]
[s3;:1: 1. Launching TheIDE&]
[s5; After installing U`+`+ find the appropriate TheIDE executable 
file and launch it. By default the file should be localized in 
the installation directory. However, it can depends on the operating 
system and the way you installed U`+`+.&]
[s3;:2: 2. Assemblies and Packages&]
[s5; In this section we show how to create your own main package. 
It can be treated as project, solution etc.&]
[s21;:2`_1: 2.1 Selecting assembly&]
[s5; After you launch TheIDE on the screen window should appear. 
This window acts as a hub. When you can select/create packages 
and assemblies. You can back to this window at any time when 
you are working with TheIDE. Just select from main menu `"File`" 
entry and select `"Set main package`" option.&]
[s5; First of all, select assembly which is called `"MyApps`". It 
exists by default and it is intended to store user application. 
To select this assembly click on its name once. If you want to 
read more about assemblies see [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ t
his reference page] for more details. In brief assembly is a 
collection of packages.&]
[s5; &]
[s0;=l160; 
@@rawimage:3475&2319
([encoded data, 22864 characters])
&]
[s5; &]
[s5; In this window you can perform the following operations:&]
[s19; You can create a new assembly by right`-clicking on the assembly 
list and choosing `"New assembly`". If you select an existing 
assembly before this, the directory settings from the existing 
assembly will be used.&]
[s19; If you`'re just getting started, leave this as it is and continue 
creating package process.&]
[s5; &]
[s21;:2`_2: 2.2 Creating new package&]
[s5; To create a new package, press the `"New package`" button localized 
on the bottom of the window. After that on the screen appears 
the package creator.&]
[s5; &]
[s0;= 
@@rawimage:3590&2543
([encoded data, 30504 characters])
&]
[s5; &]
[s5; To create new package you should execute following steps:&]
[s19; Enter a package name, for this example we`'ll type `"main`", 
leave the `"create in`" directory as it is for now (i.e. on MyApps 
directory).&]
[s19; Optionally you can fill in a short description of the package, 
that will appear in the package selection dialog.&]
[s19; It is possible to choose one of predefined templates, but we 
leave it on <empty> for now.&]
[s19; Finally, press the `"Create`" button on the bottom of the window.&]
[s0; &]
[s3;:3: 3. Configuring package&]
[s5; At the beginning, let`'s assume that the package you have created 
is main. Please note, that any package created or selected within 
manager is by default main. To configure it, select `"Main package 
configuration`" from the `"Project`" menu. Alternatively, you 
can right mouse click on package list and select the same option.&]
[s5;  &]
[s0;= 
@@rawimage:3400&1194
([encoded data, 7068 characters])
&]
[s5; &]
[s5; Let`'s take a look at the possibilities available in `"Main 
package configuration`" window:&]
[s19; Here you should set the [^topic`:`/`/ide`/app`/Flags`$en`-us^ configuration 
flags] that your program needs.&]
[s19; For the main package, you must specify at least one possible 
configuration (otherwise you will not see your new package listed 
under the `"MyApps`" assembly `- unless you select `"all packages`" 
`- because only main packages are listed by default).&]
[s19; Just add an empty row for now (right click`->`"Append row`" 
or press Insert key). The `"optional name`" can be left empty 
or you can enter any meaningful description for your own reference.&]
[s19; [/ Note: For windows users: If you add `"GUI`" flag here, the standard 
cin/cout/cerr will not be connected to anything. (so even if 
you start the program from the command line you will not see 
any text`-output).]&]
[s19; Press OK.&]
[s5; Here is a need of small digression. Several predefined templates 
mention in the previous chapter have main package setup by default. 
It means that there is not need to execute above steps. Following 
templates fall under above definition: Basic [*/ `"CtrlLib application`"], 
[*/ `"Core console project`"] and [*/ `"Skylark web application`"].&]
[s5; Not main package can be used as supportive module for your projects. 
You can place their common functions and classes and share between 
other packages. In this way packages delivered by U`+`+ work 
like Core and CtrlLib.&]
[s5; &]
[s3;:4: 4. Creating new file&]
[s5; You can now add files to you package, for this example, add 
a new file `"main.cpp`" to the package. Below is the list of 
steps that will guild you through the process:&]
[s19; Right click on the lower`-left part of TheIDE (or on `"File`" 
in menu) and choose `"Insert package directory file(s)`", type 
`"main.cpp`" and click `"Open`". If the file does not exist, 
it will be created `- that is why you won`'t find `"New file`" 
anywhere in TheIDE, it is just not needed.&]
[s5; &]
[s0;= 
@@rawimage:3894&2524
([encoded data, 56692 characters])
&]
[s5; &]
[s19; Alternatively, in the newer versions of TheIDE, you can create 
new file using `"New`" option from the same menu shown in above 
image. Then simply select file type and choose name for it. This 
method is recommended for newer user, because it is a little 
bit more intuitive and straight forward than creating file by 
insertion (old way).&]
[s19; Type or copy following code into the newly created file:&]
[s5; &]
[s7; // `-`- example `-`- -|&]
[s7; -|#include <iostream>&]
[s7; -|&]
[s7; -|int main()&]
[s7; -|`{&]
[s7; -|-|char dummy;&]
[s7; -|-|std`::cerr << `"Hello, platform! `" << std`::endl;&]
[s7; -|-|std`::cin >> dummy;&]
[s7; -|-|&]
[s7; -|-|return 0;&]
[s7; -|`}&]
[s7; // `-`- example `-`-&]
[s5; &]
[s19; If you have configured your compiler previously (you probably 
did, either the installer instructed you how to do it or it was 
done automatically), you can start the program by clicking on 
execute 
@@rawimage:100&100
(iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAAAAAAAAAHqZRakAAACEElEQVQ4jaWSz0tUURTHP+e+MTCzsAQHUatJCI2gRWkkhRBFLYpWQbRw0ybaWAtdSC0CoSBCBP+AVuUqiBZt2kRFRbUIIqIg/EGtLEadeTP33XtOi+dUS6UDBy6Hy+d8vnDgP0vOjt6/cmz40O1fKS1mgCqmStSIqaGmWIyoGRYjUZXWJl/5+Glx/NHUhZnCwNDA9KbmFtfRvKHFLdWqTgMzhTSYS3+ublg9DeYAChaNyYu9GwZcujVHDjAFwIeIAaZGVFAMVSOqEoPlbYqPxu5iK1FjDsAMAHGCmGFOMDFEBecEEYdIRBIjUUch5P815ADXIDlARBAnJE5wiSAOEgdNScLk41NMPDyCJVkOiLm5M82JiPwBOcm3J4mQCDgH9eDpau9jdHYQH2poI0LjwZoBAGaMPRjGLOA14EOgs62XvuIgK7UKZ2ZKtNlUDghZ9sdAADNDRAjqObFvhGj5USnG9/IC+7uGWPUp79IRSuNsK9halgSwRhQzasETTZlb+kKmgaAZWcxYrq9woPsoq1mVV+nzpYKq/o2w1ohQCzVCDHRs7SFoJJryozzP9i1F3i+84PXXD1TrHJRzV2dni92d5zVGNCoxRlSV5fbL1LzHq6cWPHva+zlcOsnb+Zc8+/yGndVrT57evXF63ZfXf5PKyL3j1jPB4o4x9v5rva7adZ2KarK5XI+l8h2+Nea/AbjMJEcWh0TKAAAAAElFTkSuQmCC)
 icon localized on main tool bar or by pressing CTRL`+F5 &]
[s19; After program launch, you can close it by typing any letter. 
On the other hand, it can be ended by simply closing terminal 
window.&]
[s19; Now you know how to use TheIDE to compile basic C`+`+ program. 
Looking at the rest of documentation will give you better idea 
how to unleash the full power of TheIDE and U`+`+. The best parts 
to continue would be probably [^topic`:`/`/ide`/app`/PackagesAssembliesAndNests`$en`-us^ P
ackages, Assemblies and Nests] and [^topic`:`/`/ide`/app`/ConfiguringPackagesAssemblies`$en`-us^ t
heir configuration.] something about the key technologies utilized 
in TheIDE: [^topic`:`/`/ide`/app`/Assist`$en`-us^ Assist`+`+], [^topic`:`/`/ide`/app`/Topic`$en`-us^ T
opic`+`+], [^topic`:`/`/ide`/app`/Blitz`$en`-us^ Blitz] or even 
one of the tutorials linked from Manual section, if you want 
to learn more about how to use U`+`+.&]
[s5; &]
[s3;:5: 5. Explanations about TheIDE&]
[s21;:5`_1: 5.1 What is stored where?&]
[s5; When you use TheIDE for the first time, it can be confusing 
to see that settings like static/shared building, execute`-, 
include`- and linker`- paths can be set in multiple places (for 
instance, in Project`->Package organizer, in Setup`->Build methods 
and by clicking on the current build method in the main screen 
(at the top, e.g. `"GCC Debug`").&]
[s5; In the next part of this paragraph, we look at all configuration 
options.&]
[s21;:5`_2: 5.2 Package organizer&]
[s5; Package organizer is localized at `"Project `-> Package organizer`".&]
[s5; &]
[s0;= 
@@rawimage:3766&2611
([encoded data, 36248 characters])
&]
[s5; &]
[s5; Everything set here is stored in the .upp file of the package.&]
[s5; You can use your own (or existing) compiler switches to include 
different things for different builds here, based on configuration 
flags.&]
[s5; Examples:&]
[s5; &]
[ {{1122:2364:6514<288;h1;@(204) [s0; [* When]]
:: [s0; [* Libraries]]
:: [s0; [*/ Comment]]
::@2 [s0; MSC]
:: [s0; SDL]
:: [s0; [/ some extra library to link to with VC`+`+ compiler]]
:: [s0; MSC]
:: [s0; SDL`_ttf]
:: [s0;/ ]
:: [s0; MINGW]
:: [s0; mingw32]
:: [s0;/ ]
:: [s0; MINGW]
:: [s0; SDL.dll]
:: [s0; [/ mingw compiler has special feature to link directly to dll 
files]]
:: [s0; MINGW]
:: [s0; SDL`_ttf.dll]
:: [s0;/ ]}}&]
[s5; &]
[ {{1120:2385:6495<288;h1;@(204) [s0; [* When]]
:: [s0; [* Compiler options]]
:: [s0; [*/ Comment]]
::@2 [s0; MSC]
:: [s0; /Ot]
:: [s0; [/ additional compiler option for VC`+`+.]]}}&]
[s5; &]
[ {{1103:2386:6511<288;h1;@(204) [s0; [* When]]
:: [s0; [* Linker options]]
:: [s0; [*/ Comment]]
::@2 [s0; MSC]
:: [s0; `-nologo]
:: [s0; [/ some extra linker options when compiler is VC`+`+.]]}}&]
[s5; &]
[s21;:5`_3: 5.3 Build methods&]
[s5; Build methods are localized at `"Setup`-> Build methods`".&]
[s5; &]
[s0;= 
@@rawimage:3812&3129
([encoded data, 53612 characters])
&]
[s5; &]
[s5; Look carefully at the settings here. You can create different 
build methods for different compilers.&]
[s5; Each method will store it`'s settings in a .bm file. The .bm 
(bm stands for build method) files are stored in `~/.theide on 
Posix systems and in the executable path of TheIDE on MS Windows.&]
[s5; The boxes at the top of the windows called `"Debug mode default`" 
and `"Release mode default`" do [* NOT] contain the options actually 
used for the current build. (they are not in effect when your 
press F5). These are the default values used for new projects, 
the options for the current build can be set by clicking on the 
current build method in the main screen (top of the screen e.g. 
`"GCC Debug`").&]
[s5; &]
[s0;= 
@@rawimage:3969&885
([encoded data, 27368 characters])
&]
[s5; &]
[s5; Notice that it has two `"pull`-down`" arrows. The left one selects 
the build method. The right one sets the current build mode, 
which occurs in two variants `"Debug`" and `"Release`".&]
[s21;:5`_4: 5.4 Output mode&]
[s5; You will need to click on build method name on main TheIDE tool 
bar. It is shown on above image with `"MINGW Debug`" method.&]
[s5; &]
[s0;= 
@@rawimage:3155&2538
([encoded data, 38908 characters])
&]
[s0; &]
[s5; Link mode &]
[s19; [* All static] `- static external libraries are preferred. This 
is default and recommended option for windows environment.&]
[s19; [* Shared libs] `- shared external libraries are preferred, but 
the program`'s packages will be linked statically. This is default 
and recommended option for POSIX environments.&]
[s19; [* All shared] `- both the external libraries and the applications 
packages will be compiled and linked dynamically.&]
[s5; Target override&]
[s19; You can specify a target`-location for the resulting binary 
here. By default it will be writing to following path:&]
[s19;O_; [/ `"C:`\upp`\out`\`$target`\MINGW.Blitz.Debug.Shared.So.Win32`\foo.exe`".]]]