diff options
author | Rui Abreu Ferreira <raf-ep@gmx.com> | 2014-07-11 12:12:10 +0100 |
---|---|---|
committer | John Szakmeister <john@szakmeister.net> | 2014-07-11 19:28:54 -0400 |
commit | 6f0d3c0e77bbcd769effed3e5568d9038486f16d (patch) | |
tree | 6ec8b9ad46712753cc14b2c7cf908437e1a814ec /cmake/LuaHelpers.cmake | |
parent | e47968537cfc958b991ff10c6be1dcda65cb95f0 (diff) | |
download | rneovim-6f0d3c0e77bbcd769effed3e5568d9038486f16d.tar.gz rneovim-6f0d3c0e77bbcd769effed3e5568d9038486f16d.tar.bz2 rneovim-6f0d3c0e77bbcd769effed3e5568d9038486f16d.zip |
Refactor the lua dependency checking.
This is in preparation for the next step, which is to find a suitable
lua interpreter, rather than just erroring when an interpreter is found
but doesn't have the necessary dependencies.
Helped-by: John Szakmeister <john@szakmeister.net>
Diffstat (limited to 'cmake/LuaHelpers.cmake')
-rw-r--r-- | cmake/LuaHelpers.cmake | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/cmake/LuaHelpers.cmake b/cmake/LuaHelpers.cmake new file mode 100644 index 0000000000..b1e67e0ca7 --- /dev/null +++ b/cmake/LuaHelpers.cmake @@ -0,0 +1,38 @@ +# +# Functions to help checking for a Lua interpreter +# + +# Check if a module is available in Lua +function(check_lua_module LUA_PRG_PATH MODULE RESULT_VAR) + execute_process(COMMAND ${LUA_PRG_PATH} -e "require('${MODULE}')" + RESULT_VARIABLE module_missing + ERROR_QUIET) + if(module_missing) + message(STATUS + "[${LUA_PRG_PATH}] The '${MODULE}' lua package is required for building Neovim") + set(${RESULT_VAR} False PARENT_SCOPE) + else() + set(${RESULT_VAR} True PARENT_SCOPE) + endif() +endfunction() + +# Check Lua interpreter for dependencies +function(check_lua_deps LUA_PRG_PATH MODULES RESULT_VAR) + # Check if the lua interpreter at the given path + # satisfies all Neovim dependencies + message(STATUS "Checking Lua interpreter ${LUA_PRG_PATH}") + if(NOT EXISTS ${LUA_PRG_PATH}) + message(STATUS + "[${LUA_PRG_PATH}] file not found") + endif() + + foreach(module ${MODULES}) + check_lua_module(${LUA_PRG_PATH} ${module} has_module) + if(NOT has_module) + set(${RESULT_VAR} False PARENT_SCOPE) + return() + endif() + endforeach() + + set(${RESULT_VAR} True PARENT_SCOPE) +endfunction() |