Class: RubyWasm::Build
- Inherits:
-
Object
- Object
- RubyWasm::Build
- Defined in:
- lib/ruby_wasm/build.rb
Instance Attribute Summary collapse
-
#baseruby ⇒ Object
readonly
BaseRuby product to build.
-
#crossruby ⇒ Object
readonly
CrossRuby product to build.
-
#libyaml ⇒ Object
readonly
LibYAML product to build.
-
#source ⇒ Object
readonly
Source to build from.
-
#target ⇒ Object
readonly
Target to build for.
-
#toolchain ⇒ Object
readonly
Toolchain for the build.
-
#wasi_vfs ⇒ Object
readonly
wasi-vfs product used by the crossruby.
-
#zlib ⇒ Object
readonly
zlib product to build.
Instance Method Summary collapse
- #cache_key(digest) ⇒ Object
-
#initialize(name, target:, src:, toolchain:, build_dir:, rubies_dir:, wasi_vfs: :default, **options) ⇒ Build
constructor
A new instance of Build.
Constructor Details
#initialize(name, target:, src:, toolchain:, build_dir:, rubies_dir:, wasi_vfs: :default, **options) ⇒ Build
Returns a new instance of Build.
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 69 70 71 72 73 74 75 76 |
# File 'lib/ruby_wasm/build.rb', line 33 def initialize( name, target:, src:, toolchain:, build_dir:, rubies_dir:, wasi_vfs: :default, ** ) @target = target @build_dir = build_dir @rubies_dir = rubies_dir @toolchain = (toolchain || RubyWasm::Toolchain.get(target, @build_dir)) @libyaml = RubyWasm::LibYAMLProduct.new(@build_dir, @target, @toolchain) @zlib = RubyWasm::ZlibProduct.new(@build_dir, @target, @toolchain) @wasi_vfs = wasi_vfs == :default ? RubyWasm::WasiVfsProduct.new(@build_dir) : wasi_vfs @source = RubyWasm::BuildSource.new(src, @build_dir) @baseruby = RubyWasm::BaseRubyProduct.new(@build_dir, @source) @openssl = RubyWasm::OpenSSLProduct.new(@build_dir, @target, @toolchain) build_params = RubyWasm::BuildParams.new( name: name, target: target, default_exts: [:default_exts] ) @crossruby = RubyWasm::CrossRubyProduct.new( build_params, @build_dir, @rubies_dir, @baseruby, @source, @toolchain ) @crossruby.with_libyaml @libyaml @crossruby.with_zlib @zlib @crossruby.with_wasi_vfs @wasi_vfs @crossruby.with_openssl @openssl end |
Instance Attribute Details
#baseruby ⇒ Object (readonly)
BaseRuby product to build.
28 29 30 |
# File 'lib/ruby_wasm/build.rb', line 28 def baseruby @baseruby end |
#crossruby ⇒ Object (readonly)
CrossRuby product to build.
31 32 33 |
# File 'lib/ruby_wasm/build.rb', line 31 def crossruby @crossruby end |
#libyaml ⇒ Object (readonly)
LibYAML product to build.
19 20 21 |
# File 'lib/ruby_wasm/build.rb', line 19 def libyaml @libyaml end |
#source ⇒ Object (readonly)
Source to build from.
9 10 11 |
# File 'lib/ruby_wasm/build.rb', line 9 def source @source end |
#target ⇒ Object (readonly)
Target to build for.
12 13 14 |
# File 'lib/ruby_wasm/build.rb', line 12 def target @target end |
#toolchain ⇒ Object (readonly)
Toolchain for the build. Defaults to the Toolchain.get for the target.
16 17 18 |
# File 'lib/ruby_wasm/build.rb', line 16 def toolchain @toolchain end |
#wasi_vfs ⇒ Object (readonly)
wasi-vfs product used by the crossruby.
25 26 27 |
# File 'lib/ruby_wasm/build.rb', line 25 def wasi_vfs @wasi_vfs end |
#zlib ⇒ Object (readonly)
zlib product to build.
22 23 24 |
# File 'lib/ruby_wasm/build.rb', line 22 def zlib @zlib end |
Instance Method Details
#cache_key(digest) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/ruby_wasm/build.rb', line 78 def cache_key(digest) @source.cache_key(digest) @crossruby.cache_key(digest) digest << @build_dir digest << @rubies_dir @target.cache_key(digest) digest << @toolchain.name digest << @libyaml.name digest << @zlib.name digest << @openssl.name if wasi_vfs = @wasi_vfs digest << wasi_vfs.name end end |