autobuild 1.17.0 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +107 -0
  3. data/Gemfile +2 -1
  4. data/Rakefile +1 -4
  5. data/autobuild.gemspec +14 -11
  6. data/bin/autobuild +4 -3
  7. data/lib/autobuild.rb +4 -5
  8. data/lib/autobuild/build_logfile.rb +6 -4
  9. data/lib/autobuild/config.rb +90 -40
  10. data/lib/autobuild/configurable.rb +30 -18
  11. data/lib/autobuild/environment.rb +126 -120
  12. data/lib/autobuild/exceptions.rb +48 -31
  13. data/lib/autobuild/import/archive.rb +134 -82
  14. data/lib/autobuild/import/cvs.rb +28 -24
  15. data/lib/autobuild/import/darcs.rb +13 -16
  16. data/lib/autobuild/import/git-lfs.rb +37 -30
  17. data/lib/autobuild/import/git.rb +231 -179
  18. data/lib/autobuild/import/hg.rb +23 -18
  19. data/lib/autobuild/import/svn.rb +48 -29
  20. data/lib/autobuild/importer.rb +530 -499
  21. data/lib/autobuild/mail_reporter.rb +77 -77
  22. data/lib/autobuild/package.rb +171 -101
  23. data/lib/autobuild/packages/autotools.rb +47 -42
  24. data/lib/autobuild/packages/cmake.rb +71 -65
  25. data/lib/autobuild/packages/dummy.rb +9 -8
  26. data/lib/autobuild/packages/genom.rb +1 -1
  27. data/lib/autobuild/packages/gnumake.rb +19 -13
  28. data/lib/autobuild/packages/import.rb +2 -6
  29. data/lib/autobuild/packages/orogen.rb +32 -31
  30. data/lib/autobuild/packages/pkgconfig.rb +2 -2
  31. data/lib/autobuild/packages/python.rb +7 -2
  32. data/lib/autobuild/packages/ruby.rb +22 -17
  33. data/lib/autobuild/parallel.rb +35 -39
  34. data/lib/autobuild/pkgconfig.rb +25 -13
  35. data/lib/autobuild/progress_display.rb +23 -23
  36. data/lib/autobuild/rake_task_extension.rb +6 -6
  37. data/lib/autobuild/reporting.rb +38 -26
  38. data/lib/autobuild/subcommand.rb +72 -65
  39. data/lib/autobuild/test.rb +8 -7
  40. data/lib/autobuild/test_utility.rb +10 -9
  41. data/lib/autobuild/timestamps.rb +28 -23
  42. data/lib/autobuild/tools.rb +17 -16
  43. data/lib/autobuild/utility.rb +16 -18
  44. data/lib/autobuild/version.rb +1 -1
  45. metadata +39 -38
@@ -36,7 +36,7 @@ def builddir
36
36
  @builddir
37
37
  else
38
38
  ancestors.each do |klass|
39
- if result = klass.instance_variable_get(:@builddir)
39
+ if (result = klass.instance_variable_get(:@builddir))
40
40
  return result
41
41
  end
42
42
  end
@@ -45,8 +45,13 @@ def builddir
45
45
  end
46
46
 
47
47
  def builddir=(new)
48
- raise ConfigException, "absolute builddirs are not supported" if (Pathname.new(new).absolute?)
49
- raise ConfigException, "builddir must be non-nil and non-empty" if (new.nil? || new.empty?)
48
+ if new.nil? || new.empty?
49
+ raise ConfigException, "builddir must be non-nil and non-empty"
50
+ end
51
+ if Pathname.new(new).absolute?
52
+ raise ConfigException, "absolute builddirs are not supported"
53
+ end
54
+
50
55
  @builddir = new
51
56
  end
52
57
  end
@@ -54,15 +59,21 @@ def builddir=(new)
54
59
 
55
60
  def builddir=(new)
56
61
  raise ConfigException.new(self), "builddir must be non-empty" if new.empty?
62
+
57
63
  @builddir = new
