bake-toolkit 2.14.0 → 2.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bakery +3 -1
  3. data/documentation/_build/html/_sources/changelog.txt +8 -1
  4. data/documentation/_build/html/_sources/index.txt +1 -1
  5. data/documentation/_build/html/_sources/syntax/derive_configs.txt +13 -0
  6. data/documentation/_build/html/_static/syntax.html +5 -5
  7. data/documentation/_build/html/changelog.html +13 -4
  8. data/documentation/_build/html/commandline/commandline.html +3 -3
  9. data/documentation/_build/html/concepts/build_hierarchy.html +3 -3
  10. data/documentation/_build/html/concepts/concepts.html +3 -3
  11. data/documentation/_build/html/concepts/the_main_project.html +3 -3
  12. data/documentation/_build/html/concepts/the_project_meta_file.html +3 -3
  13. data/documentation/_build/html/genindex.html +3 -3
  14. data/documentation/_build/html/ide/eclipse/eclipse.html +3 -3
  15. data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +3 -3
  16. data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +3 -3
  17. data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +3 -3
  18. data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +3 -3
  19. data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +3 -3
  20. data/documentation/_build/html/ide/ide_integrations.html +3 -3
  21. data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +3 -3
  22. data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +3 -3
  23. data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +3 -3
  24. data/documentation/_build/html/ide/vs/vs.html +3 -3
  25. data/documentation/_build/html/ide/vs/vs_install.html +3 -3
  26. data/documentation/_build/html/index.html +6 -6
  27. data/documentation/_build/html/install/install_bake.html +3 -3
  28. data/documentation/_build/html/internal.html +3 -3
  29. data/documentation/_build/html/known_issues.html +3 -3
  30. data/documentation/_build/html/license.html +3 -3
  31. data/documentation/_build/html/performance/performance.html +3 -3
  32. data/documentation/_build/html/quickstart/quickstart.html +3 -3
  33. data/documentation/_build/html/search.html +3 -3
  34. data/documentation/_build/html/searchindex.js +1 -1
  35. data/documentation/_build/html/syntax/adapt_configs.html +3 -3
  36. data/documentation/_build/html/syntax/derive_configs.html +14 -3
  37. data/documentation/_build/html/syntax/project_meta_syntax.html +8 -8
  38. data/documentation/_build/html/syntax/syntax.html +4 -3
  39. data/documentation/_build/html/syntax/variable_substitutions.html +3 -3
  40. data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +3 -3
  41. data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +3 -3
  42. data/documentation/_build/html/tips_and_tricks/the_bakery.html +3 -3
  43. data/documentation/_build/html/tips_and_tricks/the_clang.html +3 -3
  44. data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +3 -3
  45. data/documentation/_build/html/why_bake/why_bake.html +5 -5
  46. data/lib/bake/config/loader.rb +6 -2
  47. data/lib/bake/mergeConfig.rb +9 -9
  48. data/lib/bake/model/metamodel.rb +2 -2
  49. data/lib/bake/options/options.rb +1 -1
  50. data/lib/bake/subst.rb +6 -5
  51. data/lib/bakery/options/options.rb +2 -2
  52. data/lib/blocks/block.rb +12 -7
  53. data/lib/blocks/compile.rb +12 -3
  54. data/lib/blocks/library.rb +17 -10
  55. data/lib/common/options/parser.rb +29 -7
  56. data/lib/common/version.rb +1 -1
  57. data/lib/vs/options.rb +1 -1
  58. metadata +2 -2
@@ -42,8 +42,8 @@ module Bake
42
42
  puts "Note: all parameters except -b, -m and -h will be passed to bake - see bake help for more options."
43
43
  end
44
44
 
45
- def parse_options()
46
- parse_internal(true)
45
+ def parse_options(bakeOptions)
46
+ parse_internal(true, bakeOptions)
47
47
  set_collection_dir(Dir.pwd) if @collection_dir.nil?
48
48
  if @roots.length == 0
49
49
  @roots = @def_roots
data/lib/blocks/block.rb CHANGED
@@ -15,7 +15,7 @@ module Bake
15
15
 
16
16
  class Block
17
17
 
18
- attr_reader :lib_elements, :projectDir, :library, :config, :projectName
18
+ attr_reader :lib_elements, :projectDir, :library, :config, :projectName, :warnConvValid
19
19
  attr_accessor :visited, :inDeps, :result, :circularCheck
20
20
 
21
21
  def startupSteps
