diff --git a/uppsrc/ide/app.tpp/all.i b/uppsrc/ide/app.tpp/all.i index 8bdfed62a..72814b541 100644 --- a/uppsrc/ide/app.tpp/all.i +++ b/uppsrc/ide/app.tpp/all.i @@ -102,3 +102,7 @@ TOPIC("umk$en-us") #include "umk$en-us.tppi" END_TOPIC +TOPIC("upp$en-us") +#include "upp$en-us.tppi" +END_TOPIC + diff --git a/uppsrc/ide/app.tpp/upp$en-us.tpp b/uppsrc/ide/app.tpp/upp$en-us.tpp new file mode 100644 index 000000000..5b8c53158 --- /dev/null +++ b/uppsrc/ide/app.tpp/upp$en-us.tpp @@ -0,0 +1,253 @@ +topic "U++ package file format"; +[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;C@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[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;*C+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[C2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[{_}%EN-US +[s2; U`+`+ package file format&] +[s0; All the information about packages is stored in a text file +with the same name as the package and .upp extension. This file +stores list of files that belong into the package and also all +the settings that are set in Package organizer. This article +aims to document the syntax of the .upp file.&] +[s0; &] +[s0; Each section of .upp file begins with a keyword and ends with +semicolon. The recognized section keywords are:&] +[ {{2500:2500:2500:2500f0;FNg0;GN [s7;l160; [2 acceptflags]&] +[s7;l160; [2 charset]&] +[s7;l160; [2 custom]&] +[s7;l160; [2 description]] +:: [s7;l160; [2 file]&] +[s7;l160; [2 flags]&] +[s7;l160; [2 include]&] +[s7;l160; [2 library]] +:: [s7;l160; [2 link]&] +[s7;l160; [2 optimize`_size]&] +[s7;l160; [2 optimize`_speed]&] +[s7;l160; [2 options]] +:: [s7;l160; [2 mainconfig]&] +[s7;l160; [2 noblitz]&] +[s7;l160; [2 target]&] +[s7;l160; [2 uses]]}}&] +[s3; &] +[s3; Accepted flags&] +[s5; Each package can specify a list of flags that it can use to +provide special or optimized functionality. Such flags can be +then passed with dot prefix and will be only applied to main +package and all packages that list it among the accepted flags. +This provides a way how to minimize the number of packages that +need to be rebuilt when the flags are changed.&] +[ {{1914:8086f0;g0;h1; [s5; Syntax:] +:: [s5; [C@5 acceptflags `[,`]`*;]] +:: [s5; Example:] +:: [s5; [C@5 acceptflags NOGTK, GUI;]]}}&] +[s5; &] +[s3; Encoding&] +[s5; The default encoding for all the files in the package can be +specified using [C@5 charset] keyword. &] +[ {{1914:8086f0;g0;h1; [s5; Syntax:] +:: [s5; [C@5 charset ;]] +:: [s5; Example:] +:: [s5; [C@5 charset `"UTF`-8`";]]}}&] +[s5; &] +[s3; Custom build steps&] +[s5; Each package can invoke so called `"custom build steps`" which +are invoked either at compile time on all file with given extension +or when linking, if the extension is one of the special values +pre`-link or post`-link. The build step consists of command to +execute and specification of output files, which might be further +processed by TheIDE. This can be used for example to generate +sources on the fly or to apply some post`-processing on the final +executables. The command and output may contain a number of variables +enclosed in `'`$(...)`' that are replaced upon evaluation:&] +[ {{2833:7167<448;>640;f0;g0;h3; [s5;b17;a17; [C@5 FILE]] +:: [s5;b17;a17; current file name] +:: [s5;b17;a17; [C@5 TITLE]] +:: [s5;b17;a17; current file name without extension] +:: [s5;b17;a17; [C@5 PATH]] +:: [s5;b17;a17; current file path] +:: [s5;b17;a17; [C@5 RELPATH]] +:: [s5;b17;a17; relative path to current file] +:: [s5;b17;a17; [C@5 FILEDIR]] +:: [s5;b17;a17; current file directory] +:: [s5;b17;a17; [C@5 DIR]] +:: [s5;b17;a17; package directory] +:: [s5;b17;a17; [C@5 PACKAGE]] +:: [s5;b17;a17; package name] +:: [s5;b17;a17; [C@5 OUTDIR]] +:: [s5;b17;a17; package output directory] +:: [s5;b17;a17; [C@5 INCLUDE]] +:: [s5;b17;a17; list of all include paths] +:: [s5;b17;a17; [C@5 EXEPATH]] +:: [s5;b17;a17; executable path] +:: [s5;b17;a17; [C@5 EXEDIR]] +:: [s5;b17;a17; executable directory] +:: [s5;b17;a17; [C@5 EXEFILE]] +:: [s5;b17;a17; executable file name] +:: [s5;b17;a17; [C@5 EXETITLE]] +:: [s5;b17;a17; executable file name without extension]}}&] +[s5; &] +[ {{1914:8086f0;g0;h1; [s5; Syntax:] +:: [s5; [C@5 custom() , , ;]] +:: [s5; Example:] +:: [s5; [C@5 custom `".rc`", `"rc /fo`$(OUTDIR)`\`\`$(TITLE)`_rc.obj `$(PATH)`", +`"`$(OUTDIR)`\`\`$(TITLE)`_rc.obj`";]&] +[s5; [C@5 custom(POSIX PROTECT) `"post`-link`", `"ProtectEncrypt `$(OUTPATH) +AABBCCDDEEFF00112233445566778899`", `"`";]]}}&] +[s5; &] +[s3; Description&] +[s5; Description of package as it appears in Package selection dialogs +is set using the [C@5 description] keyword. The description string +can also include formatting portion, that determines the color +and style of the package name in the package list in TheIDE.&] +[ {{1914:8086f0;g0;h1; [s5; Syntax:] +:: [s5; [C@5 description ;]&] +[s5; where&] +[s5; [C@5 `= `[`\377 `[B`] +`[I`] `[,,`]`]]&] +[s5; [C@5 B ]makes the text bold&] +[s5; [C@5 I ]makes the text italic&] +[s5; [C@5 ,, ]are integers in range from 0 to 255 specifying +the color] +:: [s5; Example:] +:: [s5; [C@5 description `"Non`-GUI code. Streams, NTL containers, concrete +types, Value, XML, C parsing etc...`\377B128,0,0`";]]}}&] +[s5; &] +[s3; Files&] +[s5; Possibly the most important part of package is the list of files +that belong to it. Each file in the list can have set several +options which specify how it is handled and displayed.&] +[ {{1914:8086f0;g0;h1; [s5; Syntax:] +:: [s5; [C@5 file `[`]`* `[, `[`]`* +`]`*;]&] +[s5; where&] +[s5; [C@5 `= options()