bake-toolkit 2.64.1 → 2.65.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd55725b65ac6296092196df2fe85d8dead231341649db552cac76415643ba54
4
- data.tar.gz: c8fc064f5c929e3968218bde7aee9b2548ee00bfcc9d55bc762f0e1ab917f0da
3
+ metadata.gz: 02d88a06a0d80fbac0d25a134ad432e52cd63ba7f99ba89f4623704a84be2abf
4
+ data.tar.gz: 35954f6e1a375a04c8959a9fbd67fc372208b5e79d159ea369260a6753e94e14
5
5
  SHA512:
6
- metadata.gz: 8cad40c4ee60207533b867a29b53fb6efa8e0d5d12d1f9d929535fe5a682bc08a585ea0c64b5af3b3bcdcb80b920b3a924c460a2441ab33e1edda790bccd5b70
7
- data.tar.gz: 577f622dc1d27c4abfa72b0ec484ffe2054f4bc75e67ae1afb4e48c598447d928ec463e6bd4cf3126fed0e9eeee743436852f1741cd54e7fa1d7809670256ccc
6
+ metadata.gz: 94ff89a2f8b098e2ff5ac7c2b6737f9379bc499444ade76aee30829b06975093831b619e8b729f58ce62424f005b10ad9366c7039641e5fce0876f9fa460d6c1
7
+ data.tar.gz: 490fd16f8285638f1a882af9e74f3efda987a4c2cda40a22a45f0e428c571a63ba7c70f91291e0ee77668b60b1e341a04ea25e8b0153f864d2e47e7f9afa81ed
@@ -237,7 +237,7 @@ module Bake
237
237
  if adaptRoots.length > 0
238
238
  adaptRoots.each do |adapt|
239
239
  Bake::Config::checkVer(adapt.requiredBakeVersion)
240
- adapt.mainProject = @mainProjectName if adapt.mainProject == "__THIS__"
240
+ adapt.mainProject = proj.name if adapt.mainProject == "__THIS__"
241
241
  adaptConfigs = adapt.getConfig
242
242
  AdaptConfig.checkSyntax(adaptConfigs, filename, true)
243
243
  adaptConfigs.each do |ac|
