rb_sys 0.9.4 → 0.9.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/rb_sys/cargo_builder.rb +8 -15
- data/lib/rb_sys/mkmf.rb +6 -4
- data/lib/rb_sys/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77fe2eb244ee95aef39a0d6541d2813fd22c00a3e677b127d0558750f0673ebd
|
4
|
+
data.tar.gz: 3892fbaf3193dd6248335eab7416ff63b29cd9beb1927cbbcad121165f5a8e4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c3505e4db3cbdfbfc6bd5ed1cdf38098a890ff4e926b31b82f72c67d341f2b838fa306d540816ef5ffe6247e470b9c07660dc550871f65755c8725f4f20dd64
|
7
|
+
data.tar.gz: 44d284cae0fd02324891eb08062941f3588dec9ce23e96c02d6f4953c353dfc571e096b8ef7e2cfb167931320a68cc2223d06a304a28abf623782fad59d9e48c
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/rb_sys/cargo_builder.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module RbSys
|
2
2
|
class CargoBuilder < Gem::Ext::Builder
|
3
|
-
attr_accessor :spec, :runner, :profile, :env, :features, :target, :extra_rustc_args, :dry_run
|
3
|
+
attr_accessor :spec, :runner, :profile, :env, :features, :target, :extra_rustc_args, :dry_run, :ext_dir
|
4
4
|
|
5
5
|
def initialize(spec)
|
6
6
|
require "rubygems/command"
|
@@ -8,12 +8,13 @@ module RbSys
|
|
8
8
|
|
9
9
|
@spec = spec
|
10
10
|
@runner = self.class.method(:run)
|
11
|
-
@profile = ENV.fetch("
|
11
|
+
@profile = ENV.fetch("RB_SYS_CARGO_BUILD_PROFILE", :release).to_sym
|
12
12
|
@env = {}
|
13
13
|
@features = []
|
14
14
|
@target = ENV["CARGO_BUILD_TARGET"]
|
15
15
|
@extra_rustc_args = []
|
16
16
|
@dry_run = true
|
17
|
+
@ext_dir = nil
|
17
18
|
end
|
18
19
|
|
19
20
|
def build(_extension, dest_path, results, args = [], lib_dir = nil, cargo_dir = Dir.pwd)
|
@@ -29,7 +30,7 @@ module RbSys
|
|
29
30
|
|
30
31
|
def build_crate(dest_path, results, args, cargo_dir)
|
31
32
|
env = build_env
|
32
|
-
cmd = cargo_command(
|
33
|
+
cmd = cargo_command(dest_path, args)
|
33
34
|
runner.call cmd, results, "cargo", cargo_dir, env
|
34
35
|
|
35
36
|
results
|
@@ -41,8 +42,8 @@ module RbSys
|
|
41
42
|
build_env.merge(env)
|
42
43
|
end
|
43
44
|
|
44
|
-
def cargo_command(
|
45
|
-
manifest = File.join(
|
45
|
+
def cargo_command(dest_path, args = [])
|
46
|
+
manifest = File.join(ext_dir, "Cargo.toml")
|
46
47
|
cargo = ENV.fetch("CARGO", "cargo")
|
47
48
|
|
48
49
|
cmd = []
|
@@ -83,8 +84,7 @@ module RbSys
|
|
83
84
|
*mkmf_libpath,
|
84
85
|
*rustc_dynamic_linker_flags(dest_dir),
|
85
86
|
*rustc_lib_flags(dest_dir),
|
86
|
-
*platform_specific_rustc_args(dest_dir)
|
87
|
-
*debug_flags
|
87
|
+
*platform_specific_rustc_args(dest_dir)
|
88
88
|
]
|
89
89
|
end
|
90
90
|
|
@@ -256,13 +256,6 @@ module RbSys
|
|
256
256
|
RbConfig.expand(val.dup)
|
257
257
|
end
|
258
258
|
|
259
|
-
# Good balance between binary size and debugability
|
260
|
-
def debug_flags
|
261
|
-
return [] if profile == :dev
|
262
|
-
|
263
|
-
["-C", "debuginfo=1"]
|
264
|
-
end
|
265
|
-
|
266
259
|
# Copied from ExtConfBuilder
|
267
260
|
def finalize_directory(dest_path, lib_dir, extension_dir)
|
268
261
|
require "fileutils"
|
@@ -309,7 +302,7 @@ module RbSys
|
|
309
302
|
end
|
310
303
|
|
311
304
|
def profile_target_directory
|
312
|
-
case profile
|
305
|
+
case profile.to_sym
|
313
306
|
when :release then "release"
|
314
307
|
when :dev then "debug"
|
315
308
|
else raise "unknown target directory for profile: #{profile}"
|
data/lib/rb_sys/mkmf.rb
CHANGED
@@ -28,7 +28,7 @@ module RbSys
|
|
28
28
|
# . r.profile = ENV.fetch('RB_SYS_CARGO_PROFILE', :dev).to_sym
|
29
29
|
# . r.features = %w[some_cargo_feature]
|
30
30
|
# . end
|
31
|
-
def create_rust_makefile(target,
|
31
|
+
def create_rust_makefile(target, &blk)
|
32
32
|
if target.include?("/")
|
33
33
|
target_prefix, target = File.split(target)
|
34
34
|
target_prefix[0, 0] = "/"
|
@@ -41,7 +41,7 @@ module RbSys
|
|
41
41
|
|
42
42
|
yield builder if blk
|
43
43
|
|
44
|
-
srcprefix
|
44
|
+
srcprefix = "$(srcdir)/#{builder.ext_dir}".chomp("/")
|
45
45
|
RbConfig.expand(srcdir = srcprefix.dup)
|
46
46
|
|
47
47
|
full_cargo_command = cargo_command(srcdir, builder)
|
@@ -112,9 +112,11 @@ module RbSys
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def cargo_command(cargo_dir, builder)
|
115
|
+
builder.ext_dir = cargo_dir
|
115
116
|
dest_path = File.join(Dir.pwd, "target")
|
116
|
-
args =
|
117
|
-
|
117
|
+
args = ARGV.dup
|
118
|
+
args.shift if args.first == "--"
|
119
|
+
cargo_cmd = builder.cargo_command(dest_path, args)
|
118
120
|
Shellwords.join(cargo_cmd).gsub("\\=", "=").gsub(/\Acargo/, "$(CARGO)")
|
119
121
|
end
|
120
122
|
|
data/lib/rb_sys/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rb_sys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Ker-Seymer
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
Rl+ASkq2/1i07TkBpCf+2hq66+h/hx+/Y/KrUzXfe0jtvil0WESkJT2kqRqHWNhD
|
31
31
|
9GKBxaQlXokNDtWCm1/gl6cD8WRZ0N5S4ZGJT1FLLsA=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2022-06-
|
33
|
+
date: 2022-06-22 00:00:00.000000000 Z
|
34
34
|
dependencies: []
|
35
35
|
description:
|
36
36
|
email:
|
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
requirements: []
|
72
|
-
rubygems_version: 3.
|
72
|
+
rubygems_version: 3.4.0.dev
|
73
73
|
signing_key:
|
74
74
|
specification_version: 4
|
75
75
|
summary: Helpers for compiling Rust extensions for ruby
|
metadata.gz.sig
CHANGED
Binary file
|