bake-toolkit 2.11.2 → 2.11.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/documentation/_build/html/_images/AddRepository.png +0 -0
- data/documentation/_build/html/_images/AvailableSoftware.png +0 -0
- data/documentation/_build/html/_images/FirstSelect.png +0 -0
- data/documentation/_build/html/_images/Import.png +0 -0
- data/documentation/_build/html/_images/InstallNewSoftware.png +0 -0
- data/documentation/_build/html/_images/Licenses.png +0 -0
- data/documentation/_build/html/_images/New.png +0 -0
- data/documentation/_build/html/_images/Restart.png +0 -0
- data/documentation/_build/html/_images/Result.png +0 -0
- data/documentation/_build/html/_images/Script.png +0 -0
- data/documentation/_build/html/_images/SecondSelect.png +0 -0
- data/documentation/_build/html/_images/SelectExport.png +0 -0
- data/documentation/_build/html/_images/SelectImport.png +0 -0
- data/documentation/_build/html/_images/SelectNew.png +0 -0
- data/documentation/_build/html/_images/TrustMe.png +0 -0
- data/documentation/_build/html/_images/WrongSelect.png +0 -0
- data/documentation/_build/html/_images/bake_build_hierachy.png +0 -0
- data/documentation/_build/html/_images/bake_tagcloud.png +0 -0
- data/documentation/_build/html/_images/buildFile.png +0 -0
- data/documentation/_build/html/_images/buildMain.png +0 -0
- data/documentation/_build/html/_images/console.png +0 -0
- data/documentation/_build/html/_images/cvsp.png +0 -0
- data/documentation/_build/html/_images/cygwin_mount.png +0 -0
- data/documentation/_build/html/_images/cygwin_ruby.png +0 -0
- data/documentation/_build/html/_images/cygwin_tty.png +0 -0
- data/documentation/_build/html/_images/hier.png +0 -0
- data/documentation/_build/html/_images/keys.png +0 -0
- data/documentation/_build/html/_images/pref.png +0 -0
- data/documentation/_build/html/_images/problem.png +0 -0
- data/documentation/_build/html/_images/vs_2010_install.png +0 -0
- data/documentation/_build/html/_images/vs_debug.png +0 -0
- data/documentation/_build/html/_images/vs_error.png +0 -0
- data/documentation/_build/html/_images/vs_install1.png +0 -0
- data/documentation/_build/html/_images/vs_installed.png +0 -0
- data/documentation/_build/html/_images/vs_options.png +0 -0
- data/documentation/_build/html/_images/vs_select_config.png +0 -0
- data/documentation/_build/html/_images/vs_show_config.png +0 -0
- data/documentation/_build/html/_images/vs_update.png +0 -0
- data/documentation/_build/html/_images/vs_update_site.png +0 -0
- data/documentation/_build/html/_sources/changelog.txt +314 -0
- data/documentation/_build/html/_sources/commandline/commandline.txt +107 -0
- data/documentation/_build/html/_sources/concepts/build_hierarchy.txt +34 -0
- data/documentation/_build/html/_sources/concepts/concepts.txt +11 -0
- data/documentation/_build/html/_sources/concepts/the_main_project.txt +45 -0
- data/documentation/_build/html/_sources/concepts/the_project_meta_file.txt +72 -0
- data/documentation/_build/html/_sources/ide/eclipse/eclipse.txt +24 -0
- data/documentation/_build/html/_sources/ide/eclipse/how_to_convert_existing_cdt_workspace.txt +31 -0
- data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_new_project_in_eclipse.txt +18 -0
- data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_workspace_in_eclipse.txt +27 -0
- data/documentation/_build/html/_sources/ide/eclipse/how_to_install_eclipse_plugin.txt +44 -0
- data/documentation/_build/html/_sources/ide/eclipse/how_to_use_bake_in_eclipse.txt +86 -0
- data/documentation/_build/html/_sources/ide/ide_integrations.txt +8 -0
- data/documentation/_build/html/_sources/ide/vs/how_to_create_vs_projects.txt +15 -0
- data/documentation/_build/html/_sources/ide/vs/how_to_debug_in_vs.txt +35 -0
- data/documentation/_build/html/_sources/ide/vs/how_to_used_bake_in_vs.txt +35 -0
- data/documentation/_build/html/_sources/ide/vs/vs.txt +10 -0
- data/documentation/_build/html/_sources/ide/vs/vs_install.txt +43 -0
- data/documentation/_build/html/_sources/index.txt +34 -0
- data/documentation/_build/html/_sources/install/install_bake.txt +112 -0
- data/documentation/_build/html/_sources/internal.txt +50 -0
- data/documentation/_build/html/_sources/known_issues.txt +9 -0
- data/documentation/_build/html/_sources/license.txt +4 -0
- data/documentation/_build/html/_sources/performance/performance.txt +104 -0
- data/documentation/_build/html/_sources/quickstart/quickstart.txt +70 -0
- data/documentation/_build/html/_sources/syntax/derive_configs.txt +93 -0
- data/documentation/_build/html/_sources/syntax/project_meta_syntax.txt +19 -0
- data/documentation/_build/html/_sources/syntax/syntax.txt +10 -0
- data/documentation/_build/html/_sources/syntax/variable_substitutions.txt +175 -0
- data/documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt +49 -0
- data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +122 -0
- data/documentation/_build/html/_sources/tips_and_tricks/the_bakery.txt +66 -0
- data/documentation/_build/html/_sources/tips_and_tricks/the_clang.txt +43 -0
- data/documentation/_build/html/_sources/tips_and_tricks/tips_and_tricks.txt +33 -0
- data/documentation/_build/html/_sources/why_bake/why_bake.txt +40 -0
- data/documentation/_build/html/_static/AddRepository.png +0 -0
- data/documentation/_build/html/_static/AvailableSoftware.png +0 -0
- data/documentation/_build/html/_static/FirstSelect.png +0 -0
- data/documentation/_build/html/_static/Import.png +0 -0
- data/documentation/_build/html/_static/InstallNewSoftware.png +0 -0
- data/documentation/_build/html/_static/Lib.meta +8 -0
- data/documentation/_build/html/_static/Licenses.png +0 -0
- data/documentation/_build/html/_static/Main.meta +26 -0
- data/documentation/_build/html/_static/New.png +0 -0
- data/documentation/_build/html/_static/PMetaMain.meta +15 -0
- data/documentation/_build/html/_static/PMetaSub.meta +15 -0
- data/documentation/_build/html/_static/Restart.png +0 -0
- data/documentation/_build/html/_static/Result.png +0 -0
- data/documentation/_build/html/_static/Script.png +0 -0
- data/documentation/_build/html/_static/SecondSelect.png +0 -0
- data/documentation/_build/html/_static/Select.png +0 -0
- data/documentation/_build/html/_static/SelectExport.png +0 -0
- data/documentation/_build/html/_static/SelectImport.png +0 -0
- data/documentation/_build/html/_static/SelectNew.png +0 -0
- data/documentation/_build/html/_static/TrustMe.png +0 -0
- data/documentation/_build/html/_static/WrongSelect.png +0 -0
- data/documentation/_build/html/_static/ajax-loader.gif +0 -0
- data/documentation/_build/html/_static/bake_build_hierachy.png +0 -0
- data/documentation/_build/html/_static/bake_tagcloud.png +0 -0
- data/documentation/_build/html/_static/basic.css +599 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap-responsive.css +1109 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css +9 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap.css +6167 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/css/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/img/glyphicons-halflings-white.png +0 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/img/glyphicons-halflings.png +0 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/js/bootstrap.js +2287 -0
- data/documentation/_build/html/_static/bootstrap-2.3.2/js/bootstrap.min.js +6 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap-theme.css +476 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap-theme.css.map +1 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap-theme.min.css +5 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap.css +6584 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap.css.map +1 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/css/bootstrap.min.css +5 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/fonts/glyphicons-halflings-regular.eot +0 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/fonts/glyphicons-halflings-regular.svg +288 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/fonts/glyphicons-halflings-regular.woff +0 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/js/bootstrap.js +2317 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/js/bootstrap.min.js +7 -0
- data/documentation/_build/html/_static/bootstrap-3.3.4/js/npm.js +13 -0
- data/documentation/_build/html/_static/bootstrap-sphinx.css +186 -0
- data/documentation/_build/html/_static/bootstrap-sphinx.js +162 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/amelia/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/cerulean/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/cosmo/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/cyborg/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/flatly/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/img/glyphicons-halflings-white.png +0 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/img/glyphicons-halflings.png +0 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/journal/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/readable/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/simplex/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/slate/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/spacelab/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/spruce/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/superhero/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-2.3.2/united/bootstrap.min.css +9 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/cerulean/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/cosmo/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/custom/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/cyborg/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/darkly/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/flatly/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/fonts/glyphicons-halflings-regular.eot +0 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/fonts/glyphicons-halflings-regular.svg +288 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/fonts/glyphicons-halflings-regular.woff +0 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/journal/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/lumen/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/paper/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/readable/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/sandstone/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/simplex/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/slate/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/spacelab/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/superhero/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/united/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/bootswatch-3.3.4/yeti/bootstrap.min.css +7 -0
- data/documentation/_build/html/_static/buildFile.png +0 -0
- data/documentation/_build/html/_static/buildMain.png +0 -0
- data/documentation/_build/html/_static/comment-bright.png +0 -0
- data/documentation/_build/html/_static/comment-close.png +0 -0
- data/documentation/_build/html/_static/comment.png +0 -0
- data/documentation/_build/html/_static/console.png +0 -0
- data/documentation/_build/html/_static/cvsp.png +0 -0
- data/documentation/_build/html/_static/cygwin_mount.png +0 -0
- data/documentation/_build/html/_static/cygwin_ruby.png +0 -0
- data/documentation/_build/html/_static/cygwin_tty.png +0 -0
- data/documentation/_build/html/_static/doctools.js +263 -0
- data/documentation/_build/html/_static/down-pressed.png +0 -0
- data/documentation/_build/html/_static/down.png +0 -0
- data/documentation/_build/html/_static/file.png +0 -0
- data/documentation/_build/html/_static/hier.png +0 -0
- data/documentation/_build/html/_static/jquery-1.11.1.js +10308 -0
- data/documentation/_build/html/_static/jquery.js +4 -0
- data/documentation/_build/html/_static/js/jquery-1.11.0.min.js +4 -0
- data/documentation/_build/html/_static/js/jquery-fix.js +2 -0
- data/documentation/_build/html/_static/keys.png +0 -0
- data/documentation/_build/html/_static/minus.png +0 -0
- data/documentation/_build/html/_static/plus.png +0 -0
- data/documentation/_build/html/_static/pref.png +0 -0
- data/documentation/_build/html/_static/problem.png +0 -0
- data/documentation/_build/html/_static/pygments.css +63 -0
- data/documentation/_build/html/_static/searchtools.js +622 -0
- data/documentation/_build/html/_static/syntax.html +704 -0
- data/documentation/_build/html/_static/syntax_collection_meta.html +179 -0
- data/documentation/_build/html/_static/underscore-1.3.1.js +999 -0
- data/documentation/_build/html/_static/underscore.js +31 -0
- data/documentation/_build/html/_static/up-pressed.png +0 -0
- data/documentation/_build/html/_static/up.png +0 -0
- data/documentation/_build/html/_static/vs_2010_install.png +0 -0
- data/documentation/_build/html/_static/vs_debug.png +0 -0
- data/documentation/_build/html/_static/vs_error.png +0 -0
- data/documentation/_build/html/_static/vs_install1.png +0 -0
- data/documentation/_build/html/_static/vs_installed.png +0 -0
- data/documentation/_build/html/_static/vs_options.png +0 -0
- data/documentation/_build/html/_static/vs_select_config.png +0 -0
- data/documentation/_build/html/_static/vs_show_config.png +0 -0
- data/documentation/_build/html/_static/vs_update.png +0 -0
- data/documentation/_build/html/_static/vs_update_site.png +0 -0
- data/documentation/_build/html/_static/websupport.js +808 -0
- data/documentation/_build/html/changelog.html +735 -0
- data/documentation/_build/html/commandline/commandline.html +284 -0
- data/documentation/_build/html/concepts/build_hierarchy.html +204 -0
- data/documentation/_build/html/concepts/concepts.html +181 -0
- data/documentation/_build/html/concepts/the_main_project.html +260 -0
- data/documentation/_build/html/concepts/the_project_meta_file.html +288 -0
- data/documentation/_build/html/genindex.html +152 -0
- data/documentation/_build/html/ide/eclipse/eclipse.html +185 -0
- data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +208 -0
- data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +191 -0
- data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +198 -0
- data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +196 -0
- data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +256 -0
- data/documentation/_build/html/ide/ide_integrations.html +182 -0
- data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +171 -0
- data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +185 -0
- data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +190 -0
- data/documentation/_build/html/ide/vs/vs.html +170 -0
- data/documentation/_build/html/ide/vs/vs_install.html +202 -0
- data/documentation/_build/html/index.html +238 -0
- data/documentation/_build/html/install/install_bake.html +279 -0
- data/documentation/_build/html/internal.html +217 -0
- data/documentation/_build/html/known_issues.html +175 -0
- data/documentation/_build/html/license.html +236 -0
- data/documentation/_build/html/objects.inv +0 -0
- data/documentation/_build/html/performance/performance.html +373 -0
- data/documentation/_build/html/quickstart/quickstart.html +236 -0
- data/documentation/_build/html/search.html +174 -0
- data/documentation/_build/html/searchindex.js +1 -0
- data/documentation/_build/html/syntax/derive_configs.html +295 -0
- data/documentation/_build/html/syntax/project_meta_syntax.html +884 -0
- data/documentation/_build/html/syntax/syntax.html +181 -0
- data/documentation/_build/html/syntax/variable_substitutions.html +378 -0
- data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +203 -0
- data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +284 -0
- data/documentation/_build/html/tips_and_tricks/the_bakery.html +401 -0
- data/documentation/_build/html/tips_and_tricks/the_clang.html +201 -0
- data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +196 -0
- data/documentation/_build/html/why_bake/why_bake.html +241 -0
- data/lib/blocks/executable.rb +1 -1
- data/lib/common/version.rb +1 -1
- metadata +244 -2
@@ -0,0 +1,93 @@
|
|
1
|
+
Derive configs
|
2
|
+
==============
|
3
|
+
|
4
|
+
bake supports deriving configs, which allows you to put repetetive settings in a base config.
|
5
|
+
|
6
|
+
Deriving a config
|
7
|
+
*****************
|
8
|
+
|
9
|
+
Derving a config in bake is pretty straight forward, and looks like this:
|
10
|
+
|
11
|
+
.. code-block:: text
|
12
|
+
|
13
|
+
ExecutableConfig A
|
14
|
+
LibraryConfig B, extends: A
|
15
|
+
CustomConfig C, extends: B
|
16
|
+
ExecutableConfig D, extends: C
|
17
|
+
|
18
|
+
.. note::
|
19
|
+
|
20
|
+
The config type of the parent config does not matter, but only settings which are valid in BOTH configs will be inherited.
|
21
|
+
In the example above D gets the dependencies from A, because "Dependency" is valid in all configs, but D does not get
|
22
|
+
the "Files" from A, because "Files" is not valid in CustomConfig.
|
23
|
+
|
24
|
+
|
25
|
+
Inheritance implications
|
26
|
+
************************
|
27
|
+
|
28
|
+
============================ =========================================
|
29
|
+
Setting Derived
|
30
|
+
============================ =========================================
|
31
|
+
Set parent + child
|
32
|
+
|
33
|
+
Dependency parent + child
|
34
|
+
|
35
|
+
ExternalLibrary parent + child
|
36
|
+
(ordered by line number)
|
37
|
+
|
38
|
+
ExternalLibrarySearchPath parent + child
|
39
|
+
(ordered by line number)
|
40
|
+
|
41
|
+
UserLibrary parent + child
|
42
|
+
(ordered by line number)
|
43
|
+
|
44
|
+
PreSteps parent + child
|
45
|
+
|
46
|
+
PostSteps parent + child
|
47
|
+
|
48
|
+
Makefile used from parent if not
|
49
|
+
in child
|
50
|
+
|
51
|
+
CommandLine used from parent if not
|
52
|
+
in child
|
53
|
+
|
54
|
+
Files parent + child
|
55
|
+
|
56
|
+
ExcludeFiles parent + child
|
57
|
+
|
58
|
+
IncludeDir parent + child
|
59
|
+
|
60
|
+
LinkerScript used from parent if not in child
|
61
|
+
|
62
|
+
ArtifactName used from parent if not in child
|
63
|
+
|
64
|
+
MapFile used from parent if not in child
|
65
|
+
============================ =========================================
|
66
|
+
|
67
|
+
|
68
|
+
============================ =========================================
|
69
|
+
Toolchain Setting Derived
|
70
|
+
============================ =========================================
|
71
|
+
basedOn used from parent if not in child
|
72
|
+
|
73
|
+
outputDir used from parent if not in child
|
74
|
+
|
75
|
+
command used from parent if not in child
|
76
|
+
|
77
|
+
LibPrefixFlags parent + child
|
78
|
+
|
79
|
+
LibPostfixFlags parent + child
|
80
|
+
|
81
|
+
Flags parent + child
|
82
|
+
|
83
|
+
Define parent + child
|
84
|
+
|
85
|
+
InternalDefines used from parent if not in child
|
86
|
+
|
87
|
+
InternalIncludes used from parent if not in child
|
88
|
+
|
89
|
+
LintPolicy parent + child
|
90
|
+
|
91
|
+
Docu used from parent if not in child
|
92
|
+
============================ =========================================
|
93
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
The Syntax of the Project.meta file
|
2
|
+
===================================
|
3
|
+
|
4
|
+
Instructions for the Interactive Syntax Viewer
|
5
|
+
**********************************************
|
6
|
+
|
7
|
+
* Move the mouse cursor over the blue elements to display more information.
|
8
|
+
|
9
|
+
* Three config types exist: ExecutableConfig, LibraryConfig and CustomConfig. Move the mouse cursor over these elements to display the supported content.
|
10
|
+
|
11
|
+
.. raw:: html
|
12
|
+
:file: ../_static/syntax.html
|
13
|
+
|
14
|
+
.. note::
|
15
|
+
Specify the paths always relative to the current project root, but keep the variable substitution in Project.meta in mind.
|
16
|
+
|
17
|
+
* Use double quotes (") if the strings have spaces or slashes.
|
18
|
+
|
19
|
+
* Use hash marks (#) for comments.
|
@@ -0,0 +1,175 @@
|
|
1
|
+
Variables in Project.meta
|
2
|
+
=========================
|
3
|
+
bake allows you to use pre defined and/or user defined variables in your Project.meta file.
|
4
|
+
Defined variables then can be used using the following syntax:
|
5
|
+
|
6
|
+
.. code-block:: console
|
7
|
+
|
8
|
+
$(MyIncludes)
|
9
|
+
|
10
|
+
The variable MyIncludes will be substitued by its value, therefore a real life usage would look
|
11
|
+
something like this:
|
12
|
+
|
13
|
+
.. code-block:: console
|
14
|
+
|
15
|
+
IncludeDir "$(MyIncludes)"
|
16
|
+
|
17
|
+
User defined variables
|
18
|
+
**********************
|
19
|
+
|
20
|
+
There are two ways to create user defined variables.
|
21
|
+
|
22
|
+
#. The variable is defined with the `--set` command line option:
|
23
|
+
|
24
|
+
.. code-block:: console
|
25
|
+
|
26
|
+
User@Host:~$ bake ... --set MyVar="Hello world!"
|
27
|
+
|
28
|
+
#. THe variable is defined directly in the Project.meta file.
|
29
|
+
|
30
|
+
.. code-block:: console
|
31
|
+
|
32
|
+
Set MyVar, value: "Hello world!"
|
33
|
+
|
34
|
+
|
35
|
+
Pre defined bake environment variables
|
36
|
+
**************************************
|
37
|
+
|
38
|
+
======================================== =============================================== ========================================
|
39
|
+
Variable Description Example
|
40
|
+
======================================== =============================================== ========================================
|
41
|
+
*$(MainConfigName)* Evaluates to the main config name Debug
|
42
|
+
|
43
|
+
*$(MainProjectName)* Evaluates to the main project name bootloader
|
44
|
+
|
45
|
+
*$(ConfigName)* Evaluates to the config name lib
|
46
|
+
|
47
|
+
*$(ProjectName)* Evaluates to the project name canDriver
|
48
|
+
|
49
|
+
*$(ProjectDir)* Evaluates to the full path of the project C:/Root/MyProject
|
50
|
+
directory
|
51
|
+
|
52
|
+
*$(MainProjectDir)* Evaluates to the full path of the root projec C:/Root/Main
|
53
|
+
directory
|
54
|
+
|
55
|
+
*$(OutputDir)* Evaluates to the full path of the output build_lib_bootloader_Debug
|
56
|
+
directory of the current config
|
57
|
+
|
58
|
+
*$(OutputDir,projName,confName)* Evaluates to the output dir of a specific build_lib_some_Debug
|
59
|
+
config
|
60
|
+
|
61
|
+
*$(ArtifactName)* Evaluates to the artifact. bootloader_1.0.elf
|
62
|
+
|
63
|
+
*$(ArtifactNameBase)* Evaluates to the base artifact name bootloader_1.0
|
64
|
+
(Without file exension)
|
65
|
+
|
66
|
+
*$(Time)* Evaluates to the current time 2012-12-24 20:00:00 +0200
|
67
|
+
|
68
|
+
*$(Hostname)* Evaluates to the hostname MY_COMPUTER
|
69
|
+
|
70
|
+
*$(CPPPath)* Evaluates to the base path of the /usr/bin
|
71
|
+
c++ compiler
|
72
|
+
|
73
|
+
*$(CPath)* Evaluates to the base path of the /usr/bin
|
74
|
+
c compiler
|
75
|
+
|
76
|
+
*$(ASMPath)* Evaluates to the base path of the /usr/bin
|
77
|
+
assembler
|
78
|
+
|
79
|
+
*$(ArchiverPath)* Evaluates to the base path of the /usr/bin
|
80
|
+
archiver
|
81
|
+
|
82
|
+
*$(LinkerPath)* Evaluates to the base path of the /usr/bin
|
83
|
+
linker
|
84
|
+
|
85
|
+
*$(/)* Evalutes to the directory path seperator of Windows: \\, Other: /
|
86
|
+
the current platform
|
87
|
+
|
88
|
+
*$(:)* Evaluates to the path variable seperator Windows: ;, Other: :
|
89
|
+
of the current platform
|
90
|
+
======================================== =============================================== ========================================
|
91
|
+
|
92
|
+
.. tip::
|
93
|
+
|
94
|
+
It is also possible to retrieve arbitrary an *environment variable* using the following syntax:
|
95
|
+
|
96
|
+
.. code-block:: console
|
97
|
+
|
98
|
+
$(EnvironmentVariable)
|
99
|
+
|
100
|
+
Evaluates to the Environment with the specified name, if the specified environment variable does not exists
|
101
|
+
it will be substituted by an empty string.
|
102
|
+
|
103
|
+
.. note::
|
104
|
+
|
105
|
+
Equal variables in the main config
|
106
|
+
|
107
|
+
======================================== ========================================
|
108
|
+
Variable Is equal to
|
109
|
+
======================================== ========================================
|
110
|
+
$(MainConfigName) $(ConfigName)
|
111
|
+
|
112
|
+
$(MainProjectName) $(ProjectName)
|
113
|
+
======================================== ========================================
|
114
|
+
|
115
|
+
.. warning::
|
116
|
+
|
117
|
+
Variables in Dependency definitions are not allowed!
|
118
|
+
|
119
|
+
|
120
|
+
Nested variables
|
121
|
+
****************
|
122
|
+
It is also possible to nest variables.
|
123
|
+
|
124
|
+
Example:
|
125
|
+
|
126
|
+
.. code-block:: console
|
127
|
+
|
128
|
+
$(OutputDir,$(TheProject),$(TheConfig))
|
129
|
+
$(ABC$(DEF)GH)
|
130
|
+
|
131
|
+
|
132
|
+
Auto-adjustment of paths to existing projects
|
133
|
+
*********************************************
|
134
|
+
.. warning::
|
135
|
+
|
136
|
+
If paths to other projects are needed, e.g. to "bootloaderUpdater", don't write a hard coded relative path like this:
|
137
|
+
|
138
|
+
.. code-block:: text
|
139
|
+
|
140
|
+
CommandLine "../bootloaderUpdater/tools/PrimaryBootloader2Include.exe
|
141
|
+
|
142
|
+
If paths to other projects are needed, e.g. to "bootloaderUpdater" just reference it starting from the project folder.
|
143
|
+
|
144
|
+
Example:
|
145
|
+
|
146
|
+
.. code-block:: text
|
147
|
+
|
148
|
+
CommandLine "bootloaderUpdater/tools/PrimaryBootloader2Include.exe
|
149
|
+
|
150
|
+
or:
|
151
|
+
|
152
|
+
.. code-block:: text
|
153
|
+
|
154
|
+
IncludeDir "myProjectName/bootloaderUpdater/whatever"
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
bake recognizes that the first part of the path is a valid project name and calculates the relative path to the project automatically.
|
159
|
+
If you have the special case that the referenced project is contained in an other workspace root, you can use the
|
160
|
+
`-w` parameter or you define a `roots.bake`.
|
161
|
+
|
162
|
+
.. note::
|
163
|
+
|
164
|
+
The path auto adjustment is applied for the following elements:
|
165
|
+
|
166
|
+
* IncludeDir
|
167
|
+
|
168
|
+
* ExternalLibrary
|
169
|
+
|
170
|
+
* ExternalLibrarySearchPath
|
171
|
+
|
172
|
+
* UserLibrary
|
173
|
+
|
174
|
+
* CommandLine
|
175
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
How to use bake with cygwin
|
2
|
+
===========================
|
3
|
+
Why using Cygwin on Windows instead of the built-in command shell?
|
4
|
+
There is one major reason: Cygwin supports **colored output** via ansi escape sequences.
|
5
|
+
Note, that these steps differ depending on the Cygwin version, installed packages and configuration.
|
6
|
+
|
7
|
+
#. Get rid of the cygdrive prefix
|
8
|
+
|
9
|
+
.. image:: ../_static/cygwin_mount.png
|
10
|
+
:width: 100 %
|
11
|
+
:scale: 50 %
|
12
|
+
|
13
|
+
As you see, "c:" is now "/c" and not "/cygdrive/c" anymore.
|
14
|
+
|
15
|
+
.. note::
|
16
|
+
|
17
|
+
In newer Cygwin versions, this is not permanent. To make it permanent,
|
18
|
+
add the following line to /etc/fstab (can be found in your Cygwin installation directory):
|
19
|
+
|
20
|
+
.. code-block:: console
|
21
|
+
|
22
|
+
none / cygdrive binary,posix=0,user 0 0
|
23
|
+
|
24
|
+
#. Get rid of the Cygwin ruby
|
25
|
+
|
26
|
+
.. image:: ../_static/cygwin_ruby.png
|
27
|
+
:width: 100 %
|
28
|
+
:scale: 50 %
|
29
|
+
|
30
|
+
Easiest way is to rename the Cygwin ruby, which makes the original ruby visible.
|
31
|
+
This is only necessary if you have ruby installed in our Cygwin environment.
|
32
|
+
|
33
|
+
#. Add tty to CYGWIN option
|
34
|
+
|
35
|
+
.. image:: ../_static/cygwin_tty.png
|
36
|
+
:width: 100 %
|
37
|
+
:scale: 70 %
|
38
|
+
|
39
|
+
"tty" must be added to the CYGWIN system variable.
|
40
|
+
|
41
|
+
#. Start the build
|
42
|
+
|
43
|
+
Use the parameter "-a black" or "-a white" depending on the background color of your shell.
|
44
|
+
Depending on your Cygwin installation, you have to call "bake.bat" instead of "bake". To avoid this, create an alias, e.g:
|
45
|
+
|
46
|
+
.. code-block:: console
|
47
|
+
|
48
|
+
alias bake=/c/Programme/_dev/Ruby192/bin/bake.bat
|
49
|
+
|
@@ -0,0 +1,122 @@
|
|
1
|
+
Static Code Analysis
|
2
|
+
====================
|
3
|
+
|
4
|
+
Static code analysis often is part or a pre step of the build, even though bake provides presteps which can be used to
|
5
|
+
add customized steps, we choose to add explicit support for static code analysis due to the fact that the analysis often
|
6
|
+
depends on information well known by the build system (include pahts, compiler flags, etc.). Currently bake has built in
|
7
|
+
support for *Pc-Lint*.
|
8
|
+
|
9
|
+
Lint
|
10
|
+
****
|
11
|
+
|
12
|
+
With bake you can lint LibraryConfigs, ExecutableConfigs, single files and the complete workspace (in this case the projects are linted separately).
|
13
|
+
The CPP Toolchain settings of the project are used regardless of the file type and file specific options.
|
14
|
+
It is possible to specify lnt-files with LintPolicy, but you can add every other lint command line option as well.
|
15
|
+
|
16
|
+
Basic Setup
|
17
|
+
-----------
|
18
|
+
|
19
|
+
#. Install `lint <http://www.gimpel.com/html/products.htm>`_.
|
20
|
+
#. Make sure the The lint executable 'lint-nt.exe' is in the path.
|
21
|
+
|
22
|
+
.. attention::
|
23
|
+
|
24
|
+
even though there is a unix version of pc-lint the asscoated binary name must be lint-nt.exe otherwise
|
25
|
+
it won't be recorgnized by the bake build system.
|
26
|
+
|
27
|
+
After doing this steps you are able to lint your build configurations (LibraryConfigs and ExecutableConfigs) using the *--lint* flag on the command line.
|
28
|
+
|
29
|
+
Example
|
30
|
+
+++++++
|
31
|
+
.. code-block:: console
|
32
|
+
|
33
|
+
User@Host:~$ bake Debug -p MyLibraryProject --lint
|
34
|
+
|
35
|
+
|
36
|
+
Configuring Lint
|
37
|
+
----------------
|
38
|
+
|
39
|
+
In order to configure lint in the Project.meta file, just use the *LintPolicy* command, which forwards the supplied
|
40
|
+
the parameters to lint.
|
41
|
+
|
42
|
+
.. code-block:: text
|
43
|
+
|
44
|
+
DefaultToolchain GCC {
|
45
|
+
...
|
46
|
+
LintPolicy "$(ProjectDir)/lint/misra.lnt"
|
47
|
+
LintPolicy "$(ProjectDir)/lint/suppressions.lnt"
|
48
|
+
}
|
49
|
+
|
50
|
+
Example
|
51
|
+
+++++++
|
52
|
+
|
53
|
+
This example shows how to redirect the output to single xml files placed into the main project folder.
|
54
|
+
|
55
|
+
.. code-block:: text
|
56
|
+
|
57
|
+
DefaultToolchain GCC {
|
58
|
+
LintPolicy "-os($(MainProjectDir)/$(ProjectName)_$(ConfigName)_lintout.xml)"
|
59
|
+
LintPolicy "-v"
|
60
|
+
LintPolicy "+xml(doc)"
|
61
|
+
LintPolicy "-format=%f %l %t %n %m"
|
62
|
+
LintPolicy "-format_specific= "
|
63
|
+
LintPolicy "-pragma(message)"
|
64
|
+
...
|
65
|
+
}
|
66
|
+
|
67
|
+
|
68
|
+
Known Issues
|
69
|
+
------------
|
70
|
+
bake only searches for lint-nt.exe
|
71
|
+
+++++++++++++++++++++++++++++++++++
|
72
|
+
**Issue:**
|
73
|
+
bake currently does not search for all possible names of the lint application, it only searches for a file called *lint-nt.exe*.
|
74
|
+
|
75
|
+
**Solution:**
|
76
|
+
If you have another lint command (e.g. because you are using flexe lint on unix)
|
77
|
+
just create an symlink/alias which is called *lint-nt.exe*.
|
78
|
+
|
79
|
+
Lint fails due to missing compiler includes and defines
|
80
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
81
|
+
**Issue:**
|
82
|
+
Lint will fail if compiler internal includes and defines are missing.
|
83
|
+
|
84
|
+
**Solution:**
|
85
|
+
|
86
|
+
Lint comes with some helper files, handle this issue. In order to get a list of all needed
|
87
|
+
helper files e.g. for GCC, use the following command.
|
88
|
+
|
89
|
+
.. code-block:: console
|
90
|
+
|
91
|
+
User@Host:~$ make -f .../PcLint/../lnt/co-gcc.mak
|
92
|
+
|
93
|
+
You will get a output like this:
|
94
|
+
|
95
|
+
.. code-block:: text
|
96
|
+
|
97
|
+
gcc-include-path.lnt, lint_cmac.h, lint_cppmac.h and size-options.lnt.
|
98
|
+
|
99
|
+
You can now add the needed includes and LintPolicies (.lnt files) to your bake
|
100
|
+
configuration.
|
101
|
+
|
102
|
+
Lint error due to too many includes
|
103
|
+
+++++++++++++++++++++++++++++++++++
|
104
|
+
|
105
|
+
**Issue:**
|
106
|
+
In rare cases lint has problems if it has to open too many (include) files.
|
107
|
+
|
108
|
+
**Solution:**
|
109
|
+
You can use the *--lint_max* and the *--lint_min* options to get around this issue.
|
110
|
+
|
111
|
+
Example:
|
112
|
+
|
113
|
+
.. code-block:: console
|
114
|
+
|
115
|
+
User@Host:~$ bake Debug -p MyLibraryProject --lint --lint_max 50 #(lints the first 51 files)
|
116
|
+
User@Host:~$ bake Debug -p MyLibraryProject --lint --lint_min 51 --lint_max 100 #(lints the next 50 files)
|
117
|
+
User@Host:~$ bake Debug -p MyLibraryProject --lint --lint_min 101 #(lints the rest of the files)
|
118
|
+
|
119
|
+
|
120
|
+
.. Clang Analyze
|
121
|
+
.. *************
|
122
|
+
|