diff --git a/code/CMakeModules/FindLuabind.cmake b/code/CMakeModules/FindLuabind.cmake index bf795271e..f98fee441 100644 --- a/code/CMakeModules/FindLuabind.cmake +++ b/code/CMakeModules/FindLuabind.cmake @@ -74,6 +74,12 @@ IF(LUABIND_INCLUDE_DIR AND Boost_INCLUDE_DIR) ENDIF(LUABIND_INCLUDE_DIR AND Boost_INCLUDE_DIR) IF(LUABIND_FOUND) + # Check if luabind/version.hpp exists + FIND_FILE(LUABIND_VERSION_FILE luabind/version.hpp PATHS ${LUABIND_INCLUDE_DIR}) + IF(LUABIND_VERSION_FILE) + SET(HAVE_LUABIND_VERSION 1 CACHE INTERNAL "Luabind provides a version.hpp file") + SET(LUABIND_DEFINITIONS "-DHAVE_LUABIND_VERSION") + ENDIF(LUABIND_VERSION_FILE) IF(NOT LUABIND_FIND_QUIETLY) MESSAGE(STATUS "Found Luabind: ${LUABIND_LIBRARIES}") ENDIF(NOT LUABIND_FIND_QUIETLY) diff --git a/code/ryzom/client/src/CMakeLists.txt b/code/ryzom/client/src/CMakeLists.txt index 9bdb255d0..84ea6a369 100644 --- a/code/ryzom/client/src/CMakeLists.txt +++ b/code/ryzom/client/src/CMakeLists.txt @@ -102,7 +102,7 @@ IF(APPLE) TARGET_LINK_LIBRARIES(ryzom_client ${FOUNDATION_LIBRARY}) ENDIF(APPLE) -ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} ${CURL_DEFINITIONS}) +ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} ${CURL_DEFINITIONS} ${LUABIND_DEFINITIONS}) NL_DEFAULT_PROPS(ryzom_client "Ryzom, Client: Ryzom Core Client") NL_ADD_RUNTIME_FLAGS(ryzom_client) diff --git a/code/ryzom/client/src/interface_v3/lua_ihm.cpp b/code/ryzom/client/src/interface_v3/lua_ihm.cpp index 5ab2bc084..6fee6811a 100644 --- a/code/ryzom/client/src/interface_v3/lua_ihm.cpp +++ b/code/ryzom/client/src/interface_v3/lua_ihm.cpp @@ -16,15 +16,9 @@ #include "stdpch.h" -#include - #include "lua_helper.h" -// Warning: cannot use namespace std, when using luabind -#ifdef NL_OS_WINDOWS -# ifndef NL_EXTENDED_FOR_SCOPE -# undef for -# endif -#endif + +#include // to get rid of you_must_not_use_assert___use_nl_assert___read_debug_h_file messages #include @@ -32,26 +26,36 @@ #undef assert #endif +// Warning: cannot use namespace std, when using luabind +#ifdef NL_OS_WINDOWS +# ifndef NL_EXTENDED_FOR_SCOPE +# undef for +# endif +#endif + #ifdef NL_DEBUG - #define assert(x) nlassert(x) +# define assert(x) nlassert(x) #else - #define assert(x) +# define assert(x) #endif #include // in luabind > 0.6, LUABIND_MAX_ARITY is set to 10 #if LUABIND_MAX_ARITY == 10 -# include -# include -# ifndef LUABIND_VERSION +# include +// only luabind > 0.7 have version.hpp (file checked with build system) +# ifdef HAVE_LUABIND_VERSION +# include +# endif +# ifndef LUABIND_VERSION // luabind 0.7 doesn't define LUABIND_VERSION -# define LUABIND_VERSION 700 -# endif +# define LUABIND_VERSION 700 +# endif // luabind 0.6 doesn't define LUABIND_VERSION but LUABIND_MAX_ARITY is set to 5 #elif LUABIND_MAX_ARITY == 5 -# define LUABIND_VERSION 600 +# define LUABIND_VERSION 600 #else -# pragma error("luabind version not recognized") +# pragma error("luabind version not recognized") #endif