rb_sys 0.9.1 → 0.9.4
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 +7 -5
- data/lib/rb_sys/mkmf.rb +34 -11
- data/lib/rb_sys/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f361cdc09e131225d1dc35bfd79a391df71665264e674da09b4122a0bee7096
|
4
|
+
data.tar.gz: b2bcbcf45a0f555aaee12136e79b756a3ab12d6daf8504d8a571d3382c1483b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7277d6b439a9d319d6b380118544f65706c858f54504922014990c68763c77407cd05310453266c945e6db18efa0827322b1721575d01f32f1b80074bd58339d
|
7
|
+
data.tar.gz: 7c2454a9bb3ccf632a696b2ad92c28d7cbda213946fbab32addc87b8237e9f317d2d4ddddb31b024d4a721bf59d1d07e286f0341709b6f24cf813da67d4db36a
|
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
|
3
|
+
attr_accessor :spec, :runner, :profile, :env, :features, :target, :extra_rustc_args, :dry_run
|
4
4
|
|
5
5
|
def initialize(spec)
|
6
6
|
require "rubygems/command"
|
@@ -13,6 +13,7 @@ module RbSys
|
|
13
13
|
@features = []
|
14
14
|
@target = ENV["CARGO_BUILD_TARGET"]
|
15
15
|
@extra_rustc_args = []
|
16
|
+
@dry_run = true
|
16
17
|
end
|
17
18
|
|
18
19
|
def build(_extension, dest_path, results, args = [], lib_dir = nil, cargo_dir = Dir.pwd)
|
@@ -52,7 +53,6 @@ module RbSys
|
|
52
53
|
cmd += ["--manifest-path", manifest]
|
53
54
|
cmd += ["--lib"]
|
54
55
|
cmd += ["--profile", profile.to_s]
|
55
|
-
cmd += ["--locked"] if profile.to_s == "release"
|
56
56
|
cmd += Gem::Command.build_args
|
57
57
|
cmd += args
|
58
58
|
cmd += ["--"]
|
@@ -217,9 +217,11 @@ module RbSys
|
|
217
217
|
deffile_path = File.join(dest_dir, "#{spec.name}-#{RbConfig::CONFIG["arch"]}.def")
|
218
218
|
export_prefix = makefile_config("EXPORT_PREFIX") || ""
|
219
219
|
|
220
|
-
|
221
|
-
|
222
|
-
|
220
|
+
unless dry_run
|
221
|
+
File.open(deffile_path, "w") do |f|
|
222
|
+
f.puts "EXPORTS"
|
223
|
+
f.puts "#{export_prefix.strip}Init_#{spec.name}"
|
224
|
+
end
|
223
225
|
end
|
224
226
|
|
225
227
|
deffile_path
|
data/lib/rb_sys/mkmf.rb
CHANGED
@@ -25,7 +25,7 @@ module RbSys
|
|
25
25
|
# . create_rust_makefile("my_extension") do |r|
|
26
26
|
# . # All of these are optional
|
27
27
|
# . r.env = { 'FOO' => 'bar' }
|
28
|
-
# . r.profile = ENV.fetch('
|
28
|
+
# . r.profile = ENV.fetch('RB_SYS_CARGO_PROFILE', :dev).to_sym
|
29
29
|
# . r.features = %w[some_cargo_feature]
|
30
30
|
# . end
|
31
31
|
def create_rust_makefile(target, srcprefix = nil, &blk)
|
@@ -45,36 +45,58 @@ module RbSys
|
|
45
45
|
RbConfig.expand(srcdir = srcprefix.dup)
|
46
46
|
|
47
47
|
full_cargo_command = cargo_command(srcdir, builder)
|
48
|
-
gsub_cargo_command!(full_cargo_command, builder: builder)
|
49
48
|
|
50
49
|
# rubocop:disable Style/GlobalVars
|
51
|
-
make_install =
|
50
|
+
make_install = +<<~MAKE
|
52
51
|
RB_SYS_CARGO_PROFILE ?= #{builder.profile}
|
53
52
|
RB_SYS_CARGO_FEATURES ?= #{builder.features.join(",")}
|
53
|
+
CARGO ?= cargo
|
54
|
+
|
55
|
+
ifeq ($(RB_SYS_CARGO_PROFILE),dev)
|
56
|
+
RB_SYS_TARGET_DIR ?= debug
|
57
|
+
else
|
58
|
+
RB_SYS_TARGET_DIR ?= $(RB_SYS_CARGO_PROFILE)
|
59
|
+
endif
|
60
|
+
|
54
61
|
target_prefix = #{target_prefix}
|
55
|
-
|
62
|
+
TARGET_NAME = #{target[/\A\w+/]}
|
63
|
+
TARGET_ENTRY = #{RbConfig::CONFIG["EXPORT_PREFIX"]}Init_$(TARGET_NAME)
|
64
|
+
CLEANLIBS = $(RUSTLIB) $(DLLIB) $(DEFFILE)
|
56
65
|
DISTCLEANDIRS = target/
|
57
66
|
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
58
67
|
RUSTLIB = #{dllib_path(builder)}
|
59
68
|
TARGET = #{target}
|
60
69
|
DLLIB = $(TARGET).#{RbConfig::CONFIG["DLEXT"]}
|
61
|
-
|
70
|
+
TARGET_DIR = #{Dir.pwd}/target/$(RB_SYS_TARGET_DIR)
|
71
|
+
DEFFILE = $(TARGET_DIR)/$(TARGET)-$(arch).def
|
62
72
|
#{base_makefile(srcdir)}
|
63
|
-
|
64
73
|
#{env_vars(builder)}
|
65
74
|
|
66
75
|
FORCE: ;
|
67
76
|
|
68
|
-
$(
|
69
|
-
\t
|
70
|
-
\t$(
|
77
|
+
$(TARGET_DIR):
|
78
|
+
\t$(ECHO) creating target directory \\($(@)\\)
|
79
|
+
\t$(Q) $(MAKEDIRS) $(TARGET_DIR)
|
80
|
+
|
81
|
+
$(DEFFILE): $(TARGET_DIR)
|
82
|
+
\t$(ECHO) generating $(@)
|
83
|
+
\t$(Q) ($(COPY) $(srcdir)/$(TARGET).def $@ 2> /dev/null) || (echo EXPORTS && echo $(TARGET_ENTRY)) > $@
|
84
|
+
|
85
|
+
$(DLLIB): $(DEFFILE) FORCE
|
86
|
+
\t$(ECHO) generating $(@) \\("$(RB_SYS_CARGO_PROFILE)"\\)
|
87
|
+
\t$(Q) #{full_cargo_command}
|
88
|
+
\t$(Q) $(COPY) "$(RUSTLIB)" $@
|
71
89
|
|
72
90
|
install: $(DLLIB) Makefile
|
73
|
-
\t$(
|
91
|
+
\t$(ECHO) installing $(DLLIB)
|
92
|
+
\t$(Q) $(MAKEDIRS) $(RUBYARCHDIR)
|
93
|
+
\t$(Q) $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
74
94
|
|
75
95
|
all: #{$extout ? "install" : "$(DLLIB)"}
|
76
96
|
MAKE
|
77
97
|
|
98
|
+
gsub_cargo_command!(make_install, builder: builder)
|
99
|
+
|
78
100
|
File.write("Makefile", make_install)
|
79
101
|
end
|
80
102
|
# rubocop:enable Style/GlobalVars
|
@@ -93,7 +115,7 @@ module RbSys
|
|
93
115
|
dest_path = File.join(Dir.pwd, "target")
|
94
116
|
args = []
|
95
117
|
cargo_cmd = builder.cargo_command(cargo_dir, dest_path, args)
|
96
|
-
Shellwords.join(cargo_cmd).gsub("\\=", "=")
|
118
|
+
Shellwords.join(cargo_cmd).gsub("\\=", "=").gsub(/\Acargo/, "$(CARGO)")
|
97
119
|
end
|
98
120
|
|
99
121
|
def env_vars(builder)
|
@@ -119,6 +141,7 @@ module RbSys
|
|
119
141
|
def gsub_cargo_command!(cargo_command, builder:)
|
120
142
|
cargo_command.gsub!("--profile #{builder.profile}", "--profile $(RB_SYS_CARGO_PROFILE)")
|
121
143
|
cargo_command.gsub!(%r{--features \S+}, "--features $(RB_SYS_CARGO_FEATURES)")
|
144
|
+
cargo_command.gsub!(%r{/target/\w+/}, "/target/$(RB_SYS_TARGET_DIR)/")
|
122
145
|
cargo_command
|
123
146
|
end
|
124
147
|
end
|
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.4
|
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-07 00:00:00.000000000 Z
|
34
34
|
dependencies: []
|
35
35
|
description:
|
36
36
|
email:
|
metadata.gz.sig
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
��YP%+Y(�'!��MY�@}(���Bm�T�A���,݃%X:6��ݼ���X����30|
|
2
|
+
��/M�S>@9�;���@��r�+-��+f����Fݠ�[.�!��,�ڃ#���N'X�ypy�p�mE��2Μ�e�H����#�;�ȫ�D�r��K)�v�Ƨ�@��&n7fw�;��q���SĻ�^���y(�n)��m$�A�����c����|7�!�g�t����R?mi�+�B�#rf�(CAq�E��sI
|