From 711b2ed5fe7abcb44a2432cb5f0e70861bf95aef Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 24 Oct 2022 12:49:45 +0900 Subject: [PATCH] Make the timestamp path correspond to the bundled target path So different timestamps for different paths will be used. Extentions paths in bundled gems contain `ruby_version`, which includes the ABI version, and the same timestamp file for different paths resulted in build failures when it changed. --- ext/extmk.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ext/extmk.rb b/ext/extmk.rb index 939eb73565..73ee71fd37 100755 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -536,9 +536,14 @@ extend Module.new { def timestamp_file(name, target_prefix = nil) if @gemname and name == '$(TARGET_SO_DIR)' - name = "$(arch)/gems/#{@gemname}#{target_prefix}" + gem = true + name = "$(gem_platform)/$(ruby_version)/gems/#{@gemname}#{target_prefix}" end - super.sub(%r[/\.extout\.(?:-\.)?], '/.') + path = super.sub(%r[/\.extout\.(?:-\.)?], '/.') + if gem + nil while path.sub!(%r[/\.(gem_platform|ruby_version)\.-(?=\.)], '/$(\1)/') + end + path end def configuration(srcdir)