8000 WebAssembly! by blacktm · Pull Request #235 · ruby2d/ruby2d · GitHub
[go: up one dir, main page]

Skip to content

WebAssembly! #235

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

WebAssembly! #235

wants to merge 2 commits into from

Conversation

blacktm
Copy link
Member
@blacktm blacktm commented Mar 26, 2022

This PR will enable WebAssembly as a build target. Currently works on macOS, but will be testing on Windows and Linux soon. To test this branch locally, do the following after cloning:

  1. Run rake update to get the latest changes in the assets/ Git submodule.
  2. Run rake to (re)build the gem and install in one command.
  3. Make sure Emscripten tools are available in the current shell (follow these instructions).
  4. Run ruby2d build test/wasm.rb --debug to build our little test app.
  5. Run ruby2d serve build/web/app.html to launch the built test app in your default browser.

To conveniently build & serve a file in the test/ directory, you can also use:

rake test:web <name of test>

# i.e. to run `test/wasm.rb`, do...
rake test:web wasm

That's it! If all goes well, should look something like the image below. Let me know how this works, and feedback welcome.

Screen Shot 2022-03-25 at 7 41 29 PM

Caveats!

  • The build process currently doesn't include media files you might reference in your apps. For example, you can't yet include an image, font, or audio file in your build. This is something we need to figure out. Done!
  • require doesn't work. Because we're using mruby under the hood, there is no require. I think we should implement our own version of require that literally inserts the file referenced, kind of like a C #include.
  • RubyGems do not work. We're using mruby, which doesn't support standard CRuby/MRI gems. Nothing we can really do about that. mruby does have its own gems, but they need to be compiled into the runtime itself (libmruby.a), can't be required like standard gems.

@jtoy
Copy link
jtoy commented Apr 15, 2022

great work, excited to test it out!

@Nakilon
Copy link
Nakilon commented Apr 19, 2022 & 8000 #8226;

The mruby is a huge limitation. That's exactly why dragonruby didn't work for me -- I could not figure out how to require gems. Also writing files/sockets/network...

@blacktm
Copy link
Member Author
blacktm commented Apr 19, 2022

@Nakilon I hear ya. Now that Ruby 3.2 is gaining WASI support, we'll be able to use CRuby in the browser. I haven't tested the preview release yet, but looks promising. Running in a web browser will still impose limitations, regardless of the Ruby engine used, but hopefully will be more feature rich than mruby. Also not sure about how gems will work, but hopefully there's a decent story there too.

@westonganger
Copy link

Awesome work here, just want to follow up on this stuff as im curious to get some updates on achieving web platform support.

  1. Are there any plans to take this PR for mruby across the finish line at some point, its been sitting since March/April

  2. Now that Ruby 3.2.0 is released with proper WASM support, maybe its time to start some work towards this. https://github.com/ruby/ruby.wasm contains the official prebuilt binaries.

@blacktm
Copy link
Member Author
blacktm commented Jan 16, 2023

Hey @westonganger, yea, would be nice to finish this up and merge. (Free time to work on side projects is the enemy here.) Having mruby support is pretty trivial at this point, so we'll probably keep it. And now that Ruby 3.2 is out, and a lot more tooling and documentation exists, would be fun to give that an honest try. I'm not sure of the exact steps to get going, but might start at the Emscripten port, since that's what we're doing today with mruby (and it has all the WASM dependencies ported, like SDL2). If you're interested in doing some experimentation there, happy to open a new PR that's specific to ruby.wasm (separate from mruby). Can also chat about it in the Discord if you like.

@westonganger
Copy link

@blacktm what remains to be done to merge the mruby stuff?

Also wanted to let you know that the ruby.wasm has made official Ruby 3.2 releases as of today, https://github.com/ruby/ruby.wasm/releases/tag/ruby-3_2-wasm-wasi%2F1.0.1

@westonganger
Copy link

For Ruby 3.2 web assembly we will need to continue using the emscripten version as SDL2 currently only supports emscripten

@blacktm
Copy link
Member Author
blacktm commented Feb 10, 2023

Hi @westonganger, I think left for mruby is making sure it works on Windows and Linux/Ubuntu I've only tested on macOS. I also didn't get the virtual file system set up yet. Overall, the developer experience is probably a little rough. This could be merged as a "first draft", then progressively add and test new features.

Good to know that about Ruby 3.2, thanks. I'm down to give that a go, I think would be more popular than an mruby option. Would definitely want to open a new branch after merging this. If you're interested in collaborating on it, feel free to join the #development channel in our Discord. I bet others would be interested on hacking on it also.

