Skip to content

Commit a418538

Browse files
simideivid-rodriguez
authored andcommitted
Merge pull request #7610 from karreiro/compile-from-source
Update `--ext=rust` to support compiling the native extension from source (cherry picked from commit e5d8348)
1 parent aedd792 commit a418538

File tree

3 files changed

+6
-9
lines changed

3 files changed

+6
-9
lines changed

bundler/lib/bundler/templates/newgem/Gemfile.tt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ gem "rake", "~> 13.0"
99
<%- if config[:ext] -%>
1010

1111
gem "rake-compiler"
12-
<%- if config[:ext] == 'rust' -%>
13-
gem "rb_sys", "~> 0.9.63"
14-
<%- end -%>
1512
<%- end -%>
1613
<%- if config[:test] -%>
1714

bundler/lib/bundler/templates/newgem/newgem.gemspec.tt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ Gem::Specification.new do |spec|
3737
spec.bindir = "exe"
3838
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
3939
spec.require_paths = ["lib"]
40-
<%- if config[:ext] == 'c' -%>
40+
<%- if config[:ext] == 'c' || config[:ext] == 'rust' -%>
4141
spec.extensions = ["ext/<%= config[:underscored_name] %>/extconf.rb"]
4242
<%- end -%>
43-
<%- if config[:ext] == 'rust' -%>
44-
spec.extensions = ["ext/<%= config[:underscored_name] %>/Cargo.toml"]
45-
<%- end -%>
4643

4744
# Uncomment to register a new dependency of your gem
4845
# spec.add_dependency "example-gem", "~> 1.0"
46+
<%- if config[:ext] == 'rust' -%>
47+
spec.add_dependency "rb_sys", "~> 0.9.91"
48+
<%- end -%>
4949

5050
# For more information and examples about making a new gem, check out our
5151
# guide at: https://bundler.io/guides/creating_gem.html

bundler/spec/commands/newgem_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,7 +1518,7 @@ def create_temporary_dir(dir)
15181518
it "includes rake-compiler, but no Rust related changes" do
15191519
expect(bundled_app("#{gem_name}/Gemfile").read).to include('gem "rake-compiler"')
15201520

1521-
expect(bundled_app("#{gem_name}/Gemfile").read).to_not include('gem "rb_sys"')
1521+
expect(bundled_app("#{gem_name}/#{gem_name}.gemspec").read).to_not include('spec.add_dependency "rb_sys"')
15221522
expect(bundled_app("#{gem_name}/#{gem_name}.gemspec").read).to_not include('spec.required_rubygems_version = ">= ')
15231523
end
15241524

@@ -1578,7 +1578,7 @@ def create_temporary_dir(dir)
15781578

15791579
it "includes rake-compiler, rb_sys gems and required_rubygems_version constraint" do
15801580
expect(bundled_app("#{gem_name}/Gemfile").read).to include('gem "rake-compiler"')
1581-
expect(bundled_app("#{gem_name}/Gemfile").read).to include('gem "rb_sys"')
1581+
expect(bundled_app("#{gem_name}/#{gem_name}.gemspec").read).to include('spec.add_dependency "rb_sys"')
15821582
expect(bundled_app("#{gem_name}/#{gem_name}.gemspec").read).to include('spec.required_rubygems_version = ">= ')
15831583
end
15841584

0 commit comments

Comments
 (0)