diff --git a/CMakeLists.txt b/CMakeLists.txt index c01f10d..936bcd4 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,10 +11,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) set(INSTALL_CMOD ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1 CACHE PATH "Directory to install Lua binary modules (configure lua via LUA_CPATH)") -set(LUA_NATIVE_OBJECTS_PATH ../LuaNativeObjects CACHE PATH - "Directory to LuaNativeObjects bindings generator.") -set(USE_PRE_GENERATED_BINDINGS TRUE CACHE BOOL - "Set this to FALSE to re-generate bindings using LuaNativeObjects") set(COMMON_CFLAGS "${CFLAGS}") set(COMMON_LDFLAGS) diff --git a/cmake/LuaNativeObjects.cmake b/cmake/LuaNativeObjects.cmake index a1b0e2d..e9e47de 100644 --- a/cmake/LuaNativeObjects.cmake +++ b/cmake/LuaNativeObjects.cmake @@ -1,19 +1,39 @@ # # Lua Native Objects # + +set(LUA_NATIVE_OBJECTS_PATH ${CMAKE_SOURCE_DIR}/../LuaNativeObjects CACHE PATH + "Directory to LuaNativeObjects bindings generator.") +set(USE_PRE_GENERATED_BINDINGS TRUE CACHE BOOL + "Set this to FALSE to re-generate bindings using LuaNativeObjects") + +set(GENERATE_LUADOCS TRUE CACHE BOOL + "Set this to FALSE to avoid generation of docs using LuaDoc") + macro(GenLuaNativeObjects _src_files_var) set(_new_src_files) foreach(_src_file ${${_src_files_var}}) if(_src_file MATCHES ".nobj.lua") string(REGEX REPLACE ".nobj.lua" ".nobj.c" _src_file_out ${_src_file}) - string(REGEX REPLACE ".nobj.lua" ".nobj.h" _header_file_out ${_src_file}) - add_custom_command(OUTPUT ${_src_file_out} ${_header_file_out} + string(REGEX REPLACE ".nobj.lua" ".nobj.ffi.lua" _ffi_file_out ${_src_file}) + add_custom_command(OUTPUT ${_src_file_out} ${_ffi_file_out} COMMAND lua ${LUA_NATIVE_OBJECTS_PATH}/native_objects.lua -outpath ${CMAKE_CURRENT_BINARY_DIR} -gen lua ${_src_file} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${_src_file} ) set_source_files_properties(${_src_file_out} PROPERTIES GENERATED TRUE) - set_source_files_properties(${_header_file_out} PROPERTIES GENERATED TRUE) + set_source_files_properties(${_ffi_file_out} PROPERTIES GENERATED TRUE) + if (${GENERATE_LUADOCS}) + string(REGEX REPLACE ".nobj.lua" "" _doc_base ${_src_file}) + string(REGEX REPLACE ".nobj.lua" ".luadoc" _doc_file_out ${_src_file}) + add_custom_target(${_doc_file_out} ALL + COMMAND lua ${LUA_NATIVE_OBJECTS_PATH}/native_objects.lua -outpath docs -gen luadoc ${_src_file} + COMMAND luadoc -nofiles -d docs docs + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${_src_file} + ) + endif() + set_source_files_properties(${_doc_file_out} PROPERTIES GENERATED TRUE) set(_new_src_files ${_new_src_files} ${_src_file_out}) else(_src_file MATCHES ".nobj.lua") set(_new_src_files ${_new_src_files} ${_src_file})