@westonganger
Copy link

Yes if it can be merged as a first draft that would be helpful, we can create issues for any outstanding things such as Window/Linux testing and virtual FS. That would at least give us a baseline to continue forward with. This will allow for mruby development to continue in smaller steps and provide a general sense of direction for implementing cruby wasm support.

@westonganger
Copy link

Just checking in. Still hoping to see something budge here in regards to the mruby stuff here now.

@dobkeratops
Copy link
dobkeratops commented Apr 20, 2023

hi - thanks for referencing my thread on SDL2 / WASM / WASI here.
Is anyone in this community interested in collaborating in porting this API from the 'emscripten' target to WASM/WASI to improve more streamlined support for web builds ?
This should be of interest to the entire C++ community, and up and coming languages like JAI and Zig
My situation is I have a Rust project built around C-FFI foundations (rather than rust community wrappers), this works fine on desktop and the 'emscripten' target, however the rust emscripten compile target has a bug that breaks threading, and will likely never be fixed , because the Rust community focussed on pure WASI bindings.
chose my path to hedge my bets between languages, I may need to go back to C++ and am interested in other options, so I vastly prefer to build around C-FFI cross-language low level libs .

8000

@grzegorz-jakubiak
Copy link
Contributor

I actually tried it with ruby.wasm

bundle exec rbwasm build -o ruby.wasm
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm.rb:1: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add logger to your Gemfile or gemspec to silence this warning.
INFO: Using Gemfile: /Users/grzegorzjakubiak/Projects/ruby2d_test/Gemfile
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  113M  100  113M    0     0  9253k      0  0:00:12  0:00:12 --:--:-- 21.9M
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 4278k  100 4278k    0     0  2254k      0  0:00:01  0:00:01 --:--:-- 3796k
==> RubyWasm::BuildSource(3.3) -- Building
  ==> curl -L -o /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3.tar.gz https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.3.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 21.0M  100 21.0M    0     0  18.4M      0  0:00:01  0:00:01 --:--:-- 18.4M
  ==> tar xf /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3.tar.gz -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3 --strip-components\=1
==> RubyWasm::BuildSource(3.3) -- done in 2.94s
==> RubyWasm::BaseRubyProduct(baseruby-3.3) -- Building
  ==> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/configure --prefix\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/arm64-apple-darwin24/baseruby-3.3/opt --disable-install-doc
  ==> make -j8 install
file2lastrev.rb: does not seem to be under a vcs: .
. /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/vm_opts.h
warning: creating a shared reference to mutable static is discouraged
   --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/options.rs:143:19
    |
143 |         unsafe { &($crate::options::OPTIONS.$option_name) }
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
    |
   ::: /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/codegen.rs:747:8
    |
747 |     if get_option_ref!(dump_disasm).is_some() {
    |        ---------------------------- in this macro invocation
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
    = note: `#[warn(static_mut_refs)]` on by default
    = note: this warning originates in the macro `get_option_ref` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: creating a shared reference to mutable static is discouraged
    --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/codegen.rs:4256:52
     |
4256 |             assert_eq!(sample_instance.class_of(), rb_cString, "context says class is exactly ::String")
     |                                                    ^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
    --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/codegen.rs:5192:26
     |
5192 |     let table = unsafe { METHOD_CODEGEN_TABLE.as_ref().unwrap() };
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
    --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/codegen.rs:8843:17
     |
8843 |         assert!(METHOD_CODEGEN_TABLE.is_none());
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a mutable reference to mutable static is discouraged
    --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/codegen.rs:8913:14
     |
8913 |     unsafe { METHOD_CODEGEN_TABLE.as_mut().unwrap().insert(method_serial, gen_fn); }
     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
    --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/codegen.rs:9049:18
     |
9049 |         unsafe { CODEGEN_GLOBALS.as_mut().unwrap() }
     |                  ^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
    --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/codegen.rs:9053:18
     |
9053 |         unsafe { CODEGEN_GLOBALS.as_mut().is_some() }
     |                  ^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: this method call resolves to `<&Box<[T]> as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<Box<[T]> as IntoIterator>::into_iter` in Rust 2024
   --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/core.rs:982:49
    |
982 |         formatter.debug_list().entries(branches.into_iter()).finish()
    |                                                 ^^^^^^^^^
    |
    = warning: this changes meaning in Rust 2024
    = note: `#[warn(boxed_slice_into_iter)]` on by default
help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
    |
982 |         formatter.debug_list().entries(branches.iter()).finish()
    |                                                 ~~~~
help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
    |
982 |         formatter.debug_list().entries(IntoIterator::into_iter(branches)).finish()
    |                                        ++++++++++++++++++++++++        ~

warning: creating a mutable reference to mutable static is discouraged
  --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/invariants.rs:78:18
   |
78 |         unsafe { INVARIANTS.as_mut().unwrap() }
   |                  ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
   |
   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
   = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a shared reference to mutable static is discouraged
  --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:70:12
   |
70 |         if CFUNC_NAME_TO_IDX.is_none() {
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
   |
   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
   = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
  --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:74:12
   |
74 |         if CFUNC_CALL_COUNT.is_none() {
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
   |
   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
   = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a mutable reference to mutable static is discouraged
  --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:78:27
   |
78 |         let name_to_idx = CFUNC_NAME_TO_IDX.as_mut().unwrap();
   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
   |
   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
   = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
  --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:87:40
   |
87 |                 let cfunc_call_count = CFUNC_CALL_COUNT.as_mut().unwrap();
   |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
   |
   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
   = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
   --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:102:32
    |
102 |         let cfunc_call_count = CFUNC_CALL_COUNT.as_mut().unwrap();
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
   --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:149:18
    |
149 |         unsafe { YJIT_EXIT_LOCATIONS.as_mut().unwrap() }
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
   --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:750:42
    |
750 |         if let Some(cfunc_name_to_idx) = CFUNC_NAME_TO_IDX.as_mut() {
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
   --> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/yjit/src/stats.rs:751:31
    |
751 |             let call_counts = CFUNC_CALL_COUNT.as_mut().unwrap();
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: 17 warnings emitted

yaml.h not foundding iso_8859_11.bundle
file2lastrev.rb: does not seem to be under a vcs: .
ld: warning: ignoring duplicate libraries: '-ldl', '-lobjc', '-lpthread'
==> RubyWasm::BaseRubyProduct(baseruby-3.3) -- done in 75.1s
==> RubyWasm::LibYAMLProduct(libyaml-0.2.5-wasm32-unknown-wasip1) -- Building
  ==> curl -o /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/yaml-0.2.5/libyaml-0.2.5.tar.gz -L https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  595k  100  595k    0     0   749k      0 --:--:-- --:--:-- --:--:--  749k
  ==> tar xzf /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/yaml-0.2.5/libyaml-0.2.5.tar.gz -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/yaml-0.2.5 --strip-components\=1
  ==> curl -o /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/yaml-0.2.5/config/config.guess https://cdn.jsdelivr.net/gh/gcc-mirror/gcc@master/config.guess
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 49446  100 49446    0     0   889k      0 --:--:-- --:--:-- --:--:--  894k
  ==> curl -o /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/yaml-0.2.5/config/config.sub https://cdn.jsdelivr.net/gh/gcc-mirror/gcc@master/config.sub
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 35295  100 35295    0     0   692k      0 --:--:-- --:--:-- --:--:--  703k
  ==> ./configure --host wasm32-wasi CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang++ LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib
configure: WARNING: using cross tools not prefixed with host triplet
  ==> make install DESTDIR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/yaml-0.2.5/opt
libtool: warning: remember to run 'libtool --finish /usr/local/lib'
==> RubyWasm::LibYAMLProduct(libyaml-0.2.5-wasm32-unknown-wasip1) -- done in 8.33s
==> RubyWasm::ZlibProduct(zlib-1.3.1-wasm32-unknown-wasip1) -- Building
  ==> curl -o /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/zlib-1.3.1/zlib-1.3.1.tar.gz -L https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 1477k  100 1477k    0     0  2188k      0 --:--:-- --:--:-- --:--:-- 2188k
  ==> tar xzf /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/zlib-1.3.1/zlib-1.3.1.tar.gz -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/zlib-1.3.1 --strip-components\=1
  ==> env CHOST\=linux CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang++ LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib ./configure --static
  ==> make install DESTDIR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/zlib-1.3.1/opt
==> RubyWasm::ZlibProduct(zlib-1.3.1-wasm32-unknown-wasip1) -- done in 2.22s
==> RubyWasm::OpenSSLProduct(openssl-3.2.0-wasm32-unknown-wasip1) -- Building
  ==> curl -o /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/openssl-3.2.0/openssl-3.2.0.tar.gz -L https://www.openssl.org/source/openssl-3.2.0.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   169  100   169    0     0    816      0 --:--:-- --:--:-- --:--:--   820
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 16.8M  100 16.8M    0     0  11.4M      0  0:00:01  0:00:01 --:--:-- 44.9M
  ==> tar xzf /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/openssl-3.2.0/openssl-3.2.0.tar.gz -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/openssl-3.2.0 --strip-components\=1
  ==> ./Configure gcc -static -no-asm -no-threads -no-afalgeng -no-ui-console -no-tests -no-sock -no-dgram --libdir\=lib -Wl,--allow-undefined -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -D_WASI_EMULATED_MMAN -D_WASI_EMULATED_GETPID -DNO_CHMOD -DHAVE_FORK\=0 CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang++ LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib
  ==> make -j1 install_dev DESTDIR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/openssl-3.2.0/opt
==> RubyWasm::OpenSSLProduct(openssl-3.2.0-wasm32-unknown-wasip1) -- done in 69.59s
==> RubyWasm::WasiVfsProduct(wasi-vfs-0.5.0-arm64-apple-darwin24) -- Building
  ==> curl -L https://github.com/kateinoigakukun/wasi-vfs/releases/download/v0.5.0/libwasi_vfs-wasm32-unknown-unknown.zip -o /var/folders/6f/6qdk64n11_39lmdyd6zd2gyw0000gn/T/d20250216-34543-x53swp/libwasi_vfs.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 3622k  100 3622k    0     0  4087k      0 --:--:-- --:--:-- --:--:-- 4087k
  ==> unzip /var/folders/6f/6qdk64n11_39lmdyd6zd2gyw0000gn/T/d20250216-34543-x53swp/libwasi_vfs.zip -d /var/folders/6f/6qdk64n11_39lmdyd6zd2gyw0000gn/T/d20250216-34543-x53swp
==> RubyWasm::WasiVfsProduct(wasi-vfs-0.5.0-arm64-apple-darwin24) -- done in 1.0s
==> RubyWasm::CrossRubyProduct(ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6) -- Configuring
  ==> /Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3/configure --host wasm32-wasi --build arm64-apple-darwin24 --with-static-linked-ext --with-ext\=bigdecimal,cgi/escape,continuation,coverage,date,dbm,digest/bubblebabble,digest,digest/md5,digest/rmd160,digest/sha1,digest/sha2,etc,fcntl,fiber,gdbm,json,json/generator,json/parser,nkf,objspace,pathname,psych,racc/cparse,rbconfig/sizeof,ripper,stringio,strscan,monitor,zlib,openssl --with-libyaml-dir\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/yaml-0.2.5/opt/usr/local --with-zlib-dir\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/zlib-1.3.1/opt/usr/local --with-openssl-dir\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/openssl-3.2.0/opt/usr/local --with-baseruby\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/arm64-apple-darwin24/baseruby-3.3/opt/bin/ruby WASMOPT\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/binaryen/bin/wasm-opt WASI_SDK_PATH\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang++ LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib LDFLAGS\=-Xlinker\ --stack-first\ -Xlinker\ -z\ -Xlinker\ stack-size\=16777216 XLDFLAGS\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/wasi-vfs-0.5.0/libwasi_vfs.a\ @/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/js-2.7.1/ext/js/link.filelist\ @/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/ruby2d-0.12.1/ext/ruby2d/link.filelist\ /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/extinit.o CFLAGS\= XCFLAGS\=-DWASM_SETJMP_STACK_BUFFER_SIZE\=24576\ -DWASM_FIBER_STACK_BUFFER_SIZE\=24576\ -DWASM_SCAN_STACK_BUFFER_SIZE\=24576 debugflags\=-g cppflags\= wasmoptflags\=-O3\ -g\ --pass-arg\=asyncify-ignore-imports --disable-install-doc ac_cv_func_dlopen\=no
configure: WARNING: using cross tools not prefixed with host triplet
  ==> make rbconfig.rb
file2lastrev.rb: does not seem to be under a vcs: .
==> RubyWasm::CrossRubyProduct(ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6) -- done in 25.2s
==> RubyWasm::CrossRubyExtProduct(js-2.7.1/ext/js) -- Building
  ==> env RUBYOPT= /Users/grzegorzjakubiak/Projects/ruby2d_test/build/arm64-apple-darwin24/baseruby-3.3/opt/bin/ruby -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/js-2.7.1/ext/js --disable\=gems -e \$top_srcdir\=ENV\[\"top_srcdir\"\]\=\"/Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3\" -e \$extout\=ENV\[\"extout\"\]\=\"/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6/.ext\" -e \$have_devel\ \=\ true -e \$static\ \=\ true\;\ trace_var\(:\$static\)\ \{\|v\|\ \$static\ \=\ true\ \} -e \$0\=\"/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/js-2.7.1/ext/js/extconf.rb\" -e require_relative\ \"/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/js-2.7.1/ext/js/extconf.rb\" -e require\ \"json\"\;\ File.write\(\"/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/js-2.7.1/ext/js/rbwasm.metadata.json\",\ JSON.dump\(\{target:\ \$target\}\)\) -I/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6 -- --disable-component-model
Building with component model: no
  ==> make -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/js-2.7.1/ext/js CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib clean
  ==> make -j8 -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/js-2.7.1/ext/js CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib static
==> RubyWasm::CrossRubyExtProduct(js-2.7.1/ext/js) -- done in 0.51s
==> RubyWasm::CrossRubyExtProduct(ruby2d-0.12.1/ext/ruby2d) -- Building
  ==> env RUBYOPT= /Users/grzegorzjakubiak/Projects/ruby2d_test/build/arm64-apple-darwin24/baseruby-3.3/opt/bin/ruby -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/ruby2d-0.12.1/ext/ruby2d --disable\=gems -e \$top_srcdir\=ENV\[\"top_srcdir\"\]\=\"/Users/grzegorzjakubiak/Projects/ruby2d_test/build/checkouts/3.3\" -e \$extout\=ENV\[\"extout\"\]\=\"/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6/.ext\" -e \$have_devel\ \=\ true -e \$static\ \=\ true\;\ trace_var\(:\$static\)\ \{\|v\|\ \$static\ \=\ true\ \} -e \$0\=\"/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/extconf.rb\" -e require_relative\ \"/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/extconf.rb\" -e require\ \"json\"\;\ File.write\(\"/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/ruby2d-0.12.1/ext/ruby2d/rbwasm.metadata.json\",\ JSON.dump\(\{target:\ \$target\}\)\) -I/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6 -- --disable-component-model
  ==> make -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/ruby2d-0.12.1/ext/ruby2d CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib clean
  ==> make -j8 -C /Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/ruby2d-0.12.1/ext/ruby2d CC\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang CXX\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang LD\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang AR\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar RANLIB\=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib static
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/canvas.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/controllers.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/common.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4
6D40
.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/font.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
4 warnings and 1 error generated.
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl2.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
make: *** [common.o] Error 1
make: *** Waiting for unfinished jobs....
4 warnings and 1 error generated.
4 warnings and 1 error generated.
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl3.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
make: *** [controllers.o] Error 1
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
make: *** [canvas.o] Error 1
4 warnings and 1 error generated.
make: *** [font.o] Error 1
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gles.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h
:99:5   : warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | 99# | i#fi fI OISO S| || TV|O ST
V      O| S    ^

      |     ^/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^

/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h   :99102 | :#if IOS || 12T:V Ofatal error: S'SDL2/SDL.h' file not found

      |            ^
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
4 warnings and 1 error generated.
4 warnings and 1 error generated.
4 warnings and 1 error generated.
make: *** [gl3.o] Error 1
make: *** [gl2.o] Error 1
make: *** [gl.o] Error 1
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
4 warnings and 1 error generated.
make: *** [gles.o] Error 1
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/canvas.c
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/common.c
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/controllers.c
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/font.c
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl.c
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl2.c
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl3.c
compiling /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gles.c
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/canvas.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/controllers.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/common.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/font.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
4 warnings and 1 error generated.
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl2.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
make: *** [common.o] Error 1
make: *** Waiting for unfinished jobs....
4 warnings and 1 error generated.
4 warnings and 1 error generated.
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gl3.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
make: *** [controllers.o] Error 1
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
make: *** [canvas.o] Error 1
4 warnings and 1 error generated.
make: *** [font.o] Error 1
In file included from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/gles.c:3:
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:65:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   65 | #if IOS || TVOS || WASM
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h
:99:5   : warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | 99# | i#fi fI OISO S| || TV|O ST
V      O| S    ^

      |     ^/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^

/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h   :99102 | :#if IOS || 12T:V Ofatal error: S'SDL2/SDL.h' file not found

      |            ^
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
4 warnings and 1 error generated.
4 warnings and 1 error generated.
4 warnings and 1 error generated.
make: *** [gl3.o] Error 1
make: *** [gl2.o] Error 1
make: *** [gl.o] Error 1
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:5: warning: 'IOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |     ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:99:12: warning: 'TVOS' is not defined, evaluates to 0 [-Wundef]
   99 | #if IOS || TVOS
      |            ^
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby2d-0.12.1/ext/ruby2d/ruby2d.h:102:12: fatal error: 'SDL2/SDL.h' file not found
  102 |   #include <SDL2/SDL.h>
      |            ^~~~~~~~~~~~
4 warnings and 1 error generated.
make: *** [gles.o] Error 1
Try running with `rake --verbose` for more complete output.
bundler: failed to load command: rbwasm (/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/bin/rbwasm)
/Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/build/executor.rb:77:in 'RubyWasm::BuildExecutor#system': Command failed with status (2): 'make' '-j8' '-C' '/Users/grzegorzjakubiak/Projects/ruby2d_test/build/wasm32-unknown-wasip1/ruby-3.3-wasm32-unknown-wasip1-full-8229f464d680e7642b358bac8c9fd6d6-ext/ruby2d-0.12.1/ext/ruby2d' 'CC=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang' 'CXX=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang' 'LD=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/clang' 'AR=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ar' 'RANLIB=/Users/grzegorzjakubiak/Projects/ruby2d_test/build/toolchain/wasi-sdk/bin/llvm-ranlib' 'static' (RuntimeError)
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/build/product/crossruby.rb:52:in 'RubyWasm::CrossRubyExtProduct#build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/build/product/crossruby.rb:199:in 'block in RubyWasm::CrossRubyProduct#build_exts'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/build/product/crossruby.rb:197:in 'Array#each'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/build/product/crossruby.rb:197:in 'RubyWasm::CrossRubyProduct#build_exts'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/build/product/crossruby.rb:218:in 'RubyWasm::CrossRubyProduct#build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/packager/core.rb:292:in 'block in RubyWasm::Packager::Core::StaticLinking#build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler.rb:411:in 'block in Bundler.with_unbundled_env'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler.rb:716:in 'Bundler.with_env'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler.rb:411:in 'Bundler.with_unbundled_env'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/packager/core.rb:64:in 'RubyWasm::Packager::Core::BuildStrategy#with_unbundled_env'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/packager/core.rb:291:in 'RubyWasm::Packager::Core::StaticLinking#build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/packager/core.rb:11:in 'RubyWasm::Packager::Core#build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/packager.rb:28:in 'RubyWasm::Packager#package'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/cli.rb:357:in 'RubyWasm::CLI#do_build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/cli.rb:171:in 'block in RubyWasm::CLI#do_build_with_force_ruby_platform'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/tmpdir.rb:105:in 'Dir.mktmpdir'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/cli.rb:170:in 'RubyWasm::CLI#do_build_with_force_ruby_platform'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/cli.rb:137:in 'block in RubyWasm::CLI#build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/settings.rb:159:in 'Bundler::Settings#temporary'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/cli.rb:136:in 'RubyWasm::CLI#build'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/lib/ruby_wasm/cli.rb:34:in 'RubyWasm::CLI#run'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/ruby_wasm-2.7.1-arm64-darwin/exe/rbwasm:7:in '<top (required)>'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/bin/rbwasm:25:in 'Kernel#load'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/bin/rbwasm:25:in '<top (required)>'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/cli/exec.rb:59:in 'Kernel.load'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/cli/exec.rb:59:in 'Bundler::CLI::Exec#kernel_load'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/cli/exec.rb:23:in 'Bundler::CLI::Exec#run'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/cli.rb:452:in 'Bundler::CLI#exec'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/vendor/thor/lib/thor/command.rb:28:in 'Bundler::Thor::Command#run'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in 'Bundler::Thor::Invocation#invoke_command'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/vendor/thor/lib/thor.rb:538:in 'Bundler::Thor.dispatch'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/cli.rb:35:in 'Bundler::CLI.dispatch'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/vendor/thor/lib/thor/base.rb:584:in 'Bundler::Thor::Base::ClassMethods#start'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/cli.rb:29:in 'Bundler::CLI.start'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/bundler-2.6.2/exe/bundle:28:in 'block in <top (required)>'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/3.4.0/bundler/friendly_errors.rb:117:in 'Bundler.with_friendly_errors'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/bundler-2.6.2/exe/bundle:20:in '<top (required)>'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/bin/bundle:25:in 'Kernel#load'
	from /Users/grzegorzjakubiak/.asdf/installs/ruby/3.4.1/bin/bundle:25:in '<main>'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants
0