File tree Expand file tree Collapse file tree 3 files changed +29
-4
lines changed Expand file tree Collapse file tree 3 files changed +29
-4
lines changed Original file line number Diff line number Diff line change @@ -72,6 +72,16 @@ def do_install_rb(crossruby)
72
72
objdir = product_build_dir crossruby
73
73
system %Q(make -C "#{ objdir } " #{ make_args ( crossruby ) . join ( " " ) } install-rb)
74
74
end
75
+
76
+ def cache_key ( digest )
77
+ digest << @name
78
+ # Compute hash value of files under srcdir
79
+ Dir . glob ( "#{ @srcdir } /**/*" , File ::FNM_DOTMATCH ) . each do |f |
80
+ next if File . directory? ( f )
81
+ digest << f
82
+ digest << File . read ( f )
83
+ end
84
+ end
75
85
end
76
86
77
87
class CrossRubyProduct < AutoconfProduct
@@ -158,6 +168,19 @@ def name
158
168
@params . name
159
169
end
160
170
171
+ def cache_key ( digest )
172
+ digest << @params . target
173
+ digest << @params . default_exts
174
+ @wasmoptflags . each { |f | digest << f }
175
+ @cppflags . each { |f | digest << f }
176
+ @cflags . each { |f | digest << f }
177
+ @ldflags . each { |f | digest << f }
178
+ @debugflags . each { |f | digest << f }
179
+ @xcflags . each { |f | digest << f }
180
+ @xldflags . each { |f | digest << f }
181
+ @user_exts . each { |ext | ext . cache_key ( digest ) }
182
+ end
183
+
161
184
def build_dir
162
185
File . join ( @build_dir , @params . target , name )
163
186
end
Original file line number Diff line number Diff line change @@ -11,12 +11,13 @@ def name
11
11
@params [ :name ]
12
12
end
13
13
14
- def cache_key
14
+ def cache_key ( digest )
15
+ digest << @params [ :type ]
15
16
case @params [ :type ]
16
17
when "github"
17
- @params [ :rev ]
18
+ digest << @params [ :rev ]
18
19
when "local"
19
- File . mtime ( @params [ :src ] ) . to_i . to_s
20
+ digest << File . mtime ( @params [ :src ] ) . to_i . to_s
20
21
else
21
22
raise "unknown source type: #{ @params [ :type ] } "
22
23
end
Original file line number Diff line number Diff line change @@ -92,7 +92,8 @@ def initialize(
92
92
def hexdigest
93
93
require "digest"
94
94
digest = Digest ::SHA256 . new
95
- digest << @source . cache_key
95
+ @source . cache_key ( digest )
96
+ @crossruby . cache_key ( digest )
96
97
digest << @build_dir
97
98
digest << @rubies_dir
98
99
digest << @target
You can’t perform that action at this time.
0 commit comments