@@ -0,0 +1,34 @@
1
+ require_relative'../../common/utils'
2
+ require_relative '../toolchain/provider'
3
+ require_relative '../toolchain/errorparser/error_parser'
4
+ require_relative '../toolchain/errorparser/gcc_compiler_error_parser'
5
+ require_relative '../toolchain/errorparser/gcc_linker_error_parser'
6
+
7
+ module Bake
8
+ module Toolchain
9
+ CLANG_BITCODE_CHAIN = Provider.add("CLANG_BITCODE")
10
+
11
+ CLANG_BITCODE_CHAIN[:COMPILER][:CPP].update({
12
+ :COMMAND => "clang++",
13
+ :DEFINE_FLAG => "-D",
14
+ :OBJECT_FILE_FLAG => "-o",
15
+ :OBJ_FLAG_SPACE => true,
16
+ :OBJECT_FILE_ENDING => ".bc",
17
+ :COMPILE_FLAGS => "-emit-llvm -c ",
18
+ :ERROR_PARSER => nil,
19
+ :DEP_FLAGS => "-MD -MF",
20
+ :DEP_FLAGS_SPACE => true,
21
+ })
22
+
23
+ CLANG_BITCODE_CHAIN[:COMPILER][:C] = Utils.deep_copy(CLANG_BITCODE_CHAIN[:COMPILER][:CPP])
24
+ CLANG_BITCODE_CHAIN[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
25
+ CLANG_BITCODE_CHAIN[:COMPILER][:C][:COMMAND] = "clang"
26
+
27
+ CLANG_BITCODE_CHAIN[:ARCHIVER][:COMMAND] = "llvm-link"
28
+ CLANG_BITCODE_CHAIN[:ARCHIVER][:ARCHIVE_FLAGS] = "-o"
29
+ CLANG_BITCODE_CHAIN[:ARCHIVER][:ARCHIVE_FILE_ENDING] = ".bc"
30
+
31
+ CLANG_BITCODE_CHAIN[:LINKER][:COMMAND] = "llvm-link"
32
+ CLANG_BITCODE_CHAIN[:LINKER][:EXE_FLAG] = "-o"
33
+ end
34
+ end
@@ -88,6 +88,7 @@ module Bake
88
88
  :PREFIX => "$(ArchiverPrefix)",
89
89
  :ARCHIVE_FLAGS => "",
90
90
  :ARCHIVE_FLAGS_SPACE => true,
91
+ :ARCHIVE_FILE_ENDING => ".a",
91
92
  :FLAGS => "",
92
93
  :ERROR_PARSER => nil,
93
94
  :FILE_COMMAND => ""
@@ -163,6 +164,7 @@ require_relative '../toolchain/diab'
163
164
  require_relative '../toolchain/gcc'
164
165
  require_relative '../toolchain/clang'
165
166
  require_relative '../toolchain/clang_analyze'
167
+ require_relative '../toolchain/clang_bitcode'
166
168
  require_relative '../toolchain/ti'
167
169
  require_relative '../toolchain/greenhills'
168
170
  require_relative '../toolchain/keil'
@@ -2,6 +2,7 @@ require_relative '../bake/libElement'
2
2
  require_relative '../bake/model/metamodel'
3
3
  require_relative '../common/abortException'
4
4
  require_relative "../multithread/job"
5
+ gem "thwait", "0.1.0"
5
6
  require "thwait"
6
7
 
7
8
  module Bake
@@ -37,7 +37,7 @@ begin
37
37
  x = longname(shortname(file))
38
38
  end
39
39
 
40
- rescue Fiddle::DLError
40
+ rescue Exception
41
41
 
42
42
  def realname file
43
43
  file
@@ -52,7 +52,7 @@ module Bake
52
52
 
53
53
  class Compile < BlockBase
54
54
 
55
- attr_reader :objects, :source_files, :source_files_compiled, :include_list, :source_files_ignored_in_lib, :object_files_ignored_in_lib
55
+ attr_reader :objects, :source_files, :source_files_compiled, :include_list, :source_files_ignored_in_lib, :object_files_ignored_in_lib, :object_files
56
56
 
57
57
  def mutex
58
58
  @mutex ||= Mutex.new
@@ -133,14 +133,18 @@ module Bake
133
133
  return false
134
134
  end
135
135
 
136
+ def calcObjectBasename(object)
137
+ object.chomp(File.extname(object))
138
+ end
139
+
136
140
  def calcCmdlineFile(object)
137
- File.expand_path(object[0..-3] + ".cmdline", @projectDir)
141
+ File.expand_path(calcObjectBasename(object) + ".cmdline", @projectDir)
138
142
  end
139
143
 
140
144
  def calcDepFile(object, type)
141
145
  dep_filename = nil
142
146
  if type != :ASM
143
- dep_filename = object[0..-3] + ".d"
147
+ dep_filename = calcObjectBasename(object) + ".d"
144
148
  end
145
149
  dep_filename
146
150
  end
@@ -561,7 +565,7 @@ module Bake
561
565
  pr = sources.name
562
566
  pr = pr[2..-1] if pr.start_with?"./"
563
567
 
564
- res = Dir.glob_dir(pr, @projectDir).sort
568
+ res = Dir.glob_dir(pr, @projectDir).select {|f| !get_source_type(f).nil?}.sort
565
569
  if res.length == 0 and cleaning == false
566
570
  if not pr.include?"*" and not pr.include?"?"
567
571
  Bake.formatter.printError("Source file '#{pr}' not found", sources)
@@ -190,9 +190,15 @@ module Bake
190
190
  BlockBase.writeCmdLineFile(cmd, cmdLineFile)
191
191
  success = true
192
192
  consoleOutput = ""
193
- success, consoleOutput = ProcessHelper.run(realCmd, false, false, outPipe) if !Bake.options.dry
194
- process_result(cmdLinePrint, consoleOutput, linker[:ERROR_PARSER], nil, reason, success)
195
-
193
+ retry_linking = Bake.options.dev_features.include?("retry-linking") ? 5 : 1
194
+ begin
195
+ success, consoleOutput = ProcessHelper.run(realCmd, false, false, outPipe) if !Bake.options.dry
196
+ process_result(cmdLinePrint, consoleOutput, linker[:ERROR_PARSER], nil, reason, success)
197
+ rescue Exception
198
+ retry_linking -= 1
199
+ retry if !success && retry_linking > 0
200
+ raise
201
+ end
196
202
  check_config_file()
197
203
  end
198
204
 
@@ -18,10 +18,13 @@ module Bake
18
18
  end
19
19
 
20
20
  def calcArtifactName
21
+ archiver = @block.tcs[:ARCHIVER]
22
+ fileEnding = archiver[:ARCHIVE_FILE_ENDING]
23
+
21
24
  if not @config.artifactName.nil? and @config.artifactName.name != ""
22
25
  baseFilename = @config.artifactName.name
23
26
  else
24
- baseFilename = "lib#{@projectName}.a"
27
+ baseFilename = "lib#{@projectName}#{fileEnding}"
25
28
  end
26
29
  if !@config.artifactExtension.nil? && @config.artifactExtension.name != "default"
27
30
  extension = ".#{@config.artifactExtension.name}"
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.64.1"
4
+ "2.65.1"
5
5
  end
6
6
 
7
7
  def self.printBakeVersion(ry = "")
@@ -859,6 +859,7 @@ module Bake
859
859
  !Bake.options.linkOnly &&
860
860
  !Bake.options.prepro &&
861
861
  !Bake.options.compileOnly &&
862
+ !Bake.options.dry &&
862
863
  !Bake.options.clean
863
864
 
864
865
  ccChecks = []
@@ -889,15 +890,14 @@ module Bake
889
890
  b.source_files_compiled.each do |s|
890
891
  inCompilation << File.expand_path(s, b.projectDir)
891
892
  type = b.get_source_type(s)
892
- if type != :ASM
893
- b.objects.each do |o|
894
- dep_filename = b.calcDepFile(o, type)
895
- dep_filename_conv = b.calcDepFileConv(dep_filename)
896
- File.readlines(File.expand_path(dep_filename_conv, b.projectDir)).map{|line| line.strip}.each do |dep|
897
- header = File.expand_path(dep, b.projectDir)
898
- if File.exist?(header)
899
- inCompilation << header
900
- end
893
+ if type != :ASM && b.object_files && b.object_files.has_key?(s)
894
+ o = b.object_files[s]
895
+ dep_filename = b.calcDepFile(o, type)
896
+ dep_filename_conv = b.calcDepFileConv(dep_filename)
897
+ File.readlines(File.expand_path(dep_filename_conv, b.projectDir)).map{|line| line.strip}.each do |dep|
898
+ header = File.expand_path(dep, b.projectDir)
899
+ if File.exist?(header)
900
+ inCompilation << header
901
901
  end
902
902
  end
903
903
  end
@@ -905,6 +905,7 @@ module Bake
905
905
  end
906
906
  end
907
907
  end
908
+
908
909
  pnPwd = Pathname.new(Dir.pwd)
909
910
  ccNotIncluded = (ccIncludes - inCompilation).to_a
910
911
  ccNotExcluded = inCompilation.select {|i| ccExcludes.include?(i) }
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.64.1
4
+ version: 2.65.1
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-07-24 00:00:00.000000000 Z
11
+ date: 2020-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: thwait
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 0.1.0
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 0.1.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: e2mmap
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -204,6 +204,7 @@ files:
204
204
  - lib/bake/subst.rb
205
205
  - lib/bake/toolchain/clang.rb
206
206
  - lib/bake/toolchain/clang_analyze.rb
207
+ - lib/bake/toolchain/clang_bitcode.rb
207
208
  - lib/bake/toolchain/colorizing_formatter.rb
208
209
  - lib/bake/toolchain/diab.rb
209
210
  - lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb