bake-toolkit 2.62.0 → 2.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/bin/bakery +25 -0
 - data/lib/bake/config/checks.rb +4 -0
 - data/lib/bake/libElement.rb +13 -0
 - data/lib/bake/model/metamodel.rb +1 -0
 - data/lib/bake/options/options.rb +8 -7
 - data/lib/blocks/block.rb +45 -14
 - data/lib/blocks/compile.rb +19 -5
 - data/lib/blocks/executable.rb +4 -0
 - data/lib/common/cleanup.rb +1 -1
 - data/lib/common/version.rb +1 -1
 - data/lib/tocxx.rb +26 -0
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 225fc376c9b3409d01e708f2ec67bb2d80f9c081d26de339d5b4bb3451141e50
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e3769b3550aee5ae45685d8445b0ea3bfec59eea4ffa885900a461c82269b16b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 419125459eab7fb1ea49939389ff85c43ef6e7ddfd2fdc4bbd555e0a5b8d0e282d28e6e52da5ab3bac1d08d1b5cee4d163315d99bceab7700011aa5f3feda46f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3e273c6f6a16f89ba30b1d40c8a787a9439693ba50dd33d4667328c91894b7302ae3c1f6e9f2c4d48078fdbba545270fb5c73ff0158f0e6766bc640774808896
         
     | 
    
        data/bin/bakery
    CHANGED
    
    | 
         @@ -24,6 +24,8 @@ require_relative "../lib/bakery/buildPattern" 
     | 
|
| 
       24 
24 
     | 
    
         
             
            require_relative '../lib/common/ext/stdout'
         
     | 
| 
       25 
25 
     | 
    
         
             
            require_relative '../lib/common/cleanup'
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
      
 27 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       27 
29 
     | 
    
         
             
            module Bake
         
     | 
| 
       28 
30 
     | 
    
         | 
| 
       29 
31 
     | 
    
         
             
              @options = BakeryOptions.new(ARGV)
         
     | 
| 
         @@ -104,6 +106,7 @@ module Bake 
     | 
|
| 
       104 
106 
     | 
    
         | 
| 
       105 
107 
     | 
    
         
             
              exitValue = 0
         
     | 
| 
       106 
108 
     | 
    
         
             
              abort = false
         
     | 
| 
      
 109 
     | 
    
         
            +
              @ideps = {}
         
     | 
| 
       107 
110 
     | 
    
         
             
              @toBuild.each do |bp|
         
     | 
| 
       108 
111 
     | 
    
         
             
                currentRun += 1
         
     | 
| 
       109 
112 
     | 
    
         
             
                p = File.dirname(bp.proj)
         
     | 
| 
         @@ -135,6 +138,12 @@ module Bake 
     | 
|
| 
       135 
138 
     | 
    
         
             
                  puts e.message
         
     | 
| 
       136 
139 
     | 
    
         
             
                end
         
     | 
| 
       137 
140 
     | 
    
         | 
| 
      
 141 
     | 
    
         
            +
                if Bake.options.dev_features.detect { |x| x.start_with?("dep-overview=") }
         
     | 
| 
      
 142 
     | 
    
         
            +
                  Bake::ToCxx.include_deps.each do |pdir, deps|
         
     | 
| 
      
 143 
     | 
    
         
            +
                    @ideps[pdir] = Set.new if !@ideps.has_key?(pdir)
         
     | 
| 
      
 144 
     | 
    
         
            +
                    @ideps[pdir].merge(deps)
         
     | 
| 
      
 145 
     | 
    
         
            +
                  end
         
     | 
| 
      
 146 
     | 
    
         
            +
                end
         
     | 
| 
       138 
147 
     | 
    
         
             
                Bake::cleanup
         
     | 
| 
       139 
148 
     | 
    
         
             
                ExitHelper.reset_exit_code
         
     | 
| 
       140 
149 
     | 
    
         | 
| 
         @@ -148,6 +157,22 @@ module Bake 
     | 
|
| 
       148 
157 
     | 
    
         
             
                  end
         
     | 
| 
       149 
158 
     | 
    
         
             
                end
         
     | 
| 
       150 
159 
     | 
    
         
             
              end
         
     | 
| 
      
 160 
     | 
    
         
            +
              
         
     | 
| 
      
 161 
     | 
    
         
            +
              dep_json = Bake.options.dev_features.detect { |x| x.start_with?("dep-overview=") }
         
     | 
| 
      
 162 
     | 
    
         
            +
              if dep_json
         
     | 
