rb_sys 0.9.5 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2 -2
- 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: a832bee97ea5d680aa3ce6f48b1a09d32014a977c2b4645986ebb6ba429b1037
|
4
|
+
data.tar.gz: df5a2605db7395caf6110efdfb034aac1fec1d0bf40924f967905bb33b789061
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47f4c252dec7a7cc6c625ad6688b85fc93b07df508b5141211b6a82cbaa02a4a11669c5888b44fa80e0f2cfab3a99d71c2ac34ea543479c30b22271fc50a668a
|
7
|
+
data.tar.gz: 2941a00f603431fca4d954c63c0a05bb7b0cd354cb49ea938b92183062f38ac52cbe945dbe414117f33852285709324d9f28f91823d198e7d1f81e81c663d749
|
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.6
|
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:
|
metadata.gz.sig
CHANGED
Binary file
|