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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9318d5c965e51089316aba99b4a88e40c2f7fd967df965e165ef511ea4b72077
4
- data.tar.gz: 39ba16bbb0686582e5f787f92fc02ef532b76e0d6667edfdda97151cbd405ad1
3
+ metadata.gz: 71d599b2e11fba7f3756857bf4432ad960815b0e7e75213b681df231cde59353
4
+ data.tar.gz: 406a359f56a69ec89a983e35d4946e7509733b2d10629e9960ccacd481331871
5
5
  SHA512:
6
- metadata.gz: 1e20298824d873e17feb94a1b6803b5422b4d2a72cad3cd6149001b3a164bf4028e09e9921c1e23b06161edbcb632dd7b3e5062cc8e6608106beeef54e37a3d6
7
- data.tar.gz: f2ce7a4ace0e96123a0b4833f91e713d7c6b27dc4618e86680a2b67607e50f82370bac1f01c2f8f21f42429ee927c1fa0277b433df3b1b652f9709730a640428
6
+ metadata.gz: 50369a209b257e4d14aba562c10313e4e5ca2c2181cab1434ce7b3eb60474a215369cf48e4da44195cf1c96eb152a842e1103f4feef76adbddf1024409b8d55c
7
+ data.tar.gz: 37178cd89bc1cb30ea5a8d1fb65076d132d8b6f08a66a0813022064adb3acefea4a83a52659c08472b62454809fcf64278454f859c5ee8c0616c8b3268f01bef
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.14"
4
+ VERSION = "0.9.17"
5
5
  end
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.14
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-28 00:00:00.000000000 Z
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