| 
      
 163 
     | 
    
         
            +
                # remove duplicates
         
     | 
| 
      
 164 
     | 
    
         
            +
                @ideps.each do |m,d| 
         
     | 
| 
      
 165 
     | 
    
         
            +
                  d.delete_if {|d_tbc| d_tbc.start_with?(m) }
         
     | 
| 
      
 166 
     | 
    
         
            +
                  d.delete_if {|d_tbc| d.any? {|any_d| d_tbc != any_d && d_tbc.start_with?(any_d + "/") } }
         
     | 
| 
      
 167 
     | 
    
         
            +
                end
         
     | 
| 
      
 168 
     | 
    
         
            +
                # generate format for output
         
     | 
| 
      
 169 
     | 
    
         
            +
                ideps = []
         
     | 
| 
      
 170 
     | 
    
         
            +
                @ideps.each do |m,d|
         
     | 
| 
      
 171 
     | 
    
         
            +
                  ideps << {"module" => m, "dependencies" => d.sort.to_a}
         
     | 
| 
      
 172 
     | 
    
         
            +
                end
         
     | 
| 
      
 173 
     | 
    
         
            +
                # output
         
     | 
| 
      
 174 
     | 
    
         
            +
                File.write(dep_json[13..-1], JSON.pretty_generate(ideps))
         
     | 
| 
      
 175 
     | 
    
         
            +
              end
         
     | 
| 
       151 
176 
     | 
    
         | 
| 
       152 
177 
     | 
    
         
             
              print "\n"
         
     | 
| 
       153 
178 
     | 
    
         | 
    
        data/lib/bake/config/checks.rb
    CHANGED
    
    | 
         @@ -103,6 +103,10 @@ module Bake 
     | 
|
| 
       103 
103 
     | 
    
         
             
                          Bake.formatter.printError("IncludeDir must have inject OR infix (deprecated)", inc)
         
     | 
| 
       104 
104 
     | 
    
         
             
                          ExitHelper.exit(1)
         
     | 
| 
       105 
105 
     | 
    
         
             
                        end
         
     | 
| 
      
 106 
     | 
    
         
            +
                        if (inc.name.empty? || inc.name[0] == " ")
         
     | 
| 
      
 107 
     | 
    
         
            +
                          Bake.formatter.printError("IncludeDir must not be empty or start with a space", inc)
         
     | 
| 
      
 108 
     | 
    
         
            +
                          ExitHelper.exit(1)
         
     | 
| 
      
 109 
     | 
    
         
            +
                        end
         
     | 
| 
       106 
110 
     | 
    
         
             
                      end if config.respond_to?("includeDir")
         
     | 
| 
       107 
111 
     | 
    
         | 
| 
       108 
112 
     | 
    
         
             
                      if not ["", "yes", "no", "all"].include?config.mergeInc
         
     | 
    
        data/lib/bake/libElement.rb
    CHANGED
    
    | 
         @@ -60,6 +60,19 @@ module Bake 
     | 
|
| 
       60 
60 
     | 
    
         
             
                      @@source_libraries << adaptedPath
         
     | 
| 
       61 
61 
     | 
    
         
             
                    end
         
     | 
| 
       62 
62 
     | 
    
         
             
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                  le = block.library ? block.library : (block.executable ? block.executable : nil)
         
     | 
| 
      
 64 
     | 
    
         
            +
                  if le
         
     | 
| 
      
 65 
     | 
    
         
            +
                    cb = le.compileBlock
         
     | 
| 
      
 66 
     | 
    
         
            +
                    if !cb.nil? && !cb.object_files_ignored_in_lib.nil?
         
     | 
| 
      
 67 
     | 
    
         
            +
                      cb.object_files_ignored_in_lib.each do |ldirect|
         
     | 
| 
      
 68 
     | 
    
         
            +
                        adaptedPath, prefix = adaptPath(ldirect, block, prefix)
         
     | 
| 
      
 69 
     | 
    
         
            +
                        if (!block.prebuild or File.exist?adaptedPath)
         
     | 
| 
      
 70 
     | 
    
         
            +
                          @@linker_libs_array << adaptedPath
         
     | 
| 
      
 71 
     | 
    
         
            +
                          @@source_libraries << adaptedPath
         
     | 
| 
      
 72 
     | 
    
         
            +
                        end
         
     | 
| 
      
 73 
     | 
    
         
            +
                      end
         
     | 
| 
      
 74 
     | 
    
         
            +
                    end
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
       63 
