rb_sys 0.9.15 → 0.9.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7432eb7aa7558028c6abf21030f376441d43be46b2c1a8a9564b38354d18cb36
4
- data.tar.gz: 23efaad96899dccc966e373951318c0c002c51a8ccdc9c7ae1321149ca7f1a65
3
+ metadata.gz: 87a77ec921cf8f55b614bc5f9cdca97ab6c70ab665844872f75854acc9b9b661
4
+ data.tar.gz: bdc868687c0b8b6981ab736b39e392656d5b77f8ad0331b076d5a99abacdcb56
5
5
  SHA512:
6
- metadata.gz: efb21616dfa671a83fa6e9b788e3561cb3ddbeff1f926873974ca25739ca81e550b57c8e0b7447675e2de9a116d1c2a30ce85d1538d8e26e99ce7fb570989da0
7
- data.tar.gz: eb5a5b7e9e436972fb1cd027ea3442b3efe867de1b32220328cafe91046093586c600e9b1e4b1caefa37b2cf5fc544e02572a379aa5e895c6482c60f64cc26bc
6
+ metadata.gz: d1a4dd01534046638cf54bf50eff4a8725d5987265f3fe71fb08ec9406bd30938b48de5a4e7efde70cc44ebec0d1be8afe004fe6ed3f85631b0abab46986f48a
7
+ data.tar.gz: f9b949fc7a3476917607a3ac7b9aca1d69c7be54b149cc877002ea49e2e4417939b1c0ae7b85685274e19d1b5a2745027b373d65c1997462176650f0c0af1866
checksums.yaml.gz.sig CHANGED
Binary file
@@ -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
- RB_SYS_TARGET_DIR ?= debug
65
+ RB_SYS_CARGO_PROFILE_DIR ?= debug
57
66
  else
58
- RB_SYS_TARGET_DIR ?= $(RB_SYS_CARGO_PROFILE)
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}/target/$(RB_SYS_TARGET_DIR)
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{/target/\w+/}, "/target/$(RB_SYS_TARGET_DIR)/")
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbSys
4
- VERSION = "0.9.15"
4
+ VERSION = "0.9.18"
5
5
  end
data.tar.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- ,z��Z~s?�E;KY)��9���!�ޒ��L�����o �֩(P
2
- &8;?���Tݻ�#^��M'���ʈ����4Dnn��.ٜ�wD]�U��!�`u<cn��$E���7���m��'����č�O5���$�ă���TvE�����q}���\�bJ� ��e�Z|?2U�� =3��:�QyB{R��n��Є>�3��cbi�����h,����7"�����ti�n.�w�"�
1
+ ~N��}���$�7�6j�)�MdeD�3_�Dn�����8)֑��S�Ռ��
2
+ ��[��zôFө��RҙYfR%2.�?j. #���j��%hx���x*x"�,ȸoL��.%���ݔaׅL���:�J�!rL���4~�����eĖ.�x< }Bv}RT(��K��]���^�#��`/A-ǜ�����[0�2��}gB��ę]B|��LWq�>�kq^{>�?U���lM��~?{�
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.15
4
+ version: 0.9.18
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-28 00:00:00.000000000 Z
33
+ date: 2022-06-30 00:00:00.000000000 Z
34
34
  dependencies: []
35
35
  description:
36
36
  email:
metadata.gz.sig CHANGED
Binary file