@@ -70,17 +70,20 @@ module Bake
70
70
  @lib_elements = Bake::LibElements.calcLibElements(self)
71
71
  end
72
72
 
73
- def convPath(dir, elem=nil)
73
+ def convPath(dir, elem=nil, warnIfLocal=false)
74
74
  if dir.respond_to?("name")
75
75
  d = dir.name
76
76
  elem = dir
77
77
  else
78
78
  d = dir
79
79
  end
80
+
81
+ @warnConvValid = false
80
82
 
81
83
  return d if Bake.options.no_autodir
82
84
 
83
85
  inc = d.split("/")
86
+ res = nil
84
87
  if (inc[0] == @projectName)
85
88
  res = inc[1..-1].join("/") # within self
86
89
  res = "." if res == ""
@@ -92,15 +95,11 @@ module Bake
92
95
  else
93
96
  if (inc[0] != "..")
94
97
  return d if File.exists?(@projectDir + "/" + d) # e.g. "include"
95
-
96
98
  # check if dir exists without Project.meta entry
97
99
  Bake.options.roots.each do |r|
98
100
  absIncDir = r+"/"+d
99
101
  if File.exists?(absIncDir)
100
102
  res = File.rel_from_to_project(@projectDir,absIncDir,false)
101
- if not res.nil?
102
- return res
103
- end
104
103
  end
105
104
  end
106
105
  else
@@ -109,8 +108,14 @@ module Bake
109
108
  end
110
109
  end
111
110
 
112
- res = d # relative from self as last resort
111
+ if res.nil? # relative from self as last resort
112
+ warnIfLocal = false # no path magic -> no warning
113
+ res = d
114
+ end
113
115
  end
116
+
117
+ @warnConvValid = File.exists?(@projectDir + "/" + d) if warnIfLocal # only warn if path magic hides local path
118
+
114
119
  res
115
120
  end
116
121
 
@@ -243,6 +243,10 @@ module Bake
243
243
 
244
244
  calcSources
245
245
  calcObjects
246
+
247
+ @incWarns.each do |x|
248
+ Bake.formatter.printInfo("IncludeDir '#{x[0].name}' will be converted to '#{x[1]}' although local path exists. If not intended, use './#{x[0].name}'.", x[0])
249
+ end if Bake.options.verbose >= 1
246
250
 
247
251
  @error_strings = {}
248
252
 
@@ -424,18 +428,23 @@ module Bake
424
428
  return Bake.options.roots.map { |r| File.rel_from_to_project(@projectDir,r,false) }
425
429
  end
426
430
 
427
- i = orgBlock.convPath(inc)
431
+ i = orgBlock.convPath(inc,nil,true)
428
432
  if orgBlock != @block
429
433
  if not File.is_absolute?(i)
430
434
  i = File.rel_from_to_project(@projectDir,orgBlock.config.parent.get_project_dir) + i
431
435
  end
432
436
  end
433
437
 
434
- Pathname.new(i).cleanpath
438
+ x = Pathname.new(i).cleanpath
439
+ if orgBlock.warnConvValid
440
+ @incWarns << [inc, x]
441
+ end
442
+ x
435
443
  end
436
444
 
437
445
  def calcIncludes
438
-
446
+ @incWarns = []
447
+
439
448
  @include_list = @config.includeDir.uniq.map do |dir|
440
449
  mapInclude(dir, @block)
441
450
  end
@@ -6,21 +6,28 @@ module Bake
6
6
 
7
7
  class Library < BlockBase
8
8
 
9
- attr_reader :compileBlock
9
+ attr_reader :compileBlock, :archive_name
10
10
 
11
11
  def initialize(block, config, referencedConfigs, tcs, compileBlock)
12
12
  super(block,config, referencedConfigs, tcs)
13
13
  @compileBlock = compileBlock
14
14
 
15
15
  block.set_library(self)
16
+
17
+ calcArtifactName
16
18
  end
17
19
 
18
- def archive_name()
19
- @archive_name ||= File.join([@output_dir, "lib#{@projectName}.a"])
20
+ def calcArtifactName
21
+ if not @config.artifactName.nil? and @config.artifactName.name != ""
22
+ baseFilename = @config.artifactName.name
23
+ else
24
+ baseFilename = "lib#{@projectName}.a"
25
+ end
26
+ @archive_name ||= File.join([@output_dir, baseFilename])
20
27
  end
21
28
 
22
29
  def calcCmdlineFile()
