Skip to content

Commit

Permalink
Add Lua dependencies.
Browse files Browse the repository at this point in the history
Lua is going to be used for both scene description (it will also provide a YAML importer) and some future expansion in the code. Expect some fun surprises!

(just playing with lua on the main app for now)
  • Loading branch information
Godzil committed Feb 27, 2020
1 parent e61382a commit 2926166
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 6 deletions.
15 changes: 13 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,24 @@ if (ENABLE_COVERAGE)

endif()



# LodePNG don't make a .a or .so, so let's build a library here
add_library(LodePNG STATIC)
set(LODEPNG_INCLUDE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/external/lodepng)
target_sources(LodePNG PRIVATE external/lodepng/lodepng.cpp external/lodepng/lodepng.h)

ExternalProject_Add(LuaCore
URL "https://www.lua.org/ftp/lua-5.3.5.tar.gz"
URL_HASH SHA1=112eb10ff04d1b4c9898e121d6bdf54a81482447
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/lua
CONFIGURE_COMMAND ""
BUILD_IN_SOURCE True
BUILD_COMMAND make generic
INSTALL_COMMAND ""
)

set(LUA_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/lua/src")
set(LUA_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/external/lua/src/liblua.a")

# Main app
add_subdirectory(source)

Expand Down
6 changes: 3 additions & 3 deletions source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ target_link_libraries(rayonnement LodePNG)
if (USE_OPENMP)
target_link_libraries(rayonnement OpenMP::OpenMP_CXX)
endif()
# Second we build the main executable

add_executable(dorayme main.cpp)
target_include_directories(rayonnement PUBLIC include ${LODEPNG_INCLUDE_FOLDER})
target_link_libraries(dorayme rayonnement)
target_include_directories(rayonnement PUBLIC include ${LODEPNG_INCLUDE_FOLDER} ${LUA_INCLUDE_DIR})
target_link_libraries(dorayme rayonnement ${LUA_LIBRARIES})

if (COVERALLS)
set(COVERAGE_SRCS ${RAY_HEADERS} ${RAY_SOURCES} ${COVERAGE_SRCS} PARENT_SCOPE)
Expand Down
36 changes: 35 additions & 1 deletion source/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,44 @@
*
*/
#include <stdio.h>
#include <string.h>
#include <math.h>

extern "C" {
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}

static int l_sin (lua_State *L) {
double d = luaL_checknumber(L, 1); /* get argument */
lua_pushnumber(L, sin(d)); /* push result */
return 1; /* number of results */
}

int main(int argc, char *argv[])
{
printf("Hello !\n");
char buff[256];
int error;
lua_State *L = luaL_newstate(); /* opens Lua */
luaL_openlibs(L); /* opens the basic library */

lua_pushcfunction(L, l_sin);
lua_setglobal(L, "mysin");
printf("[0]>");

while (fgets(buff, sizeof(buff), stdin) != NULL)
{
error = luaL_loadstring(L, buff) || lua_pcall(L, 0, LUA_MULTRET, 0);

if (error)
{
fprintf(stderr, "%s\n", lua_tostring(L, -1));
lua_pop(L, 1); /* pop error message from the stack */
}
printf("[%d]>", lua_gettop(L));
}

lua_close(L);
return 0;
}

0 comments on commit 2926166

Please sign in to comment.