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)
7272 objdir = product_build_dir crossruby
7373 system %Q(make -C "#{ objdir } " #{ make_args ( crossruby ) . join ( " " ) } install-rb)
7474 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
7585 end
7686
7787 class CrossRubyProduct < AutoconfProduct
@@ -158,6 +168,19 @@ def name
158168 @params . name
159169 end
160170
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+
161184 def build_dir
162185 File . join ( @build_dir , @params . target , name )
163186 end
Original file line number Diff line number Diff line change @@ -11,12 +11,13 @@ def name
1111 @params [ :name ]
1212 end
1313
14- def cache_key
14+ def cache_key ( digest )
15+ digest << @params [ :type ]
1516 case @params [ :type ]
1617 when "github"
17- @params [ :rev ]
18+ digest << @params [ :rev ]
1819 when "local"
19- File . mtime ( @params [ :src ] ) . to_i . to_s
20+ digest << File . mtime ( @params [ :src ] ) . to_i . to_s
2021 else
2122 raise "unknown source type: #{ @params [ :type ] } "
2223 end
Original file line number Diff line number Diff line change @@ -92,7 +92,8 @@ def initialize(
9292 def hexdigest
9393 require "digest"
9494 digest = Digest ::SHA256 . new
95- digest << @source . cache_key
95+ @source . cache_key ( digest )
96+ @crossruby . cache_key ( digest )
9697 digest << @build_dir
9798 digest << @rubies_dir
9899 digest << @target
You can’t perform that action at this time.
0 commit comments