summaryrefslogtreecommitdiff
path: root/common.mk
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-10-31 01:06:36 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2024-11-01 02:33:10 +0900
commit0fda818bd7741fa9bd424e02abeacc73e39a470c (patch)
treeee32aac14291c603364e734a85da2a8be8afb313 /common.mk
parent80fd8463536cfb1db29aa7f784b41178243524cb (diff)
Make gemspec files for default gems with extensions
So that rubygems can find them as gems. However, the `--install-dir` option of `gem install` seems to exclude prerelease gems, even already installed in that directory, from the dependencies for some reasons; use the `GEM_HOME` environment variable instead. Now net-imap 0.5.0 depends on json gem.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/11969
Diffstat (limited to 'common.mk')
-rw-r--r--common.mk38
1 files changed, 32 insertions, 6 deletions
diff --git a/common.mk b/common.mk
index 28bb2b7d60..393e53acae 100644
--- a/common.mk
+++ b/common.mk
@@ -1573,6 +1573,35 @@ test-bundled-gems-precheck: $(TEST_RUNNABLE)-test-bundled-gems-precheck
yes-test-bundled-gems-precheck: main
no-test-bundled-gems-precheck:
+update-default-gemspecs: main
+ $(ACTIONS_GROUP)
+ @$(MAKEDIRS) $(srcdir)/.bundle/specifications
+ @$(XRUBY) -W0 -C "$(srcdir)" -rrubygems \
+ -e "destdir = ARGV.shift" \
+ -e "ARGV.each do |basedir|" \
+ -e "Dir.glob(basedir+'/**/*.gemspec') do |g|" \
+ -e "dir, base = File.split(g)" \
+ -e "spec = Dir.chdir(dir) {Gem::Specification.load(base)} ||" \
+ -e "Gem::Specification.load(g)" \
+ -e "unless spec" \
+ -e "puts %[Ignoring #{g}]" \
+ -e "next" \
+ -e "end" \
+ -e "spec.files.clear" \
+ -e "spec.extensions.clear" \
+ -e "File.binwrite(File.join(destdir, spec.full_name+'.gemspec'), spec.to_ruby)" \
+ -e "end" \
+ -e "end" \
+ -- .bundle/specifications lib ext
+ $(ACTIONS_ENDGROUP)
+
+install-for-test-bundled-gems: update-default-gemspecs
+ $(ACTIONS_GROUP)
+ $(XRUBY) -C "$(srcdir)" -r./tool/lib/gem_env.rb bin/gem \
+ install --no-document --conservative \
+ "hoe" "json-schema" "test-unit-rr" "simplecov" "simplecov-html" "simplecov-json"
+ $(ACTIONS_ENDGROUP)
+
test-bundled-gems-fetch: yes-test-bundled-gems-fetch
yes-test-bundled-gems-fetch:
$(ACTIONS_GROUP)
@@ -1582,12 +1611,9 @@ no-test-bundled-gems-fetch:
test-bundled-gems-prepare: $(PRECHECK_BUNDLED_GEMS) test-bundled-gems-fetch
test-bundled-gems-prepare: $(TEST_RUNNABLE)-test-bundled-gems-prepare
-no-test-bundled-gems-prepare: no-test-bundled-gems-precheck
-yes-test-bundled-gems-prepare: yes-test-bundled-gems-precheck
- $(ACTIONS_GROUP)
- $(XRUBY) -C "$(srcdir)" bin/gem install --no-document \
- --install-dir .bundle --conservative "hoe" "json-schema" "test-unit-rr" "simplecov"
- $(ACTIONS_ENDGROUP)
+no-test-bundled-gems-prepare: no-test-bundled-gems-precheck no-test-bundled-gems-fetch
+yes-test-bundled-gems-prepare: yes-test-bundled-gems-precheck yes-test-bundled-gems-fetch
+yes-test-bundled-gems-prepare: install-for-test-bundled-gems
PREPARE_BUNDLED_GEMS = test-bundled-gems-prepare
test-bundled-gems: $(TEST_RUNNABLE)-test-bundled-gems $(DOT_WAIT) $(TEST_RUNNABLE)-test-bundled-gems-spec