Ruby support #1
					 4 changed files with 20 additions and 10 deletions
				
			
		|  | @ -1,6 +0,0 @@ | |||
| [build] | ||||
| # Without this flag, when linking static libruby, the linker removes symbols | ||||
| # (such as `_rb_ext_ractor_safe`) which it thinks are dead code... but they are | ||||
| # not, and they need to be included for the `embed` feature to work with static | ||||
| # Ruby. | ||||
| rustflags = ["-C", "link-dead-code=on", "-C", "link-arg=-lz"] | ||||
|  | @ -9,6 +9,7 @@ categories = ["game-development"] | |||
| description = "Plugin for Bevy engine that allows you to write some of your game logic in a scripting language" | ||||
| repository = "https://github.com/jarkonik/bevy_scriptum" | ||||
| keywords = ["bevy", "rhai", "scripting", "game", "gamedev"] | ||||
| links = "lz" # TODO: conditional, probably will need a crate for ruby | ||||
| 
 | ||||
| [features] | ||||
| lua = ["dep:mlua", "mlua/luajit"] | ||||
|  | @ -33,6 +34,7 @@ mlua = { version = "0.9.8", features = [ | |||
| ], optional = true } | ||||
| magnus = { version = "0.7.1", optional = true } | ||||
| rb-sys = { version = "*", default-features = false, features = ["link-ruby", "ruby-static"], optional = true } | ||||
| libz-sys = { version = "1.1", default-features = false, features = ["static"] } | ||||
| crossbeam-channel = "0.5.15" | ||||
| 
 | ||||
| [[example]] | ||||
|  |  | |||
							
								
								
									
										8
									
								
								build.rs
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								build.rs
									
									
									
									
									
								
							|  | @ -1,6 +1,8 @@ | |||
| use std::{env, path::PathBuf, process::Command}; | ||||
| 
 | ||||
| fn main() { | ||||
|     #[cfg(feature = "ruby")] | ||||
|     { | ||||
|         println!("cargo:rustc-link-arg=-rdynamic"); | ||||
|     println!("cargo:rustc-link-lib=z"); // TODO: if features Ruby
 | ||||
|         println!("cargo:rustc-link-arg=-lz"); | ||||
|         println!("cargo:rustc-link-lib=z"); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -676,5 +676,17 @@ mod ruby_tests { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     #[test] | ||||
|     fn test_symbol_inspection() { | ||||
|         let mut app = build_test_app(); | ||||
| 
 | ||||
|         app.add_scripting::<RubyRuntime>(|_| {}); | ||||
|         let runtime = app.world().get_resource::<RubyRuntime>().unwrap(); | ||||
|         runtime.with_engine_thread(|engine| { | ||||
|             let symbol_string: String = engine.eval(":test_symbol.inspect").unwrap(); | ||||
|             assert_eq!(symbol_string, ":test_symbol") | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     scripting_tests!(RubyRuntime, "ruby", "rb", BevyEntity, BevyVec3); | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue