Quellcode durchsuchen

Add luas sample

Daniele Bartolini vor 12 Jahren
Ursprung
Commit
e434c364df
3 geänderte Dateien mit 45 neuen und 0 gelöschten Zeilen
  1. 1 0
      samples/CMakeLists.txt
  2. 7 0
      samples/lua/CMakeLists.txt
  3. 37 0
      samples/lua/lua.cpp

+ 1 - 0
samples/CMakeLists.txt

@@ -9,3 +9,4 @@ add_subdirectory(terrain)
 #add_subdirectory(textrenderer)
 #add_subdirectory(textrenderer)
 #add_subdirectory(collision)
 #add_subdirectory(collision)
 add_subdirectory(json)
 add_subdirectory(json)
+add_subdirectory(lua)

+ 7 - 0
samples/lua/CMakeLists.txt

@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 2.8)
+
+include_directories(${CROWN_THIRD}/luajit/include/luajit-2.0)
+link_directories(${CROWN_THIRD}/luajit/lib)
+add_executable(luas lua.cpp)
+target_link_libraries(luas crown luajit-5.1)
+

+ 37 - 0
samples/lua/lua.cpp

@@ -0,0 +1,37 @@
+#include <iostream>
+
+#include "lua.hpp"
+
+void report_errors(lua_State *L, int status)
+{
+  if ( status!=0 ) {
+    std::cerr << "-- " << lua_tostring(L, -1) << std::endl;
+    lua_pop(L, 1); // remove error message
+  }
+}
+
+int main(int argc, char** argv)
+{
+  for ( int n=1; n<argc; ++n ) {
+    const char* file = argv[n];
+
+    lua_State *L = luaL_newstate();
+
+	luaL_openlibs(L);
+
+    std::cerr << "-- Loading file: " << file << std::endl;
+
+    int s = luaL_loadfile(L, file);
+
+    if ( s==0 ) {
+      // execute Lua program
+      s = lua_pcall(L, 0, LUA_MULTRET, 0);
+    }
+
+    report_errors(L, s);
+    lua_close(L);
+    std::cerr << std::endl;
+  }
+
+  return 0;
+}