76 
     | 
    
         
             
                end
         
     | 
| 
       64 
77 
     | 
    
         | 
| 
       65 
78 
     | 
    
         
             
                def self.collect_recursive(block, levels = -1)
         
     | 
    
        data/lib/bake/model/metamodel.rb
    CHANGED
    
    | 
         @@ -147,6 +147,7 @@ module Bake 
     | 
|
| 
       147 
147 
     | 
    
         
             
                  class Files < ModelElement
         
     | 
| 
       148 
148 
     | 
    
         
             
                    has_attr 'name', String, :defaultValueLiteral => ""
         
     | 
| 
       149 
149 
     | 
    
         
             
                    has_attr 'compileOnly', Boolean, :defaultValueLiteral => "false"
         
     | 
| 
      
 150 
     | 
    
         
            +
                    has_attr 'linkDirectly', Boolean, :defaultValueLiteral => "false"
         
     | 
| 
       150 
151 
     | 
    
         
             
                    contains_many 'define', Define, 'parent'
         
     | 
| 
       151 
152 
     | 
    
         
             
                    contains_many 'flags', Flags, 'parent'
         
     | 
| 
       152 
153 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/bake/options/options.rb
    CHANGED
    
    | 
         @@ -11,13 +11,6 @@ require_relative '../../common/crc32' 
     | 
|
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            module Bake
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
              def self.options
         
     | 
| 
       15 
     | 
    
         
            -
                @@options
         
     | 
| 
       16 
     | 
    
         
            -
              end
         
     | 
| 
       17 
     | 
    
         
            -
              def self.options=(options)
         
     | 
| 
       18 
     | 
    
         
            -
                @@options = options
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
14 
     | 
    
         
             
              class Options < Parser
         
     | 
| 
       22 
15 
     | 
    
         
             
                attr_accessor :build_config, :nocache, :analyze, :eclipseOrder, :showConfigs, :cc2j_filename
         
     | 
| 
       23 
16 
     | 
    
         
             
                attr_reader :main_dir, :working_dir, :project, :filename, :main_project_name, :buildDirDelimiter, :dot, :dotFilename # String
         
     | 
| 
         @@ -393,6 +386,14 @@ module Bake 
     | 
|
| 
       393 
386 
     | 
    
         | 
| 
       394 
387 
     | 
    
         
             
              end
         
     | 
| 
       395 
388 
     | 
    
         | 
| 
      
 389 
     | 
    
         
            +
              def self.options
         
     | 
| 
      
 390 
     | 
    
         
            +
                @@options ||= Options.new([])
         
     | 
| 
      
 391 
     | 
    
         
            +
              end
         
     | 
| 
      
 392 
     | 
    
         
            +
             
     | 
| 
      
 393 
     | 
    
         
            +
              def self.options=(options)
         
     | 
| 
      
 394 
     | 
    
         
            +
                @@options = options
         
     | 
| 
      
 395 
     | 
    
         
            +
              end
         
     | 
| 
      
 396 
     | 
    
         
            +
             
     | 
| 
       396 
397 
     | 
    
         
             
            end
         
     | 
| 
       397 
398 
     | 
    
         | 
| 
       398 
399 
     | 
    
         | 
    
        data/lib/blocks/block.rb
    CHANGED
    
    | 
         @@ -22,7 +22,7 @@ module Bake 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  @@delayed_result = true
         
     | 
| 
       23 
23 
     | 
    
         
             
                  @@threads = []
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                  attr_reader :lib_elements, :projectDir, :library, :config, :projectName, :configName, :prebuild, :output_dir, :tcs
         
     | 
| 
      
 25 
     | 
    
         
            +
                  attr_reader :lib_elements, :projectDir, :library, :executable, :config, :projectName, :configName, :prebuild, :output_dir, :tcs
         
     | 
| 
       26 
26 
     | 
    
         
             
                  attr_accessor :visited, :inDeps, :result, :bes, :besDirect
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                  def startupSteps
         
     | 
| 
         @@ -64,7 +64,11 @@ module Bake 
     | 
|
| 
       64 
64 
     | 
    
         
             
                  def set_library(library)
         
     | 
| 
       65 
65 
     | 
    
         
             
                    @library = library
         
     | 
| 
       66 
66 
     | 
    
         
             
                  end
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  def set_executable(executable)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    @executable = executable
         
     | 
| 
      
 70 
     | 
    
         
            +
                  end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
       68 
72 
     | 
    
         
             
                  def qname()
         
     | 
