зеркало из https://github.com/github/ruby.git
[rubygems/rubygems] Always build in release mode
https://github.com/rubygems/rubygems/commit/7b84fc1f19
This commit is contained in:
Родитель
37d10caa0d
Коммит
554161236a
|
@ -52,7 +52,7 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
|
||||||
cmd += ["--manifest-path", manifest]
|
cmd += ["--manifest-path", manifest]
|
||||||
cmd += ["--lib"]
|
cmd += ["--lib"]
|
||||||
cmd += ["--profile", profile.to_s]
|
cmd += ["--profile", profile.to_s]
|
||||||
cmd += ["--locked"] if profile == :release
|
cmd += ["--locked"]
|
||||||
cmd += Gem::Command.build_args
|
cmd += Gem::Command.build_args
|
||||||
cmd += args
|
cmd += args
|
||||||
cmd += ["--"]
|
cmd += ["--"]
|
||||||
|
@ -75,7 +75,6 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
|
||||||
*rustc_dynamic_linker_flags(dest_dir),
|
*rustc_dynamic_linker_flags(dest_dir),
|
||||||
*rustc_lib_flags(dest_dir),
|
*rustc_lib_flags(dest_dir),
|
||||||
*platform_specific_rustc_args(dest_dir),
|
*platform_specific_rustc_args(dest_dir),
|
||||||
*debug_flags,
|
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -149,7 +148,7 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
|
||||||
prefix = so_ext == "dll" ? "" : "lib"
|
prefix = so_ext == "dll" ? "" : "lib"
|
||||||
path_parts = [dest_path]
|
path_parts = [dest_path]
|
||||||
path_parts << ENV["CARGO_BUILD_TARGET"] if ENV["CARGO_BUILD_TARGET"]
|
path_parts << ENV["CARGO_BUILD_TARGET"] if ENV["CARGO_BUILD_TARGET"]
|
||||||
path_parts += [profile_target_directory, "#{prefix}#{cargo_crate_name}.#{so_ext}"]
|
path_parts += ["release", "#{prefix}#{cargo_crate_name}.#{so_ext}"]
|
||||||
File.join(*path_parts)
|
File.join(*path_parts)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -254,13 +253,6 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
|
||||||
RbConfig.expand(val.dup)
|
RbConfig.expand(val.dup)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Good balance between binary size and debugability
|
|
||||||
def debug_flags
|
|
||||||
return [] if profile == :dev
|
|
||||||
|
|
||||||
["-C", "debuginfo=1"]
|
|
||||||
end
|
|
||||||
|
|
||||||
# Copied from ExtConfBuilder
|
# Copied from ExtConfBuilder
|
||||||
def finalize_directory(dest_path, lib_dir, extension_dir)
|
def finalize_directory(dest_path, lib_dir, extension_dir)
|
||||||
require "fileutils"
|
require "fileutils"
|
||||||
|
@ -299,14 +291,6 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
|
||||||
path
|
path
|
||||||
end
|
end
|
||||||
|
|
||||||
def profile_target_directory
|
|
||||||
case profile
|
|
||||||
when :release then "release"
|
|
||||||
when :dev then "debug"
|
|
||||||
else raise "unknown target directory for profile: #{profile}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Error raised when no cdylib artifact was created
|
# Error raised when no cdylib artifact was created
|
||||||
class DylibNotFoundError < StandardError
|
class DylibNotFoundError < StandardError
|
||||||
def initialize(dir)
|
def initialize(dir)
|
||||||
|
|
|
@ -65,31 +65,6 @@ class TestGemExtCargoBuilder < Gem::TestCase
|
||||||
raise(e)
|
raise(e)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_build_dev_profile
|
|
||||||
skip_unsupported_platforms!
|
|
||||||
setup_rust_gem "rust_ruby_example"
|
|
||||||
|
|
||||||
output = []
|
|
||||||
|
|
||||||
Dir.chdir @ext do
|
|
||||||
ENV.update(@rust_envs)
|
|
||||||
spec = Gem::Specification.new "rust_ruby_example", "0.1.0"
|
|
||||||
builder = Gem::Ext::CargoBuilder.new(spec)
|
|
||||||
builder.profile = :dev
|
|
||||||
builder.build nil, @dest_path, output
|
|
||||||
end
|
|
||||||
|
|
||||||
output = output.join "\n"
|
|
||||||
bundle = File.join(@dest_path, "debug/rust_ruby_example.#{RbConfig::CONFIG['DLEXT']}")
|
|
||||||
|
|
||||||
assert_match "Finished dev [unoptimized + debuginfo] target(s)", output
|
|
||||||
assert_ffi_handle bundle, "Init_rust_ruby_example"
|
|
||||||
rescue Exception => e
|
|
||||||
pp output if output
|
|
||||||
|
|
||||||
raise(e)
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_build_fail
|
def test_build_fail
|
||||||
skip_unsupported_platforms!
|
skip_unsupported_platforms!
|
||||||
setup_rust_gem "rust_ruby_example"
|
setup_rust_gem "rust_ruby_example"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче