diff --git a/cmake/utils.cmake b/cmake/utils.cmake index 3fee04483fe82f72c02ff35b75b92dafc69f0da8..3ab2d3ff24611f8599789388c0d7339f1ce8ff57 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -39,9 +39,15 @@ endmacro(set_source_files_compile_flags) # A helper function to compile *.lua source into *.lua.c sources function(lua_source varname filename) - set (srcfile "${CMAKE_CURRENT_SOURCE_DIR}/${filename}") - set (tmpfile "${CMAKE_CURRENT_BINARY_DIR}/${filename}.new.c") - set (dstfile "${CMAKE_CURRENT_BINARY_DIR}/${filename}.c") + if (IS_ABSOLUTE "${filename}") + set (srcfile "${filename}") + set (tmpfile "${filename}.new.c") + set (dstfile "${filename}.c") + else(IS_ABSOLUTE "${filename}") + set (srcfile "${CMAKE_CURRENT_SOURCE_DIR}/${filename}") + set (tmpfile "${CMAKE_CURRENT_BINARY_DIR}/${filename}.new.c") + set (dstfile "${CMAKE_CURRENT_BINARY_DIR}/${filename}.c") + endif(IS_ABSOLUTE "${filename}") get_filename_component(module ${filename} NAME_WE) get_filename_component(_name ${dstfile} NAME) string(REGEX REPLACE "${_name}$" "" dstdir ${dstfile}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d9b2b88c8d51ce860d5a48ab6f686ae746c03432..10d6e179aac9ef994187c961e88f6be390908eac 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,18 +32,20 @@ lua_source(lua_sources lua/fio.lua) lua_source(lua_sources lua/strict.lua) lua_source(lua_sources ../third_party/luafun/fun.lua) # LuaJIT jit.* library -lua_source(lua_sources ../third_party/luajit/src/jit/bc.lua) -lua_source(lua_sources ../third_party/luajit/src/jit/bcsave.lua) -lua_source(lua_sources ../third_party/luajit/src/jit/dis_x86.lua) -lua_source(lua_sources ../third_party/luajit/src/jit/dis_x64.lua) -lua_source(lua_sources ../third_party/luajit/src/jit/dump.lua) -lua_source(lua_sources ../third_party/luajit/src/jit/vmdef.lua) -lua_source(lua_sources ../third_party/luajit/src/jit/v.lua) -if (EXISTS ${PROJECT_BINARY_DIR}/third_party/luajit/src/jit/p.lua) - # Profiler LuaJIT 2.1+ - lua_source(lua_sources ../third_party/luajit/src/jit/p.lua) - lua_source(lua_sources ../third_party/luajit/src/jit/zone.lua) -endif() +if (EXISTS "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/bc.lua") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/bcsave.lua") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/dis_x86.lua") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/dis_x64.lua") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/dump.lua") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/vmdef.lua") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/v.lua") + if (EXISTS "${PROJECT_BINARY_DIR}/third_party/luajit/src/jit/p.lua") + # Profiler LuaJIT 2.1+ + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/p.lua") + lua_source(lua_sources "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/zone.lua") + endif() +endif(EXISTS "${CMAKE_BINARY_DIR}/third_party/luajit/src/jit/") add_custom_target(generate_lua_sources WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/box