| 
       69 
73 
     | 
    
         
             
                    @projectName + "," + @configName
         
     | 
| 
       70 
74 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -74,6 +78,7 @@ module Bake 
     | 
|
| 
       74 
78 
     | 
    
         
             
                    @prebuild = prebuild
         
     | 
| 
       75 
79 
     | 
    
         
             
                    @visited = false
         
     | 
| 
       76 
80 
     | 
    
         
             
                    @library = nil
         
     | 
| 
      
 81 
     | 
    
         
            +
                    @executable = nil
         
     | 
| 
       77 
82 
     | 
    
         
             
                    @config = config
         
     | 
| 
       78 
83 
     | 
    
         
             
                    @referencedConfigs = referencedConfigs
         
     | 
| 
       79 
84 
     | 
    
         
             
                    @projectName = config.parent.name
         
     | 
| 
         @@ -119,6 +124,13 @@ module Bake 
     | 
|
| 
       119 
124 
     | 
    
         
             
                      resPathMagic = inc[1..-1].join("/") # within self
         
     | 
| 
       120 
125 
     | 
    
         
             
                      resPathMagic = "." if resPathMagic == ""
         
     | 
| 
       121 
126 
     | 
    
         
             
                      res << resPathMagic
         
     | 
| 
      
 127 
     | 
    
         
            +
                      if warnIfLocal
         
     | 
| 
      
 128 
     | 
    
         
            +
                        if resPathMagic == "."
         
     | 
| 
      
 129 
     | 
    
         
            +
                          Bake.formatter.printInfo("\"#{d}\" uses path magic in IncludeDir, please use \".\" instead", elem)
         
     | 
| 
      
 130 
     | 
    
         
            +
                        else
         
     | 
| 
      
 131 
     | 
    
         
            +
                          Bake.formatter.printInfo("\"#{d}\" uses path magic in IncludeDir, please omit \"#{inc[0]}/\" or use \"./#{resPathMagic}\"", elem) if warnIfLocal
         
     | 
| 
      
 132 
     | 
    
         
            +
                        end
         
     | 
| 
      
 133 
     | 
    
         
            +
                      end
         
     | 
| 
       122 
134 
     | 
    
         
             
                    elsif @referencedConfigs.include?(inc[0])
         
     | 
| 
       123 
135 
     | 
    
         
             
                      dirOther = @referencedConfigs[inc[0]].first.parent.get_project_dir
         
     | 
| 
       124 
136 
     | 
    
         
             
                      resPathMagic = File.rel_from_to_project(@projectDir, dirOther, false)
         
     | 
| 
         @@ -126,17 +138,19 @@ module Bake 
     | 
|
| 
       126 
138 
     | 
    
         
             
                      resPathMagic = resPathMagic + "/" + postfix if postfix != ""
         
     | 
| 
       127 
139 
     | 
    
         
             
                      resPathMagic = "." if resPathMagic == ""
         
     | 
| 
       128 
140 
     | 
    
         
             
                      res << resPathMagic
         
     | 
| 
      
 141 
     | 
    
         
            +
                      Bake.formatter.printInfo("\"#{d}\" uses path magic in IncludeDir, please use a Dependency to \"#{inc[0]}\" instead", elem) if warnIfLocal
         
     | 
| 
       129 
142 
     | 
    
         
             
                    end
         
     | 
| 
       130 
143 
     | 
    
         | 
| 
       131 
144 
     | 
    
         
             
                    if File.exists?(@projectDir + "/" + d) # prio 2: local, e.g. "include"
         
     | 
| 
       132 
145 
     | 
    
         
             
                      res << d
         
     | 
| 
       133 
146 
     | 
    
         
             
                    end
         
     | 
| 
       134 
147 
     | 
    
         | 
| 
       135 
     | 
    
         
            -
                    #  
     | 
| 
      
 148 
     | 
    
         
            +
                    # prio 3: check if dir exists without Project.meta entry
         
     | 
| 
       136 
149 
     | 
    
         
             
                    Bake.options.roots.each do |r|
         
     | 
| 
       137 
150 
     | 
    
         
             
                      absIncDir = r.dir+"/"+d
         
     | 
| 
       138 
151 
     | 
    
         
             
                      if File.exists?(absIncDir)
         
     | 
| 
       139 
152 
     | 
    
         
             
                        res << File.rel_from_to_project(@projectDir,absIncDir,false)
         
     | 
