summaryrefslogtreecommitdiff
path: root/template
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-09-05 11:00:20 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-09-05 11:16:20 +0900
commit68a092a4691efc8aba9a8ae7b27c2ad51c840bf9 (patch)
tree5165fd0e9dead9191232016c358585a12eb92af1 /template
parentf6d569b7c0ae7cb5e08534330cdf94572a12e869 (diff)
downloadruby-68a092a4691efc8aba9a8ae7b27c2ad51c840bf9.tar.gz
Set fake.rb variables by command line arguments
Then fallbacks to preprocessed version.h.
Diffstat (limited to 'template')
-rw-r--r--template/fake.rb.in26
1 files changed, 15 insertions, 11 deletions
diff --git a/template/fake.rb.in b/template/fake.rb.in
index 9177fb10c5..67eb6dcec0 100644
--- a/template/fake.rb.in
+++ b/template/fake.rb.in
@@ -9,19 +9,23 @@ while /\A(\w+)=(.*)/ =~ ARGV[0]
end
if inc = arg['i']
src = inc == '-' ? STDIN.read : File.read(inc)
- def src.value(name)
- eval(self[/\bruby_#{name}(?:\[\])?\s*=\s*((?:"(?:\\.|[^\"\\])*"\s*)*(?=;)|[^{};]+)/m, 1].
- gsub(/#/, '\\#').
- gsub(/((?:\G|[^\\])(?:\\\\)*)\n/, '\1'))
- end
- arg['versions'] = version = {}
- File.read(File.join(arg['srcdir'], 'version.c')).
- scan(/rb_define_global_const\("(RUBY_\w+)",[^;]*?\bMK(?:INT|STR)\(([^()]*)\)/m) do |n, v|
- version[n] = src.value(v)
+else
+ src = ""
+end
+def src.value(name)
+ unless val = self[/\bruby_#{name}(?:\[\])?\s*=\s*((?:"(?:\\.|[^\"\\])*"\s*)*(?=;)|[^{};]+)/m, 1]
+ return
end
- arg['RUBY_DESCRIPTION_WITH_MJIT'] = src.value('description_with_mjit')
- arg['RUBY_DESCRIPTION_WITH_YJIT'] = src.value('description_with_yjit')
+ eval(val.gsub(/#/, '\\#').gsub(/((?:\G|[^\\])(?:\\\\)*)\n/, '\1'))
+end
+version = Hash.new {|h, v| h[v] || src.value(v)}
+arg['versions'] = version
+File.read(File.join(arg['srcdir'], 'version.c')).
+ scan(/rb_define_global_const\("(RUBY_\w+)",[^;]*?\bMK(?:INT|(STR))\(([^()]*)\)/m) do |n, s, v|
+ version[n] = arg[v] || (s ? "" : 0)
end
+arg['RUBY_DESCRIPTION_WITH_MJIT'] = arg['description_with_mjit'] || ""
+arg['RUBY_DESCRIPTION_WITH_YJIT'] = arg['description_with_yjit'] || ""
%>baseruby="<%=arg['BASERUBY']%>"
_\
=begin