58
64
  end
65
+
59
66
  # Returns the absolute builddir
60
- def builddir; File.expand_path(@builddir || self.class.builddir, srcdir) end
67
+ def builddir
68
+ File.expand_path(@builddir || self.class.builddir, srcdir)
69
+ end
61
70
 
62
71
  # Build stamp
63
72
  # This returns the name of the file which marks when the package has been
64
73
  # successfully built for the last time. The path is absolute
65
- def buildstamp; "#{builddir}/#{STAMPFILE}" end
74
+ def buildstamp
75
+ "#{builddir}/#{STAMPFILE}"
76
+ end
66
77
 
67
78
  def prepare_for_forced_build
68
79
  super
@@ -74,9 +85,7 @@ def prepare_for_forced_build
74
85
  def prepare_for_rebuild
75
86
  super
76
87
 
77
- if File.exist?(builddir) && builddir != srcdir
78
- FileUtils.rm_rf builddir
79
- end
88
+ FileUtils.rm_rf(builddir) if File.exist?(builddir) && builddir != srcdir
80
89
  end
81
90
 
82
91
  def ensure_dependencies_installed
@@ -87,9 +96,13 @@ def ensure_dependencies_installed
87
96
 
88
97
  def prepare
89
98
  source_tree srcdir do |pkg|
90
- pkg.exclude << Regexp.new("^#{Regexp.quote(builddir)}") if builddir != srcdir
91
- pkg.exclude << Regexp.new("^#{Regexp.quote(doc_dir)}") if doc_dir && (doc_dir != srcdir)
92
- pkg.exclude.concat(self.source_tree_excludes)
99
+ if builddir != srcdir
100
+ pkg.exclude << Regexp.new("^#{Regexp.quote(builddir)}")
101
+ end
102
+ if doc_dir && (doc_dir != srcdir)
103
+ pkg.exclude << Regexp.new("^#{Regexp.quote(doc_dir)}")
104
+ end
105
+ pkg.exclude.concat(source_tree_excludes)
93
106
  end
94
107
 
95
108
  super
@@ -104,7 +117,7 @@ def prepare
104
117
  end
105
118
  task "#{name}-prepare" => configurestamp
106
119
 
107
- file buildstamp => [ srcdir, configurestamp ] do
120
+ file buildstamp => [srcdir, configurestamp] do
108
121
  isolate_errors do
109
122
  ensure_dependencies_installed
110
123
  build
@@ -118,9 +131,11 @@ def prepare
118
131
  # Configure the builddir directory before starting make
119
132
  def configure
120
133
  if File.exist?(builddir) && !File.directory?(builddir)
121
- raise ConfigException.new(self, 'configure'), "#{builddir} already exists but is not a directory"
134
+ raise ConfigException.new(self, 'configure'),
135
+ "#{builddir} already exists but is not a directory"
122
136
  end
123
- FileUtils.mkdir_p builddir if !File.directory?(builddir)
137
+
138
+ FileUtils.mkdir_p builddir unless File.directory?(builddir)
124
139
 
125
140
  yield if block_given?
126
141
 
@@ -128,9 +143,6 @@ def configure
128
143
  end
129
144
 
130
145
  # Do the build in builddir
131
- def build
132
- end
146
+ def build; end
133
147
  end
134
148
  end
135
-
136
-
@@ -3,12 +3,12 @@
3
3
  require 'utilrb/hash/map_value'
4
4
 
5
5
  module Autobuild
6
- @windows = RbConfig::CONFIG["host_os"] =~%r!(msdos|mswin|djgpp|mingw|[Ww]indows)!
6
+ @windows = RbConfig::CONFIG["host_os"] =~ /(msdos|mswin|djgpp|mingw|[Ww]indows)/
7
7
  def self.windows?
8
8
  @windows
9
9
  end
10
10
 
11
- @macos = RbConfig::CONFIG["host_os"] =~%r!([Dd]arwin)!
11
+ @macos = RbConfig::CONFIG["host_os"] =~ /([Dd]arwin)/
12
12
  def self.macos?
