rb_sys 0.9.42 → 0.9.43
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 +1 -2
- data/lib/rb_sys/cargo_builder.rb +12 -1
- data/lib/rb_sys/mkmf.rb +24 -12
- data/lib/rb_sys/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +1 -1
- metadata.gz.sig +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abede1c651510cc3d4995a424e634a9ce4afcccf1a83f85151c737ad7b578463
|
4
|
+
data.tar.gz: 17d3ea227ca871ae8fb1fc19a6964d57101747a8de0564b95caeda4b042ee8df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbbc55012efc13e0eb0ba2c3c578a96e1cca965cc8a8691e8c3e48b008c5603df73d80fbe493b6653582a0461fb7d9b3fbeb4fa8bcbe711c33468714631883de
|
7
|
+
data.tar.gz: e12945fed0147192dfdc4c8cbbaa01a34a734c358c3766970e285b563bf4b866216bb489a3075e89ab4f3860d5dce078db0ab291df126006de7718c156a7a280
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
|
2
|
-
�Jќ9a��,��*��t�E����
|
1
|
+
�9��㼫:
|
data/lib/rb_sys/cargo_builder.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module RbSys
|
2
2
|
# A class to build a Ruby gem Cargo. Extracted from `rubygems` gem, with some modifications.
|
3
3
|
class CargoBuilder < Gem::Ext::Builder
|
4
|
-
attr_accessor :spec, :runner, :
|
4
|
+
attr_accessor :spec, :runner, :env, :features, :target, :extra_rustc_args, :dry_run, :ext_dir, :extra_rustflags
|
5
|
+
attr_writer :profile
|
5
6
|
|
6
7
|
def initialize(spec)
|
7
8
|
require "rubygems/command"
|
@@ -19,6 +20,12 @@ module RbSys
|
|
19
20
|
@extra_rustflags = []
|
20
21
|
end
|
21
22
|
|
23
|
+
def profile
|
24
|
+
return :release if rubygems_invoked?
|
25
|
+
|
26
|
+
@profile
|
27
|
+
end
|
28
|
+
|
22
29
|
def build(_extension, dest_path, results, args = [], lib_dir = nil, cargo_dir = Dir.pwd)
|
23
30
|
require "fileutils"
|
24
31
|
require "shellwords"
|
@@ -324,6 +331,10 @@ module RbSys
|
|
324
331
|
end
|
325
332
|
end
|
326
333
|
|
334
|
+
def rubygems_invoked?
|
335
|
+
ENV.key?("SOURCE_DATE_EPOCH")
|
336
|
+
end
|
337
|
+
|
327
338
|
# Error raised when no cdylib artifact was created
|
328
339
|
class DylibNotFoundError < StandardError
|
329
340
|
def initialize(dir)
|
data/lib/rb_sys/mkmf.rb
CHANGED
@@ -64,7 +64,7 @@ module RbSys
|
|
64
64
|
#{conditional_assign("SOEXT_PREFIX", "lib", indent: 1)}
|
65
65
|
#{endif_stmt}
|
66
66
|
|
67
|
-
#{
|
67
|
+
#{set_cargo_profile(builder)}
|
68
68
|
#{conditional_assign("RB_SYS_CARGO_FEATURES", builder.features.join(","))}
|
69
69
|
#{conditional_assign("RB_SYS_GLOBAL_RUSTFLAGS", GLOBAL_RUSTFLAGS.join(" "))}
|
70
70
|
#{conditional_assign("RB_SYS_EXTRA_RUSTFLAGS", builder.extra_rustflags.join(" "))}
|
@@ -84,28 +84,30 @@ module RbSys
|
|
84
84
|
#{endif_stmt}
|
85
85
|
|
86
86
|
# Account for sub-directories when using `--target` argument with Cargo
|
87
|
+
#{conditional_assign("RB_SYS_CARGO_TARGET_DIR", "target")}
|
87
88
|
#{if_neq_stmt("$(CARGO_BUILD_TARGET)", "")}
|
88
|
-
#{assign_stmt("
|
89
|
+
#{assign_stmt("RB_SYS_FULL_TARGET_DIR", "$(RB_SYS_CARGO_TARGET_DIR)/$(CARGO_BUILD_TARGET)", indent: 1)}
|
89
90
|
#{else_stmt}
|
90
|
-
#{assign_stmt("
|
91
|
+
#{assign_stmt("RB_SYS_FULL_TARGET_DIR", "$(RB_SYS_CARGO_TARGET_DIR)", indent: 1)}
|
91
92
|
#{endif_stmt}
|
92
93
|
|
93
94
|
target_prefix = #{target_prefix}
|
94
95
|
TARGET_NAME = #{target[/\A\w+/]}
|
95
96
|
TARGET_ENTRY = #{RbConfig::CONFIG["EXPORT_PREFIX"]}Init_$(TARGET_NAME)
|
96
|
-
RUBYARCHDIR
|
97
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
97
98
|
TARGET = #{target}
|
98
99
|
DLLIB = $(TARGET).#{RbConfig::CONFIG["DLEXT"]}
|
99
|
-
|
100
|
-
RUSTLIBDIR = $(TARGET_DIR)/$(RB_SYS_CARGO_PROFILE_DIR)
|
100
|
+
RUSTLIBDIR = $(RB_SYS_FULL_TARGET_DIR)/$(RB_SYS_CARGO_PROFILE_DIR)
|
101
101
|
RUSTLIB = $(RUSTLIBDIR)/$(SOEXT_PREFIX)$(TARGET_NAME).$(SOEXT)
|
102
102
|
|
103
|
-
CLEANOBJS = $(RUSTLIBDIR)
|
103
|
+
CLEANOBJS = $(RUSTLIBDIR) $(RB_SYS_BUILD_DIR)
|
104
104
|
DEFFILE = $(RUSTLIBDIR)/$(TARGET)-$(arch).def
|
105
105
|
CLEANLIBS = $(DLLIB) $(RUSTLIB) $(DEFFILE)
|
106
106
|
|
107
107
|
#{base_makefile(srcdir)}
|
108
108
|
|
109
|
+
.PHONY: gemclean
|
110
|
+
|
109
111
|
#{if_neq_stmt("$(RB_SYS_VERBOSE)", "")}
|
110
112
|
#{assign_stmt("Q", "$(0=@)", indent: 1)}
|
111
113
|
#{endif_stmt}
|
@@ -135,7 +137,10 @@ module RbSys
|
|
135
137
|
\t$(Q) $(MAKEDIRS) $(RUBYARCHDIR)
|
136
138
|
\t$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
137
139
|
|
138
|
-
|
140
|
+
gemclean:
|
141
|
+
\t-$(Q)$(RM_RF) $(CLEANOBJS) $(CLEANFILES) 2> /dev/null || true
|
142
|
+
|
143
|
+
install: #{builder.clean_after_install ? "install-so gemclean" : "install-so"}
|
139
144
|
|
140
145
|
all: #{$extout ? "install" : "$(DLLIB)"}
|
141
146
|
MAKE
|
@@ -184,7 +189,7 @@ module RbSys
|
|
184
189
|
cargo_command.gsub!(/--profile \w+/, "$(RB_SYS_CARGO_PROFILE_FLAG)")
|
185
190
|
cargo_command.gsub!(%r{--features \S+}, "--features $(RB_SYS_CARGO_FEATURES)")
|
186
191
|
cargo_command.gsub!(%r{--target \S+}, "--target $(CARGO_BUILD_TARGET)")
|
187
|
-
cargo_command.gsub!(/--target-dir (?:(?!--).)+/, "--target-dir $(
|
192
|
+
cargo_command.gsub!(/--target-dir (?:(?!--).)+/, "--target-dir $(RB_SYS_CARGO_TARGET_DIR) ")
|
188
193
|
cargo_command
|
189
194
|
end
|
190
195
|
|
@@ -238,9 +243,10 @@ module RbSys
|
|
238
243
|
|
239
244
|
$(CARGO):
|
240
245
|
\t$(Q) $(MAKEDIRS) $(CARGO_HOME) $(RUSTUP_HOME)
|
241
|
-
\
|
242
|
-
\
|
243
|
-
\
|
246
|
+
\t$(Q) curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --no-modify-path --profile $(RB_SYS_RUSTUP_PROFILE) --default-toolchain none -y
|
247
|
+
\t$(Q) rustup toolchain install $(RB_SYS_DEFAULT_TOOLCHAIN) --profile $(RB_SYS_RUSTUP_PROFILE)
|
248
|
+
\t$(Q) rustup default $(RB_SYS_DEFAULT_TOOLCHAIN)
|
249
|
+
\t$(Q) rustup component add rustfmt
|
244
250
|
|
245
251
|
$(RUSTLIB): $(CARGO)
|
246
252
|
#{endif_stmt}
|
@@ -311,6 +317,12 @@ module RbSys
|
|
311
317
|
"export #{k} := #{v}"
|
312
318
|
end
|
313
319
|
end
|
320
|
+
|
321
|
+
def set_cargo_profile(builder)
|
322
|
+
return assign_stmt("RB_SYS_CARGO_PROFILE", "release") if builder.rubygems_invoked?
|
323
|
+
|
324
|
+
conditional_assign("RB_SYS_CARGO_PROFILE", builder.profile)
|
325
|
+
end
|
314
326
|
end
|
315
327
|
end
|
316
328
|
# rubocop:enable Style/GlobalVars
|
data/lib/rb_sys/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
�Ue9:�4���H[6��<i�)d��Nm���`6O_Efc�q�V��t���+yƏ�r���Ö@�Z,,�C��op?�X�����ǨM��1�5O�ޥ��t}��"�o�G����
|
1
|
+
�aIA�H������]A����𲂷��e�����:Q��߮�jU�&��R�cb���6e��г&��������\^��Y�s�����Ĝó����G�/*���ơ|u8T
|
2
|
+
�\�|o p��]F MѶ�y2DDK(-X�yz�\��劗_
|