rb_sys 0.9.14 → 0.9.17
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 +17 -17
- data/lib/rb_sys/mkmf.rb +33 -12
- 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: 71d599b2e11fba7f3756857bf4432ad960815b0e7e75213b681df231cde59353
|
4
|
+
data.tar.gz: 406a359f56a69ec89a983e35d4946e7509733b2d10629e9960ccacd481331871
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50369a209b257e4d14aba562c10313e4e5ca2c2181cab1434ce7b3eb60474a215369cf48e4da44195cf1c96eb152a842e1103f4feef76adbddf1024409b8d55c
|
7
|
+
data.tar.gz: 37178cd89bc1cb30ea5a8d1fb65076d132d8b6f08a66a0813022064adb3acefea4a83a52659c08472b62454809fcf64278454f859c5ee8c0616c8b3268f01bef
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/rb_sys/cargo_builder.rb
CHANGED
@@ -11,7 +11,7 @@ module RbSys
|
|
11
11
|
@profile = ENV.fetch("RB_SYS_CARGO_BUILD_PROFILE", :release).to_sym
|
12
12
|
@env = {}
|
13
13
|
@features = []
|
14
|
-
@target = ENV["CARGO_BUILD_TARGET"]
|
14
|
+
@target = ENV["CARGO_BUILD_TARGET"] || ENV["RUST_TARGET"]
|
15
15
|
@extra_rustc_args = []
|
16
16
|
@dry_run = true
|
17
17
|
@ext_dir = nil
|
@@ -70,6 +70,22 @@ module RbSys
|
|
70
70
|
File.join(*path_parts)
|
71
71
|
end
|
72
72
|
|
73
|
+
# We have to basically reimplement RbConfig::CONFIG['SOEXT'] here to support
|
74
|
+
# Ruby < 2.5
|
75
|
+
#
|
76
|
+
# @see https://github.com/ruby/ruby/blob/c87c027f18c005460746a74c07cd80ee355b16e4/configure.ac#L3185
|
77
|
+
def so_ext
|
78
|
+
return RbConfig::CONFIG["SOEXT"] if RbConfig::CONFIG.key?("SOEXT")
|
79
|
+
|
80
|
+
if win_target?
|
81
|
+
"dll"
|
82
|
+
elsif darwin_target?
|
83
|
+
"dylib"
|
84
|
+
else
|
85
|
+
"so"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
73
89
|
private
|
74
90
|
|
75
91
|
def rb_config_env
|
@@ -227,22 +243,6 @@ module RbSys
|
|
227
243
|
deffile_path
|
228
244
|
end
|
229
245
|
|
230
|
-
# We have to basically reimplement RbConfig::CONFIG['SOEXT'] here to support
|
231
|
-
# Ruby < 2.5
|
232
|
-
#
|
233
|
-
# @see https://github.com/ruby/ruby/blob/c87c027f18c005460746a74c07cd80ee355b16e4/configure.ac#L3185
|
234
|
-
def so_ext
|
235
|
-
return RbConfig::CONFIG["SOEXT"] if RbConfig::CONFIG.key?("SOEXT")
|
236
|
-
|
237
|
-
if win_target?
|
238
|
-
"dll"
|
239
|
-
elsif darwin_target?
|
240
|
-
"dylib"
|
241
|
-
else
|
242
|
-
"so"
|
243
|
-
end
|
244
|
-
end
|
245
|
-
|
246
246
|
# Corresponds to $(LIBPATH) in mkmf
|
247
247
|
def mkmf_libpath
|
248
248
|
["-L", "native=#{makefile_config("libdir")}"]
|
data/lib/rb_sys/mkmf.rb
CHANGED
@@ -48,34 +48,57 @@ module RbSys
|
|
48
48
|
|
49
49
|
# rubocop:disable Style/GlobalVars
|
50
50
|
make_install = +<<~MAKE
|
51
|
+
CARGO ?= cargo
|
52
|
+
CARGO_BUILD_TARGET ?= #{builder.target}
|
53
|
+
SOEXT ?= #{builder.so_ext}
|
54
|
+
|
55
|
+
# Determine the prefix Cargo uses for the lib.
|
56
|
+
ifneq ($(SOEXT),dll)
|
57
|
+
SOEXT_PREFIX ?= lib
|
58
|
+
endif
|
59
|
+
|
51
60
|
RB_SYS_CARGO_PROFILE ?= #{builder.profile}
|
52
61
|
RB_SYS_CARGO_FEATURES ?= #{builder.features.join(",")}
|
53
|
-
CARGO ?= cargo
|
54
62
|
|
63
|
+
# Set dirname for the profile, since the profiles do not directly map to target dir (i.e. dev -> debug)
|
55
64
|
ifeq ($(RB_SYS_CARGO_PROFILE),dev)
|
56
|
-
|
65
|
+
RB_SYS_CARGO_PROFILE_DIR ?= debug
|
57
66
|
else
|
58
|
-
|
67
|
+
RB_SYS_CARGO_PROFILE_DIR ?= $(RB_SYS_CARGO_PROFILE)
|
59
68
|
endif
|
60
69
|
|
70
|
+
# Set the build profile (dev, release, etc.) Compat with Rust 1.51.
|
61
71
|
ifeq ($(RB_SYS_CARGO_PROFILE),release)
|
62
72
|
RB_SYS_CARGO_PROFILE_FLAG = --release
|
63
73
|
else
|
64
74
|
RB_SYS_CARGO_PROFILE_FLAG = --profile $(RB_SYS_CARGO_PROFILE)
|
65
75
|
endif
|
66
76
|
|
77
|
+
# Account for sub-directories when using `--target` argument with Cargo
|
78
|
+
ifneq ($(CARGO_BUILD_TARGET),)
|
79
|
+
RB_SYS_CARGO_BUILD_TARGET_DIR ?= target/$(CARGO_BUILD_TARGET)
|
80
|
+
else
|
81
|
+
RB_SYS_CARGO_BUILD_TARGET_DIR ?= target
|
82
|
+
endif
|
83
|
+
|
67
84
|
target_prefix = #{target_prefix}
|
68
85
|
TARGET_NAME = #{target[/\A\w+/]}
|
69
86
|
TARGET_ENTRY = #{RbConfig::CONFIG["EXPORT_PREFIX"]}Init_$(TARGET_NAME)
|
70
87
|
CLEANLIBS = $(RUSTLIB) $(DLLIB) $(DEFFILE)
|
71
|
-
DISTCLEANDIRS = target/
|
72
88
|
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
73
|
-
RUSTLIB = #{dllib_path(builder)}
|
74
89
|
TARGET = #{target}
|
75
90
|
DLLIB = $(TARGET).#{RbConfig::CONFIG["DLEXT"]}
|
76
|
-
TARGET_DIR = #{Dir.pwd}
|
91
|
+
TARGET_DIR = #{Dir.pwd}/$(RB_SYS_CARGO_BUILD_TARGET_DIR)/$(RB_SYS_CARGO_PROFILE_DIR)
|
92
|
+
RUSTLIB = $(TARGET_DIR)/$(SOEXT_PREFIX)$(TARGET_NAME).$(SOEXT)
|
93
|
+
|
94
|
+
DISTCLEANDIRS = $(TARGET_DIR)
|
77
95
|
DEFFILE = $(TARGET_DIR)/$(TARGET)-$(arch).def
|
78
96
|
#{base_makefile(srcdir)}
|
97
|
+
|
98
|
+
ifneq ($(RB_SYS_VERBOSE),)
|
99
|
+
Q = $(0=@)
|
100
|
+
endif
|
101
|
+
|
79
102
|
#{env_vars(builder)}
|
80
103
|
|
81
104
|
FORCE: ;
|
@@ -123,7 +146,7 @@ module RbSys
|
|
123
146
|
args = ARGV.dup
|
124
147
|
args.shift if args.first == "--"
|
125
148
|
cargo_cmd = builder.cargo_command(dest_path, args)
|
126
|
-
Shellwords.join(cargo_cmd).gsub("\\=", "=").gsub(/\Acargo/, "$(CARGO)")
|
149
|
+
Shellwords.join(cargo_cmd).gsub("\\=", "=").gsub(/\Acargo/, "$(CARGO)").gsub(/-v=\d/, "")
|
127
150
|
end
|
128
151
|
|
129
152
|
def env_vars(builder)
|
@@ -142,14 +165,12 @@ module RbSys
|
|
142
165
|
ENV[key] || RbConfig::MAKEFILE_CONFIG[key]
|
143
166
|
end
|
144
167
|
|
145
|
-
def dllib_path(builder)
|
146
|
-
builder.cargo_dylib_path(File.join(Dir.pwd, "target"))
|
147
|
-
end
|
148
|
-
|
149
168
|
def gsub_cargo_command!(cargo_command, builder:)
|
150
169
|
cargo_command.gsub!(/--profile \w+/, "$(RB_SYS_CARGO_PROFILE_FLAG)")
|
151
170
|
cargo_command.gsub!(%r{--features \S+}, "--features $(RB_SYS_CARGO_FEATURES)")
|
152
|
-
cargo_command.gsub!(%r{
|
171
|
+
cargo_command.gsub!(%r{--target \S+}, "--target $(CARGO_BUILD_TARGET)")
|
172
|
+
target_dir = "target/#{builder.target}".chomp("/")
|
173
|
+
cargo_command.gsub!(%r{/#{target_dir}/[^/]+}, "/$(RB_SYS_CARGO_BUILD_TARGET_DIR)/$(RB_SYS_CARGO_PROFILE_DIR)")
|
153
174
|
cargo_command
|
154
175
|
end
|
155
176
|
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.17
|
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-29 00:00:00.000000000 Z
|
34
34
|
dependencies: []
|
35
35
|
description:
|
36
36
|
email:
|
metadata.gz.sig
CHANGED
Binary file
|