13
13
  @macos
14
14
  end
@@ -19,43 +19,41 @@ def self.freebsd?
19
19
  end
20
20
 
21
21
  def self.bsd?
22
- @freebsd || @macos #can be extended to some other OSes liek NetBSD
22
+ @freebsd || @macos # can be extended to some other OSes liek NetBSD
23
23
  end
24
24
 
25
- @msys = RbConfig::CONFIG["host_os"] =~%r!(msys)!
25
+ @msys = RbConfig::CONFIG["host_os"] =~ /(msys)/
26
26
  def self.msys?
27
27
  @msys
28
28
  end
29
29
 
30
30
  SHELL_VAR_EXPANSION =
31
- if windows? then "%%%s%%"
32
- else "$%s"
31
+ if windows? then "%%%s%%".freeze
32
+ else "$%s".freeze
33
33
  end
34
34
  SHELL_SET_COMMAND =
35
- if windows? then "set %s=%s"
36
- else "%s=\"%s\""
35
+ if windows? then "set %s=%s".freeze
36
+ else "%s=\"%s\"".freeze
37
37
  end
38
38
  SHELL_CONDITIONAL_SET_COMMAND =
39
- if windows? then "set %s=%s"
40
- else "if test -z \"$%1$s\"; then\n %1$s=\"%3$s\"\nelse\n %1$s=\"%2$s\"\nfi"
41
- end
42
- SHELL_UNSET_COMMAND =
43
- if windows? then "unset %s"
44
- else "unset %s"
39
+ if windows? then "set %s=%s".freeze
40
+ else "if test -z \"$%1$s\"; then\n %1$s=\"%3$s\"\n"\
41
+ "else\n %1$s=\"%2$s\"\nfi".freeze
45
42
  end
43
+ SHELL_UNSET_COMMAND = "unset %s".freeze
46
44
  SHELL_EXPORT_COMMAND =
47
- if windows? then "set %s"
48
- else "export %s"
45
+ if windows? then "set %s".freeze
46
+ else "export %s".freeze
49
47
  end
50
48
  SHELL_SOURCE_SCRIPT =
51
- if windows? then "%s"
52
- else ". \"%s\""
49
+ if windows? then "%s".freeze
50
+ else '. "%s"'.freeze
53
51
  end
54
52
 
55
53
  LIBRARY_PATH =
56
- if macos? then 'DYLD_LIBRARY_PATH'
57
- elsif windows? then 'PATH'
58
- else 'LD_LIBRARY_PATH'
54
+ if macos? then 'DYLD_LIBRARY_PATH'.freeze
55
+ elsif windows? then 'PATH'.freeze
56
+ else 'LD_LIBRARY_PATH'.freeze
59
57
  end
60
58
 
61
59
  LIBRARY_SUFFIX =
@@ -139,17 +137,17 @@ def path_variable?(name)
139
137
  def initialize_copy(old)
140
138
  super
141
139
  @inherited_environment = @inherited_environment.
142
- map_value { |k, v| v.dup if v }
140
+ map_value { |_k, v| v&.dup }
143
141
  @environment = @environment.
144
- map_value { |k, v| v.dup if v }
142
+ map_value { |_k, v| v&.dup }
145
143
  @source_before = Marshal.load(Marshal.dump(@source_before)) # deep copy
146
144
  @source_after = Marshal.load(Marshal.dump(@source_after)) # deep copy
147
145
  @inherited_variables = @inherited_variables.dup
148
146
 
149
147
  @system_env = @system_env.
150
- map_value { |k, v| v.dup if v }
148
+ map_value { |_k, v| v&.dup }
151
149
  @original_env = @original_env.
152
- map_value { |k, v| v.dup if v }
150
+ map_value { |_k, v| v&.dup }
153
151
  end
154
152
 
155
153
  def [](name)
@@ -266,20 +264,21 @@ def inherit(*names)
266
264
  @inherit