| 
      
 153 
     | 
    
         
            +
                        Bake.formatter.printInfo("\"#{d}\" uses path magic in IncludeDir, please create a Project.meta in \"#{absIncDir}\" or upwards and use a Dependency instead", elem) if warnIfLocal && res.length == 1
         
     | 
| 
       140 
154 
     | 
    
         
             
                      end
         
     | 
| 
       141 
155 
     | 
    
         
             
                    end
         
     | 
| 
       142 
156 
     | 
    
         | 
| 
         @@ -355,14 +369,14 @@ module Bake 
     | 
|
| 
       355 
369 
     | 
    
         
             
                  def callSteps(method)
         
     | 
| 
       356 
370 
     | 
    
         
             
                    @config.writeEnvVars()
         
     | 
| 
       357 
371 
     | 
    
         
             
                    Thread.current[:lastCommand] = nil
         
     | 
| 
       358 
     | 
    
         
            -
                    allSteps = (preSteps + mainSteps + postSteps)
         
     | 
| 
      
 372 
     | 
    
         
            +
                    @allSteps = (preSteps + mainSteps + postSteps)
         
     | 
| 
       359 
373 
     | 
    
         
             
                    # check if we have to delay the output (if the last step of this block is not in a thread)
         
     | 
| 
       360 
374 
     | 
    
         
             
                    @outputStep = nil
         
     | 
| 
       361 
     | 
    
         
            -
                    allSteps.each { |step| @outputStep = independent?(method, step) ? step : nil }
         
     | 
| 
       362 
     | 
    
         
            -
                    while  
     | 
| 
      
 375 
     | 
    
         
            +
                    @allSteps.each { |step| @outputStep = independent?(method, step) ? step : nil }
         
     | 
| 
      
 376 
     | 
    
         
            +
                    while !@allSteps.empty?
         
     | 
| 
       363 
377 
     | 
    
         
             
                      parallel = []
         
     | 
| 
       364 
     | 
    
         
            -
                      while allSteps.first && independent?(method, allSteps.first)
         
     | 
| 
       365 
     | 
    
         
            -
                        parallel << allSteps.shift
         
     | 
| 
      
 378 
     | 
    
         
            +
                      while @allSteps.first && independent?(method, @allSteps.first)
         
     | 
| 
      
 379 
     | 
    
         
            +
                        parallel << @allSteps.shift
         
     | 
| 
       366 
380 
     | 
    
         
             
                      end
         
     | 
| 
       367 
381 
     | 
    
         
             
                      if parallel.length > 0
         
     | 
| 
       368 
382 
     | 
    
         
             
                        execute_in_thread(parallel) {
         
     | 
| 
         @@ -383,7 +397,7 @@ module Bake 
     | 
|
| 
       383 
397 
     | 
    
         
             
                           end
         
     | 
| 
       384 
398 
     | 
    
         
             
                         }
         
     | 
| 
       385 
399 
     | 
    
         
             
                      else
         
     | 
| 
       386 
     | 
    
         
            -
                        step = allSteps.shift
         
     | 
| 
      
 400 
     | 
    
         
            +
                        step = @allSteps.shift
         
     | 
| 
       387 
401 
     | 
    
         
             
                        Blocks::Block::waitForAllThreads()
         
     | 
| 
       388 
402 
     | 
    
         
             
                        @result = executeStep(step, method) if @result
         
     | 
| 
       389 
403 
     | 
    
         
             
                        @outputStep = nil if !@result && blockAbort?(@result)
         
     | 
| 
         @@ -404,13 +418,29 @@ module Bake 
     | 
|
| 
       404 
418 
     | 
    
         
             
                      return true
         
     | 
| 
       405 
419 
     | 
    
         
             
                    end
         
     | 
| 
       406 
420 
     | 
    
         | 
| 
       407 
     | 
    
         
            -
                     
     | 
| 
       408 
     | 
    
         
            -
             
     | 
| 
      
 421 
     | 
    
         
            +
                    SyncOut.mutex.synchronize do
         
     | 
| 
      
 422 
     | 
    
         
            +
                      if @visited
         
     | 
| 
      
 423 
     | 
    
         
            +
                        while !defined?(@allSteps) || !@allSteps.empty?
         
     | 
| 
      
 424 
     | 
    
         
            +
                          sleep(0.1)
         
     | 
| 
      
 425 
     | 
    
         
            +
                        end
         
     | 
| 
      
 426 
     | 
    
         
            +
                        return true # maybe to improve later (return false if step has a failed non-independent step)
         
     | 
