summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-10-24 12:49:45 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-10-24 17:47:59 +0900
commit711b2ed5fe7abcb44a2432cb5f0e70861bf95aef (patch)
treef0358cbdb120a5930785603a5ab9cf710bb9b391
parent3af373285b47d0fbb7ac1ccd6e007c6717d495b8 (diff)
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.
-rwxr-xr-xext/extmk.rb9
1 files 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)