267
265
  end
268
266
 
269
- def filter_original_env(name, parent_env)
267
+ def filter_original_env(_name, parent_env)
270
268
  parent_env.dup
271
269
  end
272
270
 
273
271
  def init_from_env(name)
274
- if inherit?(name) && (parent_env = original_env[name])
275
- inherited_environment[name] = filter_original_env(name, parent_env.split(File::PATH_SEPARATOR))
276
- else
277
- inherited_environment[name] = Array.new
278
- end
272
+ inherited_environment[name] =
273
+ if inherit?(name) && (parent_env = original_env[name])
274
+ filter_original_env(name, parent_env.split(File::PATH_SEPARATOR))
275
+ else
276
+ Array.new
277
+ end
279
278
  end
280
279
 
281
280
  def push(name, *values)
282
- if current = environment[name]
281
+ if (current = environment[name])
283
282
  current = current.dup
284
283
  set(name, *values)
285
284
  add(name, *current)
@@ -292,13 +291,8 @@ def push(name, *values)
292
291
  def add(name, *values)
293
292
  values = values.map { |v| expand(v) }
294
293
 
295
- set = if environment.has_key?(name)
296
- environment[name]
297
- end
298
-
299
- if !inherited_environment.has_key?(name)
300
- init_from_env(name)
301
- end
294
+ set = environment[name] if environment.key?(name)
295
+ init_from_env(name) unless inherited_environment.key?(name)
302
296
 
303
297
  if !set
304
298
  set = Array.new
@@ -325,12 +319,13 @@ def add(name, *values)
325
319
  # actual value is OS-specific, and not handled by this method
326
320
  def value(name, options = Hash.new)
327
321
  # For backward compatibility only
328
- if !options.respond_to?(:to_hash)
329
- if options
330
- options = Hash[:inheritance_mode => :expand]
331
- else
332
- options = Hash[:inheritance_mode => :keep]
333
- end
322
+ unless options.respond_to?(:to_hash)
323
+ options =
324
+ if options
325
+ Hash[:inheritance_mode => :expand]
326
+ else
327
+ Hash[:inheritance_mode => :keep]
328
+ end
334
329
  end
335
330
  options = Kernel.validate_options options,
336
331
  inheritance_mode: :expand
@@ -349,13 +344,10 @@ def value(name, options = Hash.new)
349
344
  else []
350
345
  end
351
346
 
352
-
353
347
  value = []
354
348
  [environment[name], inherited, system_env[name]].each do |paths|
355
349
  (paths || []).each do |p|
356
- if !value.include?(p)
357
- value << p
358
- end
350
+ value << p unless value.include?(p)
359
351
  end
360
352
  end
361
353
  value
@@ -364,16 +356,14 @@ def value(name, options = Hash.new)
364
356
 
365
357
  # Whether this object manages the given environment variable
366
358
  def include?(name)
367
- environment.has_key?(name)
359
+ environment.key?(name)
368
360
  end
369
361
 
370
362
  def resolved_env
371
363
  resolved_env = Hash.new
372
364
  environment.each_key do |name|
373
- if value = value(name)
374
- if path_variable?(name)
375
- value = value.find_all { |p| File.exist?(p) }
376
- end
365
+ if (value = value(name))
366
+ value = value.find_all { |p| File.exist?(p) } if path_variable?(name)
377
367
  resolved_env[name] = value.join(File::PATH_SEPARATOR)
378
368
  else
379
369
  resolved_env[name] = nil
@@ -400,15 +390,13 @@ def add_path(name, *paths)
400
390
  paths = paths.map { |p| expand(p) }
401
391
 
402
392
  oldpath = (environment[name] ||= Array.new)
403
- paths.reverse.each do |path|
393
+ paths.reverse_each do |path|
404
394
  path = path.to_str
405
395
  next if oldpath.include?(path)
406
396
 
407
397
  add(name, path)
408
398
  oldpath << path
