99 lines
2.4 KiB
Diff
99 lines
2.4 KiB
Diff
diff --git a/dub.sdl b/dub.sdl
|
|
index 50c0da1..87936a4 100644
|
|
--- a/dub.sdl
|
|
+++ b/dub.sdl
|
|
@@ -32,6 +32,9 @@ configuration "barebones" {
|
|
targetType "executable"
|
|
|
|
dependency "dportals" version="~>0.1.0"
|
|
+
|
|
+ subConfiguration "lumars" "lua51-dynamic"
|
|
+ versions "LUA_51"
|
|
}
|
|
|
|
|
|
@@ -51,6 +54,9 @@ configuration "linux-full" {
|
|
versions "InBranding"
|
|
|
|
dependency "dportals" version="~>0.1.0"
|
|
+
|
|
+ subConfiguration "lumars" "lua51-dynamic"
|
|
+ versions "LUA_51"
|
|
}
|
|
|
|
configuration "osx-full" {
|
|
@@ -84,6 +90,9 @@ configuration "linux-nightly" {
|
|
versions "InNightly"
|
|
|
|
dependency "dportals" version="~>0.1.0"
|
|
+
|
|
+ subConfiguration "lumars" "lua51-dynamic"
|
|
+ versions "LUA_51"
|
|
}
|
|
|
|
// macOS nightly build
|
|
diff --git a/source/session/plugins/package.d b/source/session/plugins/package.d
|
|
index 965c64f..7cfbb0b 100644
|
|
--- a/source/session/plugins/package.d
|
|
+++ b/source/session/plugins/package.d
|
|
@@ -14,9 +14,9 @@ import lumars;
|
|
import session.log;
|
|
import std.file;
|
|
import std.path;
|
|
+import std.exception;
|
|
|
|
private {
|
|
- bool couldLoadLua = true;
|
|
LuaState* state;
|
|
LuaTable apiTable;
|
|
|
|
@@ -34,13 +34,17 @@ Plugin[] insPlugins;
|
|
Initializes Lua support
|
|
*/
|
|
void insLuaInit() {
|
|
- // LuaSupport support = loadLua();
|
|
-
|
|
- // if (support == LuaSupport.noLibrary || support == LuaSupport.badLibrary) {
|
|
- // couldLoadLua = false;
|
|
- // insLogWarn("Could not load Lua support...");
|
|
- // } else insLogInfo("Lua support initialized.");
|
|
- insLogInfo("Lua support initialized. (Statically linked for now)");
|
|
+ version(linux){
|
|
+ LuaSupport support = loadLua("libluajit-5.1.so.2");
|
|
+ if(support == LuaSupport.noLibrary){
|
|
+ support = loadLua();
|
|
+ }
|
|
+ enforce(support != LuaSupport.noLibrary, "Could not find Lua support...!");
|
|
+ enforce(support != LuaSupport.badLibrary, "Bad Lua library found!");
|
|
+ insLogInfo("Lua support initialized.");
|
|
+ } else {
|
|
+ insLogInfo("Lua support initialized. (Statically linked)");
|
|
+ }
|
|
|
|
// Create Lua state
|
|
state = new LuaState(luaL_newstate());
|
|
@@ -56,6 +60,9 @@ void insLuaInit() {
|
|
void insLuaUnload() {
|
|
lua_close(state.handle());
|
|
destroy(state);
|
|
+ version(linux){
|
|
+ unloadLua();
|
|
+ }
|
|
}
|
|
|
|
void insSavePluginState() {
|
|
@@ -111,13 +118,6 @@ void insEnumeratePlugins() {
|
|
insSavePluginState();
|
|
}
|
|
|
|
-/**
|
|
- Gets whether Lua support is loaded.
|
|
-*/
|
|
-bool insHasLua() {
|
|
- return couldLoadLua;
|
|
-}
|
|
-
|
|
/**
|
|
Gets string of value
|
|
*/
|