35 lines
1.5 KiB
CMake
35 lines
1.5 KiB
CMake
INCLUDE (CheckCXXSourceCompiles)
|
|
unset(LUABIND_WORKS CACHE)
|
|
unset(LUABIND51_WORKS CACHE)
|
|
set (LUABIND_CHECK_SRC "extern \"C\" {\n#include \"lua.h\"\n#include \"lauxlib.h\"\n}\n#include <luabind/open.hpp>\nint main() { lua_State *x = luaL_newstate(); luabind::open(x); }")
|
|
set (CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE})
|
|
set (CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIR};${LUABIND_INCLUDE_DIR};${LUA_INCLUDE_DIR}")
|
|
set (CMAKE_REQUIRED_LIBRARIES "${LUABIND_LIBRARY};${LUA_LIBRARY}")
|
|
|
|
find_package(Lua52)
|
|
if(LUA52_FOUND)
|
|
set (CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIR};${LUABIND_INCLUDE_DIR};${LUA_INCLUDE_DIR}")
|
|
set (CMAKE_REQUIRED_LIBRARIES "${LUABIND_LIBRARY};${LUA_LIBRARY}")
|
|
CHECK_CXX_SOURCE_COMPILES("${LUABIND_CHECK_SRC}" LUABIND_WORKS)
|
|
endif()
|
|
|
|
if(LUABIND_WORKS)
|
|
message(STATUS "Luabind/Lua5.2 combination working with ${LUA_LIBRARY}")
|
|
else()
|
|
message(STATUS "Luabind/Lua5.2 not feasible, falling back to Lua 5.1.")
|
|
unset(LUA_FOUND CACHE)
|
|
unset(LUA_INCLUDE_DIR CACHE)
|
|
unset(LUA_LIBRARY CACHE)
|
|
find_package(Lua51 REQUIRED)
|
|
set (CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIR};${LUABIND_INCLUDE_DIR};${LUA_INCLUDE_DIR}")
|
|
set (CMAKE_REQUIRED_LIBRARIES "${LUABIND_LIBRARY};${LUA_LIBRARY}")
|
|
|
|
CHECK_CXX_SOURCE_COMPILES("${LUABIND_CHECK_SRC}" LUABIND51_WORKS)
|
|
|
|
if(LUABIND51_WORKS)
|
|
message(STATUS "Luabind works with Lua 5.1 at ${LUA_LIBRARY}")
|
|
else()
|
|
message(FATAL_ERROR "Luabind does not work with Lua 5.1 at ${LUA_LIBRARY}, no working Luabind found")
|
|
endif()
|
|
endif()
|