-
Notifications
You must be signed in to change notification settings - Fork 249
Expand file tree
/
Copy pathrbs.gemspec
More file actions
68 lines (59 loc) · 2.7 KB
/
Copy pathrbs.gemspec
File metadata and controls
68 lines (59 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
lib = File.expand_path("../lib", __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require "rbs/version"
Gem::Specification.new do |spec|
spec.name = "rbs"
spec.version = RBS::VERSION
spec.authors = ["Soutaro Matsumoto"]
spec.email = ["matsumoto@soutaro.com"]
spec.summary = %q{Type signature for Ruby.}
spec.description = %q{RBS is the language for type signatures for Ruby and standard library definitions.}
spec.homepage = "https://github.com/ruby/rbs"
spec.licenses = ['BSD-2-Clause', 'Ruby']
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
# to allow pushing to a single host or delete this section to allow pushing to any host.
if spec.respond_to?(:metadata)
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = "https://github.com/ruby/rbs.git"
spec.metadata["changelog_uri"] = "https://github.com/ruby/rbs/blob/master/CHANGELOG.md"
else
raise "RubyGems 2.0 or newer is required to protect against " \
"public gem pushes."
end
# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
`git ls-files -z`.split("\x0").reject do |f|
[
%r{^(test|spec|features|bin|steep|benchmark|templates|rust|\.vscode)/},
/Gemfile/,
].any? {|r| f.match(r) }
end
end
# JRuby cannot load the MRI C extension. On JRuby (and in the `java` platform
# gem, built with RBS_PLATFORM=java) RBS runs the WebAssembly-backed parser, so
# ship the prebuilt parser and the Chicory jars (assembled by
# `rake wasm:jruby_setup`) and skip the C extension.
building_java_gem = ENV["RBS_PLATFORM"] == "java"
on_jruby = defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
if building_java_gem || on_jruby
# Only stamp the platform when building the release gem; leave it unset for
# local development on JRuby so it still matches a `ruby` platform lockfile.
spec.platform = "java" if building_java_gem
spec.files += Dir.chdir(File.expand_path('..', __FILE__)) do
Dir.glob("lib/rbs/wasm/rbs_parser.wasm") + Dir.glob("lib/rbs/wasm/jars/*.jar")
end
else
spec.extensions = %w{ext/rbs_extension/extconf.rb}
end
if false
spec.required_ruby_version = ">= 3.4"
end
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
spec.required_ruby_version = ">= 3.2"
spec.add_dependency "logger"
spec.add_dependency "prism", ">= 1.6.0"
spec.add_dependency "tsort"
end