Changelog ========= January 11, 2023 - bake-toolkit 2.72.0 * Change all deprecated functions ``File.exists`` to ``File.exist`` for compatibility to Ruby 3.2. December 13, 2021 - bake-toolkit 2.71.0 * Add ``--abs-paths-in`` for compiler command lines and ``--abs-paths-out`` for compiler output. This splits the still existing ``--abs-paths``. December 8, 2021 - bake-toolkit 2.70.1 * Fix handling of file specific flags and defines in combination with the command line argument ``--abs-paths``. April 15, 2021 - bake-toolkit 2.70.0 * Add ``args_end`` attribute to Collection.meta, which appends parameters at the end of the bake calls after the additional arguments from command line. * Print a warning if an ``Adapt`` with toolchain condition shall be applied to configs which don't have a toolchain defined (yet). March 26, 2021 - bake-toolkit 2.69.0 * Add wildcard support for ``Copy``, ``Move`` and ``Remove`` commands in Project.meta. * Add support for absolute paths in Collection.meta. * Normalize paths in in Collection.meta (e.g. resolving ``..``). This also prevents that the same config is built multiple times if the path points to the same project from different workspace roots. March 8, 2021 - bake-toolkit 2.68.1 * Add support/workaround for latest ARM GCC which writes ``\:\some\folder`` into dependency files on Windows systems (note the additional ``\`` sign). March 2, 2021 - bake-toolkit 2.68.0 * Enhance ``--abs-paths`` so it affects not only error messages but also sources, objects, includes, library and executable names. * Add project filter to adapt-command-line-option, e.g. ``--adapt coverage[lib1,lib2,safety*]`` * Add array syntax for *CommandLine* in Project.meta to wrap very long lines. * Switch theme of documentation from Bootstrap to ReadTheDocs. January 7, 2021 - bake-toolkit 2.67.0 * Add variable *$(OriginalDir)*, which points to the directory of the containing meta file. Useful for relative paths from Adapt files. * Add *outputDirPostfix* to (Default)Toolchain. It can be used for special builds like MISRA checkers. * Add *ExcludeDir* to bakery. Up to now it was only possible to exclude by project name (with wildcards), but not complete folder trees. * Add robustness measure: now every dependency from bake to other gems is specified with hardcoded version on installation time and runtime. October 23, 2020 - bake-toolkit 2.66 * Bugfix: --list failed when Project.meta contains an Adapt * Bugfix: circular extension of projects not detected during load * Changed: llvm-lib is now used to archive when using Clang on Windows * Added: Automatic path completion for Makefile command, e.g. .. code-block:: console Makefile "someProject/Makefile", target: all, lib: "someProject/output/libresult.a" September 18, 2020 - bake-toolkit 2.65.2 * Bugfix: if pathname length of dependency file is > 255 on Windows, the compilation check might break. * Added: now Adapts can be also filtered * Cosmetic: replaced mouse-over-javascripts in syntax pages of the documentation by static texts. September 7, 2020 - bake-toolkit 2.65.1 * Bugfix: __THIS__ in Project.meta was resolved to main project name, not local project name * Bugfix: Fixed an exception with old Ruby versions where "fiddle" is not available August 26, 2020 - bake-toolkit 2.65.0 * Bugfix: Dependency to gem thwait 0.1.0 instead of latest version (they messed it up, latest gem might abort the builds on some systems) * Bugfix: Skip CompilationCheck on dry run * Added: CLANG_BITCODE toolchain July 28, 2020 - bake-toolkit 2.64.4 * Bugfix: Fixed the check in 2.64.3. July 28, 2020 - bake-toolkit 2.64.3 * Bugfix: Algorithm for CompilationCheck had quadratic instead of linear complexity. July 24, 2020 - bake-toolkit 2.64.2 * Added: experimental dev-feature "retry-linking" (not for public use) July 24, 2020 - bake-toolkit 2.64.1 * Bugfix: CompilationCheck did not work correctly in special configurations, e.g. LibraryConfig without files July 22, 2020 - bake-toolkit 2.64.0 * Added: CompilationCheck to check for included/excluded files in a build * Cosmetic: Internally using fiddle instead of Win32Api (getting rid of deprecated warning when starting bake) June 22, 2020 - bake-toolkit 2.63.2 * Changed: bake does not abort anymore if cache files cannot be written. June 17, 2020 - bake-toolkit 2.63.1 * Changed: "-Z dep-overview=" exits now after writing the information into the json file. * Added: Warning in bakery if referenced projects or configs cannot be found. June 10, 2020 - bake-toolkit 2.63.0 * Bugfix: bake did not wait for a non-indepenent step (e.g. a generator) if it can be reached via multiple ways in the dependency hierarchy. * Added: Internal developer feature "-Z dep-overview=" for intelligent CIs. * Added: Forbid include dirs with a leading space, e.g. *IncludeDir " include"*. * Added: An info is printed out if path magic is used in IncludeDir. * Added: Files have an optional attribute "linkDirectly", which means they are not archived in a lib, but linked directly to the executable. May 14, 2020 - bake-toolkit 2.62.0 * Added: bake now understands dependency files from Axivion, which makes incremental build possible. May 4, 2020 - bake-toolkit 2.61.0 * Added: possibility to specify additional root files with -w (they doesn't need to be called roots.bake). There are different use cases for this, e.g. having a Collection.meta outside the workspace. * Added: Variable *$(WorkingDir)* which points to the directory from which bake was called. * Added: *CompilationDB * as option for main configs to generate compilation database. "--compilation-db" from command line will overrule this. .. code-block:: console ExecutableConfig Release { CompilationDB "$(ProjectDir)/compile_commands.json" } * Bugfix: build config could not be set after -j without number, e.g. "bake -j UnitTestBase" * Added: additional folder name case check on Windows (similar to the one from 2.60.2 but it covers other use cases) * Added: *Adapt scope* feature now also takes scopes from main config into account, not only from the to-be-adapted config. March 25, 2020 - bake-toolkit 2.60.2 * Added: a warning is printed if two folders differ only in letter case either on file system or due to (Windows) shell issues. Example: March 20, 2020 - bake-toolkit 2.60.1 (not officially released) * Changed: dependencies are now injected to other injected dependencies. This should solve some bugs, hopefully it does not introduce other problems. March 17, 2020 - bake-toolkit 2.60.0 * Bugfix: the build order of configs were wrong when injecting dependencies. If e.g. a dependency to a generator was injected to a library, it could happen that the library was built before the generator was executed. March 6, 2020 - bake-toolkit 2.59.0 * Partly reverted changes introduced in 2.57.0. New behaviour: "Files" specific Flags/Defines are still first-is-best, but if Flags/Defines are specified for a single file it overrules previous definitions. March 4, 2020 - bake-toolkit 2.58.0 * Added: -j without number means that bake is using as many threads as cores are available. * Cosmetic: Added a warning if in Project.meta Flags/Defines are specified for a single file but ignored due to a previous definition. .. code-block:: console Files "src/*.cpp" # has higher priority (in this case *.cpp shall be have no additional flags/defines) Files "src/main.cpp" { Flags "-abc" # ignored, overruled by file pattern above --> warning } February 20, 2020 - bake-toolkit 2.57.0 * Bugfix: if a file is explicitly defined in Project.meta, the flags/defines must not be overwritten even if flags/defines were defined later via a file pattern. .. code-block:: console Files "src/main.cpp" # must not be complied with "-abc" Files "src/*.cpp" { Flags "-abc" } * Added: support for Ruby 2.7.x. January 20, 2020 - bake-toolkit 2.56.0 * Added: new cmd argument --lines : for bake-format tool which tells to format lines only in range between start and end lines. * Added: new bake-rtext-service cmd tool, which runs the RText language protocol server and can be used by the IDE to provide the syntax highlighting, auto completion, errors annotation and model navigation. * Bugfix: Removed debug output for compilation-db, accidentally added with 2.53. * Bugfix: fixed an exception using scopes for adapts. November 27, 2019 - bake-toolkit 2.55.1 * Bugfix: If a project is directly in the workspace root, it could not be referenced in Collection.meta. November 21, 2019 - bake-toolkit 2.55.0 * Added: default number of compiling threads is now equal to the number of logical processors instead of hardcoded 8 (only for Ruby >= 2.2). * Added: possibility to overwrite bake internal defaults for toolchain commands and flags * Bugfix: "remove" attribute of "Flags" now correctly supports regex November 4, 2019 - bake-toolkit 2.54.3 * Added: Folders in roots.bake can end with "/" now. * Added: Improved Tasking error parser. * Added: .gitignore files are created if not existing in ".bake" and build folders. * Added: Developer feature "enforce-executable-config" added which converts a main LibraryConfig to ExecutableConfig on-the-fly. October 16, 2019 - bake-toolkit 2.54.2 * Added: Developer feature no-error-parser. * Added: "toolchain" in metadata. * Fixed: Variables now resolved in metadata. * Fixed: File specific toolchain handling was broken in 2.54.1. * Changed: ArtifactExtension can be used to extend ArtifactName. October 14, 2019 - bake-toolkit 2.54.1 * Reverted: The change from 2.54: "(Windows only) If a case mismatch is detected between Files definition in Project.meta and filesystem, the compilation will be aborted." * Added: Instead, the correct flags and defines will be used when specified at "Files" level in Project.meta. They will not be discarded anymore on case mismatch. October 11, 2019 - bake-toolkit 2.54 * Added: ArtifactExtension in Project.meta to configure the filename extension of the artifacts. * Added: Internal developer feature "-Z metadata=" for MISRA tooling * Changed: Duplicate flags will not be removed anymore (use cases exist where they're needed) * Bugfix: (Windows only) If a case mismatch is detected between Files definition in Project.meta and filesystem, the compilation will be aborted. * Added: The filename for --dot can be omitted, default is
.dot in main project dir. * Added: --dot-project-level to write project-level-dependencies in dot files insted of config-level. * Changed: The modules in dot files now have full path for better post processing (the labels stay the same). July 26, 2019 - bake-toolkit 2.53 * Bugfix: bakery regex did not take comments into account when parsing Project.meta. * Added: "strict" attribute to match only the specified Adapt config type. * Added: Option to enforce a variable to be set. If variable is unset, an error will be reported. * Changed: using "libtool" and "-static -o" instead of "ar" and "r" for Clang on Mac. * Changed: ``"`` will be escaped to ``\\\"`` in compile_commands.json. July 23, 2019 - bake-toolkit 2.52.1 * Bugfix: --prebuild feature did not work well with -c/--rebuild in combination with -r. July 22, 2019 - bake-toolkit 2.52.0 * Added: "Scope" as additional adapt conditions. * Added: all conditions like "toolchain" support list format, e.g. "GCC;CLANG". * Added: "compileOnly" annotation for "Files" which means that they shall be compiled, but not archived or linked (experimental feature, might be changed in future). * Added: improved GCC compiler error parser. * Cosmetic: when enforcing local paths e.g. for outputDir, "./" will be removed for nicer output. March 25, 2019 - bake-toolkit 2.51.2 * Added: --dotc creates the dot graph AND compiles the projects as usual (in comparison to --dot). March 21, 2019 - bake-toolkit 2.51.1 * Bugfix: under certain cases the same Adapt.meta could be found twice which results into a warning. * Changed: if a cmd of a Set (variable) returns with !=0, the output of cmd is now printed out to get an idea why it has failed. March 13, 2019 - bake-toolkit 2.51.0 * Changed: refactored calculating include folders. Now it's much faster than before! However, the order of include folders may have changed for ambiguous configurations. * Changed: merge-include feature refactored after getting some feedback. February 7, 2019 - bake-toolkit 2.50.0 * Added: command line option "--merge-inc" which copies all include files into one temprary folder and invokes the compiler with just one include path. * Added: command line option "--file-cmd" which writes all command line arguments into a file and hands it over to the compiler (with "@" in gcc and dcc). * Added: "adapt" supports now lists of projects/configs (additionally to wildcards), separated with ";". * Added: added Cuda support for GCC toolchain (experimental) January 23, 2019 - bake-toolkit 2.49.0 * Added: Support for IAR compiler. November 28, 2018 - bake-toolkit 2.48.3 * Bugfix: Removed accidentally added debug output which was introduced in 2.48.2. November 8, 2018 - bake-toolkit 2.48.2 * Bugfix: Now compatible with new QAC folder structure (problem was that user-suppressed warnings in qac.cct were not suppressed). September 20, 2018 - bake-toolkit 2.48.1 * Bugfix: Compiler prefix change reverted for C and CPP, only assembler still has the new ASMCompilerPrefix. September 7, 2018 - bake-toolkit 2.48.0 * Bugfix: Variables can be set to an empty string now * Added: Compiler prefix mechanism improved, see documentation July 31, 2018 - bake-toolkit 2.47.1 * Bugfix: in same cases the OutputDir variables were not substituted correctly in 2.47.0. July 27, 2018 - bake-toolkit 2.47.0 * Added: *Sleep*, *MakeDir*, *Remove*, *Copy* and *Move* commands in Project.meta. * Added: option -D to add defines via command line. * Added: DCC case check with --diab-case-check for Windows. Makes sense to start the compilation again after full build was successful with this parameter. With this parameter the code is not compiled, only checked. It takes around the time of a compilation. Note, with GCC the check is done during compilation in "no time" - enhancement request ticked filed at Windriver to make that possible with Diab. * Improved: Cyclic variable substitution * Removed: support of Visual Studio (not Visual Studio Code) * Removed: official support of Ruby 1.9 * Bugfix: MapFile command now working for GCC * Bugfix: --incs-and-defs did not show any results in case the workspace was broken like a missing library. May 18, 2018 - bake-toolkit 2.46.0 * Added: Makefile command has new attribute **noClean**. If set to true, the target *clean* will not be executed when project is cleaned. Default: false. * Added: Makefile command has new attribute **changeWorkingDir**. If set to false, bake stays in project's directory instead of changing into makefile's directory. Default: true. * Added: Before executing the makefile, bake sets the environment variables $(BAKE_XX_COMMAND) and $(BAKE_XX_FLAGS), whereas XX is one of CPP, C, ASM, AR or LD. May 4, 2018 - bake-toolkit 2.45.0 * Changed: it is possible now to specify adapt files directly with *--adapt * * Changed: variables can be set by calling a script (see *Set , cmd: