bake-toolkit 1.0.24 → 1.0.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/bake-doc +12 -0
- data/doc/cmd/install.html +78 -0
- data/doc/cmd/mount.png +0 -0
- data/doc/cmd/ruby.png +0 -0
- data/doc/cmd/tty.png +0 -0
- data/doc/cmd/usecmd.html +56 -0
- data/doc/cmd/usecygwin.html +49 -0
- data/doc/concepts/buildhierarchy.html +42 -0
- data/doc/concepts/configfile.html +102 -0
- data/doc/concepts/hier.png +0 -0
- data/doc/concepts/mainproject.html +87 -0
- data/doc/dyk/keys.png +0 -0
- data/doc/dyk/tipps.html +51 -0
- data/doc/eclipse/export.html +39 -0
- data/doc/eclipse/import.html +29 -0
- data/doc/eclipse/install.html +26 -0
- data/doc/eclipse/new.html +17 -0
- data/doc/eclipse/use.html +56 -0
- data/doc/further/change.html +160 -0
- data/doc/further/collections.html +21 -0
- data/doc/further/internal.html +42 -0
- data/doc/further/issues.html +18 -0
- data/doc/further/perf.html +54 -0
- data/doc/further/wish.html +39 -0
- data/doc/index.html +78 -0
- data/doc/src/ok.png +0 -0
- data/doc/syntax/derive.html +89 -0
- data/doc/syntax/subst.html +103 -0
- data/doc/syntax/syntax.html +587 -0
- data/doc/vs/create.html +16 -0
- data/doc/vs/install.html +28 -0
- data/doc/vs/use.html +24 -0
- data/lib/bake/mergeConfig.rb +108 -0
- data/lib/bake/model/metamodel.rb +1 -0
- data/lib/bake/version.rb +2 -2
- data/lib/tocxx.rb +39 -12
- metadata +95 -58
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9ca9ccfe3056eb950562ce0ff7dfa59989a4241f
|
4
|
+
data.tar.gz: 80a039718903f6c56726910850b754f56d03e0f8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 62ba7c9c7a3c79c611d2005e5454fb2fb8fde97a556e0f4f068dc739551e594c4f08913ef0bf59d1f87da90801646147a65c43208970c1ba02e26ec5d81d9f21
|
7
|
+
data.tar.gz: ae15cc72a84f9e6283fe14652b150bc8f09031fbf4a71b75d5a0fd1b468007c8f7aa857773da2a822193ef8812fbfc470f5df5a10dcf353be3007dd959751c75
|
data/bin/bake-doc
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
link = File.expand_path(File.dirname(__FILE__)+"/../doc/index.html")
|
4
|
+
if RUBY_PLATFORM =~ /mswin|mingw|cygwin/
|
5
|
+
system "start #{link}"
|
6
|
+
elsif RUBY_PLATFORM =~ /darwin/
|
7
|
+
system "open #{link}"
|
8
|
+
elsif RUBY_PLATFORM =~ /linux|bsd/
|
9
|
+
system "xdg-open #{link}"
|
10
|
+
else
|
11
|
+
puts "Please open #{link} manually in your browser."
|
12
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
<style type="text/css">
|
6
|
+
#rundrum {
|
7
|
+
border-width:1px;
|
8
|
+
border-style:dashed;
|
9
|
+
border-color:blue;
|
10
|
+
padding:0.2cm;
|
11
|
+
text-align:justify; }
|
12
|
+
}
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<h1>How to install bake command line tool</h1>
|
17
|
+
|
18
|
+
bake is a ruby gem. It runs with ruby 1.8.6 and above. However, it is <b>highly recommended</b>, that you use <b>ruby 1.9.x</b>, because of a <b>significant speed improvement</b>.
|
19
|
+
<p>
|
20
|
+
bake and its depedencies can be found on rubygems, which is configured as ruby source per default. Type "gem sources" if you wish to check that.<br>
|
21
|
+
Installing bake is very easy:
|
22
|
+
<pre id="rundrum"><code>gem install bake-toolkit</code></pre>
|
23
|
+
<p>
|
24
|
+
|
25
|
+
This is how the installation could look like:
|
26
|
+
|
27
|
+
|
28
|
+
<pre id="rundrum"><code>>>> gem install bake-toolkit
|
29
|
+
Fetching: highline-1.6.15.gem (100%)
|
30
|
+
Fetching: colored-1.2.gem (100%)
|
31
|
+
Fetching: progressbar-0.11.0.gem (100%)
|
32
|
+
Fetching: cxxproject-0.5.59.gem (100%)
|
33
|
+
Fetching: rgen-0.6.0.gem (100%)
|
34
|
+
Fetching: rtext-0.2.0.gem (100%)
|
35
|
+
Fetching: bake-toolkit-1.0.2.gem (100%)
|
36
|
+
Successfully installed highline-1.6.15
|
37
|
+
Successfully installed colored-1.2
|
38
|
+
Successfully installed progressbar-0.11.0
|
39
|
+
Successfully installed cxxproject-0.5.59
|
40
|
+
Successfully installed rgen-0.6.0
|
41
|
+
Successfully installed rtext-0.2.0
|
42
|
+
Successfully installed bake-toolkit-1.0.2
|
43
|
+
7 gems installed
|
44
|
+
Installing ri documentation for highline-1.6.15...
|
45
|
+
Installing ri documentation for colored-1.2...
|
46
|
+
Installing ri documentation for progressbar-0.11.0...
|
47
|
+
Installing ri documentation for cxxproject-0.5.59...
|
48
|
+
Installing ri documentation for rgen-0.6.0...
|
49
|
+
Installing ri documentation for rtext-0.2.0...
|
50
|
+
Installing ri documentation for bake-toolkit-1.0.2...
|
51
|
+
Installing RDoc documentation for highline-1.6.15...
|
52
|
+
Installing RDoc documentation for colored-1.2...
|
53
|
+
Installing RDoc documentation for progressbar-0.11.0...
|
54
|
+
Installing RDoc documentation for cxxproject-0.5.59...
|
55
|
+
Installing RDoc documentation for rgen-0.6.0...
|
56
|
+
Installing RDoc documentation for rtext-0.2.0...
|
57
|
+
Installing RDoc documentation for bake-toolkit-1.0.2...</code></pre>
|
58
|
+
|
59
|
+
<h2>Problems</h2>
|
60
|
+
<ul>
|
61
|
+
<li>If the installation does not start, it might be a problem of a password protected internet proxy. Unlock the proxy by opening an external webpage e.g. google.
|
62
|
+
|
63
|
+
<li>Note, that the error parsers in bake assume English language. It depends on the system and compiler how to switch the language. One possibility is to set the environment variable LC_ALL:
|
64
|
+
|
65
|
+
<pre id="rundrum"><code>LC_ALL=en_US</code></pre>
|
66
|
+
|
67
|
+
<li>Don't worry if you get an error like this:
|
68
|
+
|
69
|
+
<pre id="rundrum"><code>ERROR: While generating documentation for ...
|
70
|
+
... MESSAGE: Error while evaluating ...
|
71
|
+
undefined method `gsub' for nil:NilClass ...</code></pre>
|
72
|
+
It's a ruby bug. However, the gems were installed correctly. You can avoid building the documentation by installing bake like this:
|
73
|
+
|
74
|
+
<pre id="rundrum"><code> gem install bake-toolkit --no-rdoc --no-ri</code></pre>
|
75
|
+
</ul>
|
76
|
+
</body>
|
77
|
+
|
78
|
+
</html>
|
data/doc/cmd/mount.png
ADDED
Binary file
|
data/doc/cmd/ruby.png
ADDED
Binary file
|
data/doc/cmd/tty.png
ADDED
Binary file
|
data/doc/cmd/usecmd.html
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
<style type="text/css">
|
6
|
+
#rundrum {
|
7
|
+
border-width:1px;
|
8
|
+
border-style:dashed;
|
9
|
+
border-color:blue;
|
10
|
+
padding:0.2cm;
|
11
|
+
text-align:justify; }
|
12
|
+
}
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<h1>How to use bake on command line</h1>
|
17
|
+
Call <b>bake -h</b> to display the command line options.
|
18
|
+
<p>
|
19
|
+
The most important options are:
|
20
|
+
<ul>
|
21
|
+
<li><b>-b</b> the build configuration name
|
22
|
+
<li><b>-m</b> the main project directory (default is current directory)
|
23
|
+
<li><b>-p</b> the project to build (if not specified, the main project will be built with all dependencies)
|
24
|
+
</ul>
|
25
|
+
|
26
|
+
<h2>Examples</h2>
|
27
|
+
|
28
|
+
If you want to build your application, switch to the directory of the main project and call (assuming "Debug" is a valid build setup name):
|
29
|
+
|
30
|
+
<pre id="rundrum"><code>bake -b Debug</code></pre>
|
31
|
+
|
32
|
+
If you are not in the directory of the main project you want to build:
|
33
|
+
|
34
|
+
<pre id="rundrum"><code>bake -b Debug -m w:/root/mainProj</code></pre>
|
35
|
+
|
36
|
+
Code has been checked out into two roots, the console supports ansi colors, you want to stop on first error and build only the project bspAbc:
|
37
|
+
|
38
|
+
<pre id="rundrum"><code>bake -b Debug -m w:/root1/myProj -w w:/root1 -w w:/root2 -r -a black -p bspAbc</code></pre>
|
39
|
+
|
40
|
+
To clean the project(s), just add "-c".
|
41
|
+
|
42
|
+
<h2>roots.bake</h2>
|
43
|
+
|
44
|
+
Workspace roots can be defined in a file called "roots.bake", which will be searched from main project directory to root folder. Example:
|
45
|
+
|
46
|
+
<pre id="rundrum"><code>../..
|
47
|
+
C:/another/root
|
48
|
+
something/else</code></pre>
|
49
|
+
|
50
|
+
If -w and roots.bake are not specified, the default workspace root is the parent directory of the main project.
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
</body>
|
55
|
+
|
56
|
+
</html>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
<style type="text/css">
|
6
|
+
#rundrum {
|
7
|
+
border-width:1px;
|
8
|
+
border-style:dashed;
|
9
|
+
border-color:blue;
|
10
|
+
padding:0.2cm;
|
11
|
+
text-align:justify; }
|
12
|
+
}
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<h1>How to use bake in Cygwin</h1>
|
17
|
+
|
18
|
+
Why using Cygwin on Windows instead of the built-in command shell? There is one major reason: Cygwin supports <b>colored output</b> via ansi escape sequences.
|
19
|
+
<br>
|
20
|
+
Note, that these steps differ depending on the Cygwin version, installed packages and configuration.
|
21
|
+
|
22
|
+
<h2>Get rid of the cygdrive prefix</h2>
|
23
|
+
<img src="mount.png"/><br>
|
24
|
+
As you see, "c:" is now "/c" and not "/cygdrive/c" anymore.
|
25
|
+
<br>
|
26
|
+
<b>In newer Cygwin versions, this is not permanent.</b> To make it permanent, add the following line to <b>/etc/fstab</b> (can be found in your Cygwin installation directory):
|
27
|
+
|
28
|
+
<pre id="rundrum"><code>none / cygdrive binary,posix=0,user 0 0</code></pre>
|
29
|
+
|
30
|
+
<h2>Get rid of the Cygwin ruby</h2>
|
31
|
+
<img src="ruby.png"/><br>
|
32
|
+
Easiest way is to rename the Cygwin ruby, which makes the original ruby visible. This is only necessary if you have ruby installed in our Cygwin environment.
|
33
|
+
|
34
|
+
<h2>Add tty to CYGWIN option</h2>
|
35
|
+
<img src="tty.png"/><br>
|
36
|
+
"tty" must be added to the CYGWIN system variable.
|
37
|
+
|
38
|
+
<h2>Start the build</h2>
|
39
|
+
|
40
|
+
Use the parameter "-a black" or "-a white" depending on the background color of your shell.
|
41
|
+
<p>
|
42
|
+
Depending on your Cygwin installation, you have to call "bake.bat" instead of "bake". To avoid this, create an alias, e.g:
|
43
|
+
|
44
|
+
<pre id="rundrum"><code>alias bake=/c/Programme/_dev/Ruby192/bin/bake.bat</code></pre>
|
45
|
+
|
46
|
+
|
47
|
+
</body>
|
48
|
+
|
49
|
+
</html>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<h1>The build hierarchy</h1>
|
8
|
+
|
9
|
+
<h2>Build graph</h2>
|
10
|
+
|
11
|
+
Depending on the contents of the Project.meta files, a build graph will be generated.
|
12
|
+
<ul>
|
13
|
+
<li>An ExecutableConfig usally specifies files to compile, dependencies to other projects and linker stuff.
|
14
|
+
<li>A LibraryConfig usally specifies files to compile and archive.
|
15
|
+
<li>A CustomConfig usually defines a custom step.
|
16
|
+
</ul>
|
17
|
+
Every config type can be equipped with pre and post steps like shell commands or makefiles.
|
18
|
+
|
19
|
+
All these steps will be combined to a build graph.
|
20
|
+
|
21
|
+
<h2>Example</h2>
|
22
|
+
|
23
|
+
The main project has dependencies to the projects A, B and C:<br>
|
24
|
+
<img src="hier.png"/>
|
25
|
+
<br>
|
26
|
+
Steps are executed bottom-up. If one step fails, all steps above won't be executed.
|
27
|
+
<p>
|
28
|
+
If e.g.
|
29
|
+
<ul>
|
30
|
+
<li>PreStepMain 2 fails
|
31
|
+
<li>at least one file of library B does not compile
|
32
|
+
</ul>
|
33
|
+
then
|
34
|
+
<ul>
|
35
|
+
<li>library B will not be created
|
36
|
+
<li>files of the main project will not be compiled
|
37
|
+
<li>main project will not be linked
|
38
|
+
<li>post step of main project will not be executed
|
39
|
+
</ul>
|
40
|
+
</body>
|
41
|
+
|
42
|
+
</html>
|
@@ -0,0 +1,102 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
<style type="text/css">
|
6
|
+
#rundrum {
|
7
|
+
border-width:1px;
|
8
|
+
border-style:dashed;
|
9
|
+
border-color:blue;
|
10
|
+
padding:0.2cm;
|
11
|
+
text-align:justify; }
|
12
|
+
}
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<h1>The configuration file Project.meta</h1>
|
17
|
+
<ul>
|
18
|
+
<li>Every project has a Project.meta file in the project root directory.
|
19
|
+
<li>A Project.meta file contains one or more build configurations.
|
20
|
+
<li>A build configuration consists of toolchain settings, files to build, custom steps, etc.
|
21
|
+
</ul>
|
22
|
+
<h2>Example</h2>
|
23
|
+
|
24
|
+
<table border="1">
|
25
|
+
<tr>
|
26
|
+
<th bgcolor="#CCCCCC">Project.meta of Main</th>
|
27
|
+
<th bgcolor="#CCCCCC">Project.meta of Sub</th>
|
28
|
+
</tr>
|
29
|
+
<tr>
|
30
|
+
<td><pre><code>Project {
|
31
|
+
ExecutableConfig Debug {
|
32
|
+
Dependency Sub, config: Debug
|
33
|
+
Files "**/*.cpp"
|
34
|
+
IncludeDir "include"
|
35
|
+
DefaultToolchain GCC {
|
36
|
+
Compiler CPP {
|
37
|
+
Flags "-Wall"
|
38
|
+
}
|
39
|
+
}
|
40
|
+
PostSteps {
|
41
|
+
CommandLine "echo $(ArtifactName) built."
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}</code></pre></td>
|
45
|
+
<td><pre><code>Project {
|
46
|
+
LibraryConfig Debug {
|
47
|
+
Files "**/*.cpp"
|
48
|
+
IncludeDir "include"
|
49
|
+
IncludeDir "Main/include"
|
50
|
+
ExternalLibrarySearchPath "lib"
|
51
|
+
ExternalLibrary "a"
|
52
|
+
ExternalLibrary "b"
|
53
|
+
Toolchain {
|
54
|
+
Compiler CPP {
|
55
|
+
Flags add: "-g3"
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}</code></pre></td>
|
60
|
+
</tr>
|
61
|
+
</table>
|
62
|
+
<br>
|
63
|
+
Let's assume that Main and Sub are located in the same workspace root. To build the executable, bake can be called from the Main directory:
|
64
|
+
|
65
|
+
<pre id="rundrum"><code>bake -b Debug</code></pre>
|
66
|
+
|
67
|
+
What happens now?
|
68
|
+
|
69
|
+
<ol>
|
70
|
+
<li>Reading Project.meta of Main
|
71
|
+
<li>Reading Project.meta of dependencies (Sub)
|
72
|
+
<li>Compiling sources of Sub, e.g.:
|
73
|
+
|
74
|
+
<pre id="rundrum"><code>g++ -c -Wall -g3 -Iinclude -I../Main/include -o Debug_Main/src/xy.o src/xy.cpp</code></pre>
|
75
|
+
<ul>
|
76
|
+
<li>-Wall is taken from the DefaultToolchain and -g3 is added by the toolchain of the Sub project.
|
77
|
+
<li>The include path to Main is automatically adjusted.
|
78
|
+
<li>The order of includes is the same as in Project.meta.
|
79
|
+
<li>g++, -c and -I are used, because GCC was specified in the DefaultToolchain.
|
80
|
+
</ul>
|
81
|
+
|
82
|
+
<li>Archiving the library, e.g.:
|
83
|
+
|
84
|
+
<pre id="rundrum"><code>ar -rc Debug_Main/libSub.a Debug_Main/src/xy.o</code></pre>
|
85
|
+
|
86
|
+
<li>Compiling sources of Main, e.g.:
|
87
|
+
|
88
|
+
<pre id="rundrum"><code>g++ -c -Wall -Iinclude -o Debug/src/main.o src/main.cpp</code></pre>
|
89
|
+
|
90
|
+
<li>Linking executable, e.g.:
|
91
|
+
|
92
|
+
<pre id="rundrum"><code>g++ -o Debug/Main.exe Debug/src/main.o ../Sub/Debug_Main/libSub.a -L../Sub/lib -la -lb</code></pre>
|
93
|
+
|
94
|
+
The library search paths and libraries are added in the specified order.
|
95
|
+
<li>Executing the post step
|
96
|
+
|
97
|
+
<pre id="rundrum"><code>echo Main.exe built.</code></pre>
|
98
|
+
The variable was automatically substituted.
|
99
|
+
|
100
|
+
</body>
|
101
|
+
|
102
|
+
</html>
|
Binary file
|
@@ -0,0 +1,87 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<h1>The main project</h1>
|
8
|
+
The concept of the main project is different to many other build systems like Eclipse CDT.<br>
|
9
|
+
In these build systems everything which is needed for a project is configured in the project itself.<br>
|
10
|
+
In bake the main project can predefine stuff for all subprojects.
|
11
|
+
<p>
|
12
|
+
The main project can have a DefaultToolchain definition, which is valid for all projects and files referenced by the main project. Subprojects can overwrite or adjust these definitions.
|
13
|
+
<p>
|
14
|
+
Projects are always built in context of the main project.
|
15
|
+
<p>
|
16
|
+
To build a project, you have to specify
|
17
|
+
<ul>
|
18
|
+
<li>the main project
|
19
|
+
<li>the config of the main project which references the project to build
|
20
|
+
<li>the (sub)project to build if applicable
|
21
|
+
</ul>
|
22
|
+
<h2>Advantages</h2>
|
23
|
+
<ul>
|
24
|
+
<li>Reducing the number of build configurations (toolchain settings like debug or release flags can be set outside of the project)
|
25
|
+
<li>Most projects do not have any compiler definitions anymore
|
26
|
+
<li>Only flags which must be used or flags which must not be used have to be specified in the projects
|
27
|
+
<li>Changing compiler definitions for all projects can be done easily in the main project build configuration
|
28
|
+
</ul>
|
29
|
+
<h2>Example</h2>
|
30
|
+
<table border="1">
|
31
|
+
<tr>
|
32
|
+
<th bgcolor="#CCCCCC">Project.meta of Main (Debug and Release) </th>
|
33
|
+
<th bgcolor="#CCCCCC">Project.meta of Sub (only one build config!) </th>
|
34
|
+
</tr>
|
35
|
+
<tr>
|
36
|
+
<td><pre><code>Project {
|
37
|
+
|
38
|
+
ExecutableConfig Debug {
|
39
|
+
Dependency Sub, config: Lib
|
40
|
+
Files "**/*.cpp"
|
41
|
+
IncludeDir "include"
|
42
|
+
DefaultToolchain GCC {
|
43
|
+
Compiler CPP {
|
44
|
+
Flags "... whatever -debug_info"
|
45
|
+
Define "DEBUG"
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
ExecutableConfig Release {
|
51
|
+
Dependency Sub, config: Lib
|
52
|
+
Files "**/*.cpp"
|
53
|
+
IncludeDir "include"
|
54
|
+
DefaultToolchain GCC {
|
55
|
+
Compiler CPP {
|
56
|
+
Flags "... whatever -optimize"
|
57
|
+
Define "NDEBUG"
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
}</code></pre></td>
|
63
|
+
<td><pre><code>Project {
|
64
|
+
|
65
|
+
LibraryConfig Lib {
|
66
|
+
Files "**/*.cpp"
|
67
|
+
IncludeDir "include"
|
68
|
+
}
|
69
|
+
|
70
|
+
}</code></pre></td>
|
71
|
+
</tr>
|
72
|
+
</table>
|
73
|
+
|
74
|
+
A main project must have a DefaultToolchain - but it's allowed to leave that definition empty.
|
75
|
+
|
76
|
+
<h2>Output directory</h2>
|
77
|
+
|
78
|
+
A project in a specific build configuration can be build in different contexts. That's why the output directory of a project cannot be simply the build configuration name of the project to avoid inconsistencies.
|
79
|
+
Therefore the output directory names are:
|
80
|
+
<ul>
|
81
|
+
<li>Main project: $(MainConfigName) like in regular Eclipse CDT builds
|
82
|
+
<li>Subprojects: $(MainConfigName)_$(MainProjectName) instead of the config name of the subproject
|
83
|
+
</ul>
|
84
|
+
|
85
|
+
</body>
|
86
|
+
|
87
|
+
</html>
|