409
- if name == 'RUBYLIB'
410
- $LOAD_PATH.unshift path
411
- end
399
+ $LOAD_PATH.unshift path if name == 'RUBYLIB'
412
400
  end
413
401
  end
414
402
 
@@ -428,7 +416,7 @@ def remove_path(name, *paths)
428
416
  # @see push_path
429
417
  def push_path(name, *values)
430
418
  declare_path_variable(name)
431
- if current = environment.delete(name)
419
+ if (current = environment.delete(name))
432
420
  current = current.dup
433
421
  add_path(name, *values)
434
422
  add_path(name, *current)
@@ -495,7 +483,10 @@ def exported_environment
495
483
  elsif value_with_inheritance == value_without_inheritance # no inheritance
496
484
  export.set[name] = value_with_inheritance
497
485
  else
498
- export.update[name] = [value_with_inheritance, value_without_inheritance]
486
+ export.update[name] = [
487
+ value_with_inheritance,
488
+ value_without_inheritance
489
+ ]
499
490
  end
500
491
  end
501
492
  export
@@ -509,21 +500,23 @@ def exported_environment
509
500
  def export_env_sh(io, shell: 'sh')
510
501
  export = exported_environment
511
502
  source_before(shell: shell).each do |path|
512
- io.puts SHELL_SOURCE_SCRIPT % path
503
+ io.puts format(SHELL_SOURCE_SCRIPT, path)
513
504
  end
514
505
  export.unset.each do |name|
515
- io.puts SHELL_UNSET_COMMAND % [name]
506
+ io.puts format(SHELL_UNSET_COMMAND, name)
516
507
  end
517
508
  export.set.each do |name, value|
518
- io.puts SHELL_SET_COMMAND % [name, value.join(File::PATH_SEPARATOR)]
519
- io.puts SHELL_EXPORT_COMMAND % [name]
509
+ io.puts format(SHELL_SET_COMMAND, name, value.join(File::PATH_SEPARATOR))
510
+ io.puts format(SHELL_EXPORT_COMMAND, name)
520
511
  end
521
512
  export.update.each do |name, (with_inheritance, without_inheritance)|
522
- io.puts SHELL_CONDITIONAL_SET_COMMAND % [name, with_inheritance.join(File::PATH_SEPARATOR), without_inheritance.join(File::PATH_SEPARATOR)]
523
- io.puts SHELL_EXPORT_COMMAND % [name]
513
+ io.puts format(SHELL_CONDITIONAL_SET_COMMAND, name,
514
+ with_inheritance.join(File::PATH_SEPARATOR),
515
+ without_inheritance.join(File::PATH_SEPARATOR))
516
+ io.puts format(SHELL_EXPORT_COMMAND, name)
524
517
  end
525
518
  source_after(shell: shell).each do |path|
526
- io.puts SHELL_SOURCE_SCRIPT % [path]
519
+ io.puts format(SHELL_SOURCE_SCRIPT, path)
527
520
  end
528
521
  end
529
522
 
@@ -597,30 +590,22 @@ def each_env_search_path(prefix, patterns)
597
590
  end
598
591
 
599
592
  def arch_size
600
- if @arch_size
601
- return @arch_size
602
- end
593
+ return @arch_size if @arch_size
603
594
 
604
595
  if File.file?('/usr/bin/dpkg-architecture')
605
596
  cmdline = ['/usr/bin/dpkg-architecture']
606
- if target_arch
607
- cmdline << "-T" << target_arch
608
- end
597
+ cmdline << "-T" << target_arch if target_arch
609
598
  out = `#{cmdline.join(" ")}`.split
610
599
  arch = out.grep(/DEB_TARGET_ARCH_BITS/).first ||
611
600
  out.grep(/DEB_BUILD_ARCH_BITS/).first
612
- if arch
613
- @arch_size = Integer(arch.chomp.split('=').last)
614
- end
601
+ @arch_size = Integer(arch.chomp.split('=').last) if arch
615
602
  end
616
603
 