23
- archive_name + ".cmdline"
30
+ @archive_name + ".cmdline"
24
31
  end
25
32
 
26
33
  def ignore?
@@ -29,9 +36,9 @@ module Bake
29
36
 
30
37
  def needed?
31
38
  # lib
32
- return "because library does not exist" if not File.exists?(archive_name)
39
+ return "because library does not exist" if not File.exists?(@archive_name)
33
40
 
34
- aTime = File.mtime(archive_name)
41
+ aTime = File.mtime(@archive_name)
35
42
 
36
43
  # sources
37
44
  @compileBlock.objects.each do |obj|
@@ -67,20 +74,20 @@ module Bake
67
74
  cmd += archiver[:ARCHIVE_FLAGS].split(" ")
68
75
 
69
76
  if archiver[:ARCHIVE_FLAGS_SPACE]
70
- cmd << archive_name
77
+ cmd << @archive_name
71
78
  else
72
- cmd[cmd.length-1] += archive_name
79
+ cmd[cmd.length-1] += @archive_name
73
80
  end
74
81
 
75
82
  cmd += @compileBlock.objects
76
83
 
77
84
  return true if cmdLineCheck and BlockBase.isCmdLineEqual?(cmd, cmdLineFile)
78
85
 
79
- BlockBase.prepareOutput(archive_name)
86
+ BlockBase.prepareOutput(@archive_name)
80
87
 
81
88
  BlockBase.writeCmdLineFile(cmd, cmdLineFile)
82
89
  success, consoleOutput = ProcessHelper.run(cmd, false, false)
83
- process_result(cmd, consoleOutput, archiver[:ERROR_PARSER], "Creating #{archive_name}", reason, success)
90
+ process_result(cmd, consoleOutput, archiver[:ERROR_PARSER], "Creating #{@archive_name}", reason, success)
84
91
 
85
92
  check_config_file()
86
93
  return success
@@ -24,25 +24,47 @@ module Bake
24
24
  opt.block
25
25
  end
26
26
 
27
- def parse_internal(ignore_invalid = false)
27
+ def valid?(argument)
28
+ @arguments.include?argument
29
+ end
30
+
31
+ def has_parameter?(argument)
32
+ return false unless valid?(argument)
33
+ @arguments[argument].parameters.length == 1
34
+ end
35
+
36
+ def parse_internal(ignore_invalid, subOptions = nil)
28
37
  pos = 0
29
38
  begin
30
39
  while pos < @argv.length do
31
- if not @arguments.include?@argv[pos]
32
- index = @argv[pos].index('-')
40
+ arg = @argv[pos]
41
+ if not valid?arg
42
+
43
+ # used in bake config, must be passed from bakery to bake
44
+ if subOptions and subOptions.valid?arg
45
+ if subOptions.has_parameter?(arg)
46
+ if pos+1 < @argv.length and @argv[pos+1][0] != "-"
47
+ pos = pos + 1
48
+ else
49
+ raise "Argument for option #{arg} missing"
50
+ end
51
+ end
52
+ end
53
+
54
+ index = arg.index('-')
33
55
  if index != nil and index == 0
34
- raise "Option #{@argv[pos]} unknown" if not ignore_invalid
56
+ raise "Option #{arg} unknown" if not ignore_invalid
35
57
  else
36
- @arguments[""].call(@argv[pos]) # default paramter without "-"
58
+ @arguments[""].call(arg) # default paramter without "-"
37
59
  end
38
60
  else
39
- option = @arguments[@argv[pos]]
61
+ option = @arguments[arg]
40
62
  if option.parameters.length == 1
41
63
  if pos+1 < @argv.length and @argv[pos+1][0] != "-"
42
64
  option.call(@argv[pos+1])
43
65
  pos = pos + 1
44
66
  else
45
- raise "Argument for option #{@argv[pos]} missing"
67
+ raise "Argument for option #{arg} missing"
46
68
  end
47
69
  else
48
70
  option.call()
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.14.0"
4
+ "2.15.0"
5
5
  end
6
6
  end
7
7
 
data/lib/vs/options.rb CHANGED
@@ -31,7 +31,7 @@ module Bake
31
31
  end
32
32
 
33
33
  def parse_options()
34
- parse_internal()
34
+ parse_internal(false)
35
35
  @roots << Dir.pwd if @roots.length == 0
36
36
  end
37
37
 
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.14.0
4
+ version: 2.15.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: 2016-01-14 00:00:00.000000000 Z
11
+ date: 2016-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext