#[cfg(feature = "builtin-lua")] extern crate cc; #[cfg(feature = "system-lua")] extern crate pkg_config; fn main() { use std::env; if cfg!(all(feature = "builtin-lua", feature = "system-lua")) { panic!("cannot enable both builtin-lua and system-lua features when building rlua"); } #[cfg(feature = "builtin-lua")] { let target_os = env::var("CARGO_CFG_TARGET_OS"); let target_family = env::var("CARGO_CFG_TARGET_FAMILY"); let mut config = cc::Build::new(); if target_os == Ok("linux".to_string()) { config.define("LUA_USE_LINUX", None); } else if target_os == Ok("macos".to_string()) { config.define("LUA_USE_MACOSX", None); } else if target_family == Ok("unix".to_string()) { config.define("LUA_USE_POSIX", None); } else if target_family == Ok("windows".to_string()) { config.define("LUA_USE_WINDOWS", None); } if cfg!(debug_assertions) { config.define("LUA_USE_APICHECK", None); } config .include("c/lua") .file("c/lua/lapi.c") .file("c/lua/lauxlib.c") .file("c/lua/lbaselib.c") .file("c/lua/lbitlib.c") .file("c/lua/lcode.c") .file("c/lua/lcorolib.c") .file("c/lua/lctype.c") .file("c/lua/ldblib.c") .file("c/lua/ldebug.c") .file("c/lua/ldo.c") .file("c/lua/ldump.c") .file("c/lua/lfunc.c") .file("c/lua/lgc.c") .file("c/lua/linit.c") .file("c/lua/liolib.c") .file("c/lua/llex.c") .file("c/lua/lmathlib.c") .file("c/lua/lmem.c") .file("c/lua/loadlib.c") .file("c/lua/lobject.c") .file("c/lua/lopcodes.c") .file("c/lua/loslib.c") .file("c/lua/lparser.c") .file("c/lua/lstate.c") .file("c/lua/lstring.c") .file("c/lua/lstrlib.c") .file("c/lua/ltable.c") .file("c/lua/ltablib.c") .file("c/lua/ltm.c") .file("c/lua/lundump.c") .file("c/lua/lutf8lib.c") .file("c/lua/lvm.c") .file("c/lua/lzio.c") .compile("liblua5.3.a"); } #[cfg(feature = "system-lua")] { pkg_config::Config::new() .atleast_version("5.3") .probe("lua") .unwrap(); } /* { // version.luaの作成 use std::fs::File; use std::io::Write; use std::path; let version = env::var("CARGO_PKG_VERSION").unwrap(); let root_dir_str = env::var("CARGO_MANIFEST_DIR").unwrap(); let root_dir = path::Path::new(&root_dir_str); let version_lua_path = { let mut p = root_dir.to_path_buf(); p.push("script"); p.push("emo"); p.push("version.lua"); p }; let mut f =File::create(&version_lua_path).unwrap(); writeln!(f, "return \"{}\"", version).unwrap(); f.flush().unwrap(); } */ }