617
- if !@arch_size
618
- @arch_size =
619
- if RbConfig::CONFIG['host_cpu'] =~ /64/
620
- 64
621
- else 32
622
- end
623
- end
604
+ @arch_size ||=
605
+ if RbConfig::CONFIG['host_cpu'] =~ /64/
606
+ 64
607
+ else 32
608
+ end
624
609
  @arch_size
625
610
  end
626
611
 
@@ -632,22 +617,16 @@ def target_arch=(archname)
632
617
  attr_reader :target_arch
633
618
 
634
619
  def arch_names
635
- if @arch_names
636
- return @arch_names
637
- end
620
+ return @arch_names if @arch_names
638
621
 
639
622
  result = Set.new
640
623
  if File.file?('/usr/bin/dpkg-architecture')
641
624
  cmdline = ['/usr/bin/dpkg-architecture']
642
- if target_arch
643
- cmdline << "-T" << target_arch
644
- end
625
+ cmdline << "-T" << target_arch if target_arch
645
626
  out = `#{cmdline.join(" ")}`.split
646
627
  arch = out.grep(/DEB_TARGET_MULTIARCH/).first ||
647
628
  out.grep(/DEB_BUILD_MULTIARCH/).first
648
- if arch
649
- result << arch.chomp.split('=').last
650
- end
629
+ result << arch.chomp.split('=').last if arch
651
630
  end
652
631
  @arch_names = result
653
632
  end
@@ -656,13 +635,21 @@ def update_environment(newprefix, includes = nil)
656
635
  add_prefix(newprefix, includes)
657
636
  end
658
637
 
638
+ # rubocop:disable Metrics/LineLength
639
+ PKGCONFIG_INFO = [
640
+ %r{Scanning directory (?:#\d+ )?'(.*/)((?:lib|lib64|share)/.*)'$},
641
+ %r{Cannot open directory (?:#\d+ )?'.*/((?:lib|lib64|share)/.*)' in package search path:.*}
642
+ ].freeze
643
+ # rubocop:enable Metrics/LineLength
644
+
659
645
  # Returns the system-wide search path that is embedded in pkg-config
660
646
  def default_pkgconfig_search_suffixes
661
- found_path_rx = /Scanning directory (?:#\d+ )?'(.*\/)((?:lib|lib64|share)\/.*)'$/
662
- nonexistent_path_rx = /Cannot open directory (?:#\d+ )?'.*\/((?:lib|lib64|share)\/.*)' in package search path:.*/
647
+ found_path_rx = PKGCONFIG_INFO[0]
648
+ nonexistent_path_rx = PKGCONFIG_INFO[1]
663
649
 
664
- if !@default_pkgconfig_search_suffixes
665
- output = `LANG=C PKG_CONFIG_PATH= #{Autobuild.tool("pkg-config")} --debug 2>&1`.split("\n")
650
+ unless @default_pkgconfig_search_suffixes
651
+ pkg_config = Autobuild.tool("pkg-config")
652
+ output = `LANG=C PKG_CONFIG_PATH= #{pkg_config} --debug 2>&1`.split("\n")
666
653
  found_paths = output.grep(found_path_rx).
667
654
  map { |l| l.gsub(found_path_rx, '\2') }.
668
655
  to_set
@@ -671,7 +658,7 @@ def default_pkgconfig_search_suffixes
671
658
  to_set
672
659
  @default_pkgconfig_search_suffixes = found_paths | not_found
673
660
  end
674
- return @default_pkgconfig_search_suffixes
661
+ @default_pkgconfig_search_suffixes
675
662
  end
676
663
 
677
664
  # Updates the environment when a new prefix has been added
@@ -683,7 +670,8 @@ def add_prefix(newprefix, includes = nil)
683
670
  end
684
671
 
685
672
  if !includes || includes.include?('PKG_CONFIG_PATH')
686
- each_env_search_path(newprefix, default_pkgconfig_search_suffixes) do |path|
673
+ each_env_search_path(newprefix,
674
+ default_pkgconfig_search_suffixes) do |path|
687
675
  add_path('PKG_CONFIG_PATH', path)
688
676
  end
689
677
  end
@@ -691,24 +679,26 @@ def add_prefix(newprefix, includes = nil)
691
679
  if !includes || includes.include?(LIBRARY_PATH)
692
680
  ld_library_search = ['lib', 'lib/ARCH', 'libARCHSIZE']
693
681
  each_env_search_path(newprefix, ld_library_search) do |path|
694
- has_sofile = Dir.enum_for(:glob, File.join(path, "lib*.#{LIBRARY_SUFFIX}")).
695
- find { true }
696
- if has_sofile
697
- add_path(LIBRARY_PATH, path)
698
- end
682
+ glob_path = File.join(path, "lib*.#{LIBRARY_SUFFIX}")
683
+ has_sofile = Dir.enum_for(:glob, glob_path)
684
+ .find { true }
685
+ add_path(LIBRARY_PATH, path) if has_sofile
699
686
  end
700
687
  end
701
688
 
702
689
  # Validate the new rubylib path
703
690
  if !includes || includes.include?('RUBYLIB')
704
691
  new_rubylib = "#{newprefix}/lib"
705
- if File.directory?(new_rubylib) && !File.directory?(File.join(new_rubylib, "ruby")) && !Dir["#{new_rubylib}/**/*.rb"].empty?
706
- add_path('RUBYLIB', new_rubylib)
707
- end
708
692
 
709
- %w{rubylibdir archdir sitelibdir sitearchdir vendorlibdir vendorarchdir}.
693
+ standalone_ruby_package =
694
+ File.directory?(new_rubylib) &&
695
+ !File.directory?(File.join(new_rubylib, "ruby")) &&
696
+ !Dir["#{new_rubylib}/**/*.rb"].empty?
697
+ add_path('RUBYLIB', new_rubylib) if standalone_ruby_package
698
+
699
+ %w[rubylibdir archdir sitelibdir sitearchdir vendorlibdir vendorarchdir].
710
700
  map { |key| RbConfig::CONFIG[key] }.
711
- map { |path| path.gsub(/.*lib(?:32|64)?\//, '\\1') }.
701
+ map { |path| path.gsub(%r{.*lib(?:32|64)?/}, '\\1') }.
712
702
  each do |subdir|
713
703
  if File.directory?("#{newprefix}/lib/#{subdir}")
714
704
  add_path("RUBYLIB", "#{newprefix}/lib/#{subdir}")
@@ -726,10 +716,8 @@ def self.find_executable_in_path(file, entries)
726
716
  full = File.join(dir, file)
727
717
  begin
728
718
  stat = File.stat(full)
729
- if stat.file? && stat.executable?
730
- return full
731
- end
732
- rescue ::Exception
719
+ return full if stat.file? && stat.executable?
720
+ rescue ::Exception # rubocop:disable Lint/HandleExceptions
733
721
  end
734
722
  end
735
723
  nil
@@ -742,9 +730,7 @@ def find_in_path(file, path_var = 'PATH')
742
730
  def self.find_in_path(file, entries)
743
731
  entries.each do |dir|
744
732
  full = File.join(dir, file)
745
- if File.file?(full)
746
- return full
747
- end
733
+ return full if File.file?(full)
748
734
  end
749
735
  nil
750
736
  end
@@ -774,7 +760,7 @@ def self.env=(env)
774
760
  @env = nil
775
761
 
776
762
  def self.env
777
- if !@env
763
+ unless @env
778
764
  @env = Environment.new
779
765
  @env.prepare
780
766
  end
@@ -785,77 +771,95 @@ def self.env
785
771
  def self.env_reset(name = nil)
786
772
  env.reset(name)
787
773
  end
774
+
788
775
  # @deprecated, use the API on {env} instead
789
776
  def self.env_clear(name = nil)
790
777
  env.clear(name)
791
778
  end
779
+
792
780
  # @deprecated, use the API on {env} instead
793
781
  def self.env_set(name, *values)
794
782
  env.set(name, *values)
795
783
  end
784
+
796
785
  # @deprecated, use the API on {env} instead
797
786
  def self.env_inherit?(name = nil)
798
787
  env.inherit?(name)
799
788
  end
789
+
800
790
  # @deprecated, use the API on {env} instead
801
791
  def self.env_inherit=(value)
802
792
  env.inherit = value
803
793
  end
794
+
804
795
  # @deprecated, use the API on {env} instead
805
796
  def self.env_inherit(*names)
806
797
  env.inherit(*names)
807
798
  end
799
+
808
800
  # @deprecated, use the API on {env} instead
809
801
  def self.env_init_from_env(name)
810
802
  env.init_from_env(name)
811
803
  end
804
+
812
805
  # @deprecated, use the API on {env} instead
813
806
  def self.env_push(name, *values)
814
807
  env.push(name, *values)
815
808
  end
809
+
816
810
  # @deprecated, use the API on {env} instead
817
811
  def self.env_add(name, *values)
818
812
  env.add(name, *values)
819
813
  end
814
+
820
815
  # @deprecated, use the API on {env} instead
821
816
  def self.env_value(name, options = Hash.new)
822
817
  env.value(name, options)
823
818
  end
819
+
824
820
  # @deprecated, there is no corresponding API on the {Environment}
825
- def self.env_update_var(name)
826
- end
821
+ def self.env_update_var(name); end
822
+
827
823
  # @deprecated, use the API on {env} instead
828
824
  def self.env_add_path(name, *paths)
829
825
  env.add_path(name, *paths)
830
826
  end
827
+
831
828
  # @deprecated, use the API on {env} instead
832
829
  def self.env_remove_path(name, *paths)
833
830
  env.remove_path(name, *paths)
834
831
  end
832
+
835
833
  # @deprecated, use the API on {env} instead
836
834
  def self.env_push_path(name, *values)
837
835
  env.push_path(name, *values)
838
836
  end
837
+
839
838
  # @deprecated, use the API on {env} instead
840
839
  def self.env_source_file(file, shell: 'sh')
841
840
  env.source_after(file, shell: shell)
842
841
  end
842
+
843
843
  # @deprecated, use the API on {env} instead
844
844
  def self.env_source_before(file = nil, shell: 'sh')
845
845
  env.source_before(file, shell: shell)
846
846
  end
847
+
847
848
  # @deprecated, use the API on {env} instead
848
849
  def self.env_source_after(file = nil, shell: 'sh')
849
850
  env.source_after(file, shell: shell)
850
851
  end
852
+
851
853
  # @deprecated, use the API on {env} instead
852
854
  def self.export_env_sh(io)
853
855
  env.export_env_sh(io)
854
856
  end
857
+
855
858
  # @deprecated, use the API on {env} instead
856
859
  def self.each_env_search_path(prefix, patterns)
857
860
  env.each_env_search_path(prefix, patterns)
858
861
  end
862
+
859
863
  # @deprecated, use the API on {env} instead
860
864
  def self.update_environment(newprefix, includes = nil)
861
865
  env.update_environment(newprefix, includes)
@@ -872,12 +876,14 @@ def self.pathvar(path, varname)
872
876
  end
873
877
 
874
878
  def self.arch_size
875
- Autobuild.warn 'Autobuild.arch_size is deprecated, use Autobuild.env.arch_size instead'
879
+ Autobuild.warn 'Autobuild.arch_size is deprecated, "\
880
+ "use Autobuild.env.arch_size instead'
876
881
  env.arch_size
877
882
  end
878
883
 
879
884
  def self.arch_names
880
- Autobuild.warn 'Autobuild.arch_names is deprecated, use Autobuild.env.arch_names instead'
885
+ Autobuild.warn 'Autobuild.arch_names is deprecated, "\
886
+ "use Autobuild.env.arch_names instead'
881
887
  env.arch_names
882
888
  end
883
889
  end