| 
      
 427 
     | 
    
         
            +
                      end
         
     | 
| 
      
 428 
     | 
    
         
            +
                      @visited = true
         
     | 
| 
      
 429 
     | 
    
         
            +
                    end
         
     | 
| 
       409 
430 
     | 
    
         | 
| 
       410 
431 
     | 
    
         
             
                    @inDeps = true
         
     | 
| 
       411 
     | 
    
         
            -
                     
     | 
| 
      
 432 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 433 
     | 
    
         
            +
                      depResult = callDeps(:execute)
         
     | 
| 
      
 434 
     | 
    
         
            +
                    rescue Exception => e
         
     | 
| 
      
 435 
     | 
    
         
            +
                      @allSteps = []
         
     | 
| 
      
 436 
     | 
    
         
            +
                      raise
         
     | 
| 
      
 437 
     | 
    
         
            +
                    end
         
     | 
| 
      
 438 
     | 
    
         
            +
             
     | 
| 
       412 
439 
     | 
    
         
             
                    @inDeps = false
         
     | 
| 
       413 
     | 
    
         
            -
                     
     | 
| 
      
 440 
     | 
    
         
            +
                    if blockAbort?(depResult)
         
     | 
| 
      
 441 
     | 
    
         
            +
                      @allSteps = []
         
     | 
| 
      
 442 
     | 
    
         
            +
                      return @result && depResult 
         
     | 
| 
      
 443 
     | 
    
         
            +
                    end
         
     | 
| 
       414 
444 
     | 
    
         | 
| 
       415 
445 
     | 
    
         
             
                    Bake::IDEInterface.instance.set_build_info(@projectName, @configName)
         
     | 
| 
       416 
446 
     | 
    
         
             
                    begin
         
     | 
| 
         @@ -445,8 +475,9 @@ module Bake 
     | 
|
| 
       445 
475 
     | 
    
         
             
                          SyncOut.discardStreams()
         
     | 
| 
       446 
476 
     | 
    
         
             
                        end
         
     | 
| 
       447 
477 
     | 
    
         
             
                      end
         
     | 
| 
      
 478 
     | 
    
         
            +
                      @allSteps = []
         
     | 
| 
       448 
479 
     | 
    
         
             
                    end
         
     | 
| 
       449 
     | 
    
         
            -
             
     | 
| 
      
 480 
     | 
    
         
            +
                    
         
     | 
| 
       450 
481 
     | 
    
         
             
                    return (depResult && @result)
         
     | 
| 
       451 
482 
     | 
    
         
             
                  end
         
     | 
| 
       452 
483 
     | 
    
         | 
    
        data/lib/blocks/compile.rb
    CHANGED
    
    | 
         @@ -47,7 +47,7 @@ module Bake 
     | 
|
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
                class Compile < BlockBase
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
                  attr_reader :objects, :include_list, :source_files_ignored_in_lib
         
     | 
| 
      
 50 
     | 
    
         
            +
                  attr_reader :objects, :include_list, :source_files_ignored_in_lib, :object_files_ignored_in_lib
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
                  def mutex
         
     | 
| 
       53 
53 
     | 
    
         
             
                    @mutex ||= Mutex.new
         
     | 
| 
         @@ -513,6 +513,7 @@ module Bake 
     | 
|
| 
       513 
513 
     | 
    
         
             
                  end
         
     | 
| 
       514 
514 
     | 
    
         | 
| 
       515 
515 
     | 
    
         
             
                  def calcObjects
         
     | 
| 
      
 516 
     | 
    
         
            +
                    @object_files_ignored_in_lib = []
         
     | 
| 
       516 
517 
     | 
    
         
             
                    @source_files.each do |source|
         
     | 
| 
       517 
518 
     | 
    
         
             
                      type = get_source_type(source)
         
     | 
| 
       518 
519 
     | 
    
         
             
                      if not type.nil?
         
     | 
| 
         @@ -526,7 +527,13 @@ module Bake 
     | 
|
| 
       526 
527 
     | 
    
         
             
                          end
         
     | 
| 
       527 
528 
     | 
    
         
             
                        end
         
     | 
| 
       528 
529 
     | 
    
         
             
                        @object_files[source] = object
         
     | 
| 
       529 
     | 
    
         
            -
                         
     | 
| 
      
 530 
     | 
    
         
            +
                        if @source_files_ignored_in_lib.include?(source)
         
     | 
| 
      
 531 
     | 
    
         
            +
                          if @source_files_link_directly.include?(source)
         
     | 
| 
      
 532 
     | 
    
         
            +
                            @object_files_ignored_in_lib << object
         
     | 
| 
      
 533 
     | 
    
         
            +
                          end
         
     | 
| 
      
 534 
     | 
    
         
            +
                        else
         
     | 
| 
      
 535 
     | 
    
         
            +
                          @objects << object
         
     | 
| 
      
 536 
     | 
    
         
            +
                        end
         
     | 
| 
       530 
537 
     | 
    
         
             
                      end
         
     | 
| 
       531 
538 
     | 
    
         
             
                    end
         
     | 
| 
       532 
539 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -535,6 +542,7 @@ module Bake 
     | 
|
| 
       535 
542 
     | 
    
         
             
                    return @source_files if @source_files and not @source_files.empty?
         
     | 
| 
       536 
543 
     | 
    
         
             
                    @source_files = []
         
     | 
| 
       537 
544 
     | 
    
         
             
                    @source_files_ignored_in_lib = []
         
     | 
| 
      
 545 
     | 
    
         
            +
                    @source_files_link_directly = []
         
     | 
| 
       538 
546 
     | 
    
         
             
                    @fileTcs = {}
         
     | 
| 
       539 
547 
     | 
    
         | 
| 
       540 
548 
     | 
    
         
             
                    exclude_files = Set.new
         
     | 
| 
         @@ -564,11 +572,17 @@ module Bake 
     | 
|
| 
       564 
572 
     | 
    
         
             
                        if ((!@fileTcs.has_key?(f)) || singleFile)
         
     | 
| 
       565 
573 
     | 
    
         
             
                          @fileTcs[f] = icf
         
     | 
| 
       566 
574 
     | 
    
         
             
                        end
         
     | 
| 
       567 
     | 
    
         
            -
                         
     | 
| 
       568 
     | 
    
         
            -
             
     | 
| 
      
 575 
     | 
    
         
            +
                        if source_files.include?(f) || exclude_files.include?(f)
         
     | 
| 
      
 576 
     | 
    
         
            +
                          if (singleFile)
         
     | 
| 
      
 577 
     | 
    
         
            +
                            @source_files_ignored_in_lib << f if sources.compileOnly || sources.linkDirectly
         
     | 
| 
      
 578 
     | 
    
         
            +
                            @source_files_link_directly << f if sources.linkDirectly
         
     | 
| 
      
 579 
     | 
    
         
            +
                          end
         
     | 
| 
      
 580 
     | 
    
         
            +
                          next
         
     | 
| 
      
 581 
     | 
    
         
            +
                        end
         
     | 
| 
       569 
582 
     | 
    
         
             
                        source_files << f
         
     | 
| 
       570 
583 
     | 
    
         
             
                        @source_files << f
         
     | 
| 
       571 
     | 
    
         
            -
                        @source_files_ignored_in_lib << f if sources.compileOnly
         
     | 
| 
      
 584 
     | 
    
         
            +
                        @source_files_ignored_in_lib << f if sources.compileOnly || sources.linkDirectly
         
     | 
| 
      
 585 
     | 
    
         
            +
                        @source_files_link_directly << f if sources.linkDirectly
         
     | 
| 
       572 
586 
     | 
    
         
             
                      end
         
     | 
| 
       573 
587 
     | 
    
         
             
                    end
         
     | 
| 
       574 
588 
     | 
    
         | 
    
        data/lib/blocks/executable.rb
    CHANGED
    
    | 
         @@ -6,10 +6,14 @@ module Bake 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
                class Executable < BlockBase
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
                  attr_reader :compileBlock
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       9 
11 
     | 
    
         
             
                  def initialize(block, config, referencedConfigs, compileBlock)
         
     | 
| 
       10 
12 
     | 
    
         
             
                    super(block, config, referencedConfigs)
         
     | 
| 
       11 
13 
     | 
    
         
             
                    @compileBlock = compileBlock
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
                    block.set_executable(self)
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       13 
17 
     | 
    
         
             
                    calcArtifactName
         
     | 
| 
       14 
18 
     | 
    
         
             
                    calcMapFile
         
     | 
| 
       15 
19 
     | 
    
         
             
                    calcLinkerScript
         
     | 
    
        data/lib/common/cleanup.rb
    CHANGED
    
    
    
        data/lib/common/version.rb
    CHANGED
    
    
    
        data/lib/tocxx.rb
    CHANGED
    
    | 
         @@ -45,10 +45,19 @@ module Bake 
     | 
|
| 
       45 
