summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-01-19 21:55:44 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-01-26 12:50:39 +0900
commit7a4f7fc14d8331f90177a8ba47fb682fecd684b1 (patch)
tree31754cf4a597276e39918d7b725dbd9cd2836ff2
parent17f5631c6ea118b9ce0e8776dc50c7b1dcdaf596 (diff)
Use timestamp files to track test revision of bundled gems
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/7146
-rw-r--r--defs/gmake.mk17
1 files changed, 13 insertions, 4 deletions
diff --git a/defs/gmake.mk b/defs/gmake.mk
index 3970409f39..ad39733635 100644
--- a/defs/gmake.mk
+++ b/defs/gmake.mk
@@ -326,18 +326,27 @@ $(srcdir)/.bundle/gems/%: $(srcdir)/gems/%.gem | .bundle/gems
-Itool/lib -rbundled_gem \
-e 'BundledGem.unpack("gems/$(@F).gem", ".bundle")'
+$(srcdir)/.bundle/.timestamp:
+ $(MAKEDIRS) $@
+
define build-gem
-$(srcdir)/gems/src/$(1): | $(srcdir)/gems/src
+$(srcdir)/gems/src/$(1)/$(1).gemspec: | $(srcdir)/gems/src
$(ECHO) Cloning $(4)
$(Q) $(GIT) clone $(4) $$(@)
-.PHONY: $(srcdir)/gems/$(1)-$(2).gem
-$(srcdir)/gems/$(1)-$(2).gem: | $(srcdir)/gems/src/$(1)
- $(ECHO) Building $(1)@$(3) to $$(@F)
+$(srcdir)/.bundle/.timestamp/$(1).revision: $(srcdir)/gems/src/$(1)/$(1).gemspec \
+ $(if $(if $(wildcard $$(@)),$(filter $(3),$(shell cat $$(@)))),,PHONY) \
+ | $$(@D)
+ $(ECHO) Update $(1) to $(3)
$(Q) $(CHDIR) "$(srcdir)/gems/src/$(1)" && \
$(GIT) fetch origin $(3) && \
$(GIT) checkout --detach $(3) && \
:
+ echo $(3) | $(IFCHANGE) $$(@) -
+
+$(srcdir)/gems/$(1)-$(2).gem: $(srcdir)/gems/src/$(1)/$(1).gemspec \
+ $(srcdir)/.bundle/.timestamp/$(1).revision
+ $(ECHO) Building $(1)@$(3) to $$(@)
$(Q) $(BASERUBY) -C "$(srcdir)" \
-Itool/lib -rbundled_gem \
-e 'BundledGem.build("gems/src/$(1)/$(1).gemspec", "$(2)", "gems")'