45 
     | 
    
         
             
              class ToCxx
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                @@linkBlock = 0
         
     | 
| 
      
 48 
     | 
    
         
            +
                @@include_deps = {}
         
     | 
| 
       48 
49 
     | 
    
         | 
| 
       49 
50 
     | 
    
         
             
                def self.linkBlock
         
     | 
| 
       50 
51 
     | 
    
         
             
                  @@linkBlock = 1
         
     | 
| 
       51 
52 
     | 
    
         
             
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
                
         
     | 
| 
      
 54 
     | 
    
         
            +
                def self.include_deps
         
     | 
| 
      
 55 
     | 
    
         
            +
                  @@include_deps
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                def self.reset_include_deps
         
     | 
| 
      
 59 
     | 
    
         
            +
                  @@include_deps = {}
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
       52 
61 
     | 
    
         | 
| 
       53 
62 
     | 
    
         
             
                def initialize
         
     | 
| 
       54 
63 
     | 
    
         
             
                  @configTcMap = {}
         
     | 
| 
         @@ -232,6 +241,21 @@ module Bake 
     | 
|
| 
       232 
241 
     | 
    
         
             
                  end
         
     | 
| 
       233 
242 
     | 
    
         
             
                end
         
     | 
| 
       234 
243 
     | 
    
         | 
| 
      
 244 
     | 
    
         
            +
                def makeDepOverview
         
     | 
| 
      
 245 
     | 
    
         
            +
                  return if !Bake.options.dev_features.any? {|feature| feature.start_with?("dep-overview=") }
         
     | 
| 
      
 246 
     | 
    
         
            +
                  Blocks::ALL_BLOCKS.each do |name,block|
         
     | 
| 
      
 247 
     | 
    
         
            +
                    block.bes.each do |depInc|
         
     | 
| 
      
 248 
     | 
    
         
            +
                      @@include_deps[block.projectDir] = Set.new if !@@include_deps.has_key?(block.projectDir)
         
     | 
| 
      
 249 
     | 
    
         
            +
                      if (Metamodel::Dependency === depInc)
         
     | 
| 
      
 250 
     | 
    
         
            +
                        c = @referencedConfigs[depInc.name].detect { |configRef| configRef.name == depInc.config }
         
     | 
| 
      
 251 
     | 
    
         
            +
                        @@include_deps[block.projectDir] << Blocks::ALL_BLOCKS[c.qname].projectDir
         
     | 
| 
      
 252 
     | 
    
         
            +
                      else
         
     | 
| 
      
 253 
     | 
    
         
            +
                        @@include_deps[block.projectDir] << depInc.name
         
     | 
| 
      
 254 
     | 
    
         
            +
                      end
         
     | 
| 
      
 255 
     | 
    
         
            +
                    end
         
     | 
| 
      
 256 
     | 
    
         
            +
                  end
         
     | 
| 
      
 257 
     | 
    
         
            +
                end
         
     | 
| 
      
 258 
     | 
    
         
            +
                
         
     | 
| 
       235 
259 
     | 
    
         
             
                def makeIncs
         
     | 
| 
       236 
260 
     | 
    
         
             
                  Blocks::ALL_BLOCKS.each do |name,block|
         
     | 
| 
       237 
261 
     | 
    
         
             
                    bes2 = []
         
     | 
| 
         @@ -692,6 +716,8 @@ module Bake 
     | 
|
| 
       692 
716 
     | 
    
         
             
                      makeGraph
         
     | 
| 
       693 
717 
     | 
    
         
             
                      puts "Profiling #{Time.now - $timeStart}: make includes..." if Bake.options.profiling
         
     | 
| 
       694 
718 
     | 
    
         
             
                      makeIncs
         
     | 
| 
      
 719 
     | 
    
         
            +
                      puts "Profiling #{Time.now - $timeStart}: make dep overview..." if Bake.options.profiling
         
     | 
| 
      
 720 
     | 
    
         
            +
                      makeDepOverview
         
     | 
| 
       695 
721 
     | 
    
         
             
                      puts "Profiling #{Time.now - $timeStart}: make uniq..." if Bake.options.profiling
         
     | 
| 
       696 
722 
     | 
    
         
             
                      makeUniq
         
     | 
| 
       697 
723 
     | 
    
         
             
                      puts "Profiling #{Time.now - $timeStart}: convert to building blocks..." if Bake.options.profiling
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bake-toolkit
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.63.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Alexander Schaal
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-06-10 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rtext
         
     |