mirror of
https://port.numenaute.org/aleajactaest/khanat-code-old.git
synced 2024-11-25 00:06:16 +00:00
9bc219ee14
About Shared Library (shared) and Module Library (module) type of cmake target INSTALL command has different behaviour for ARCHIVE LIBRARY RUNTIME depending on the platform
141 lines
4.2 KiB
CMake
141 lines
4.2 KiB
CMake
# - Locate Luabind library
|
|
# This module defines
|
|
# LUABIND_LIBRARIES, the libraries to link against
|
|
# LUABIND_FOUND, if false, do not try to link to LUABIND
|
|
# LUABIND_INCLUDE_DIR, where to find headers.
|
|
|
|
MACRO(FIND_CORRECT_LUA_VERSION)
|
|
# Check Lua version linked to Luabind under Linux
|
|
IF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so")
|
|
INCLUDE(CheckDepends)
|
|
|
|
SET(LUA52_LIBRARY "liblua5.2")
|
|
CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND)
|
|
|
|
IF(LUALIB_FOUND)
|
|
MESSAGE(STATUS "Luabind is using Lua 5.2")
|
|
FIND_PACKAGE(Lua52 REQUIRED)
|
|
ELSE(LUALIB_FOUND)
|
|
SET(LUA51_LIBRARY "liblua5.1")
|
|
CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA51_LIBRARY LUALIB_FOUND)
|
|
|
|
IF(LUALIB_FOUND)
|
|
MESSAGE(STATUS "Luabind is using Lua 5.1")
|
|
FIND_PACKAGE(Lua51 REQUIRED)
|
|
ELSE(LUALIB_FOUND)
|
|
SET(LUA50_LIBRARY "liblua5.0")
|
|
CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA50_LIBRARY LUALIB_FOUND)
|
|
|
|
IF(LUALIB_FOUND)
|
|
MESSAGE(STATUS "Luabind is using Lua 5.0")
|
|
FIND_PACKAGE(Lua50 REQUIRED)
|
|
ELSE(LUALIB_FOUND)
|
|
MESSAGE(FATAL_ERROR "Can't determine Lua version used by Luabind")
|
|
ENDIF(LUALIB_FOUND)
|
|
ENDIF(LUALIB_FOUND)
|
|
ENDIF(LUALIB_FOUND)
|
|
ELSE(LUABIND_LIBRARY_RELEASE MATCHES "\\.so")
|
|
# TODO: find a way to detect Lua version
|
|
IF(WITH_LUA52)
|
|
FIND_PACKAGE(Lua52 REQUIRED)
|
|
ELSEIF(WITH_LUA51)
|
|
FIND_PACKAGE(Lua51 REQUIRED)
|
|
ELSE(WITH_LUA52)
|
|
FIND_PACKAGE(Lua50 REQUIRED)
|
|
ENDIF(WITH_LUA52)
|
|
ENDIF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so")
|
|
ENDMACRO(FIND_CORRECT_LUA_VERSION)
|
|
|
|
IF(LUABIND_LIBRARIES AND LUABIND_INCLUDE_DIR)
|
|
# in cache already
|
|
SET(Luabind_FIND_QUIETLY TRUE)
|
|
ENDIF(LUABIND_LIBRARIES AND LUABIND_INCLUDE_DIR)
|
|
|
|
FIND_PATH(LUABIND_INCLUDE_DIR
|
|
luabind/luabind.hpp
|
|
PATHS
|
|
$ENV{LUABIND_DIR}/include
|
|
/usr/local/include
|
|
/usr/include
|
|
/sw/include
|
|
/opt/local/include
|
|
/opt/csw/include
|
|
/opt/include
|
|
)
|
|
|
|
SET(LIBRARY_NAME_RELEASE luabind libluabind)
|
|
SET(LIBRARY_NAME_DEBUG luabind_d luabindd libluabind_d libluabindd)
|
|
|
|
IF(WITH_STLPORT)
|
|
SET(LIBRARY_NAME_RELEASE luabind_stlport ${LIBRARY_NAME_RELEASE})
|
|
SET(LIBRARY_NAME_DEBUG luabind_stlportd ${LIBRARY_NAME_DEBUG})
|
|
ENDIF(WITH_STLPORT)
|
|
|
|
FIND_LIBRARY(LUABIND_LIBRARY_RELEASE
|
|
NAMES ${LIBRARY_NAME_RELEASE}
|
|
PATHS
|
|
$ENV{LUABIND_DIR}/lib
|
|
/usr/local/lib
|
|
/usr/lib
|
|
/usr/local/X11R6/lib
|
|
/usr/X11R6/lib
|
|
/sw/lib
|
|
/opt/local/lib
|
|
/opt/csw/lib
|
|
/opt/lib
|
|
/usr/freeware/lib64
|
|
)
|
|
|
|
FIND_LIBRARY(LUABIND_LIBRARY_DEBUG
|
|
NAMES ${LIBRARY_NAME_DEBUG}
|
|
PATHS
|
|
$ENV{LUABIND_DIR}/lib
|
|
/usr/local/lib
|
|
/usr/lib
|
|
/usr/local/X11R6/lib
|
|
/usr/X11R6/lib
|
|
/sw/lib
|
|
/opt/local/lib
|
|
/opt/csw/lib
|
|
/opt/lib
|
|
/usr/freeware/lib64
|
|
)
|
|
|
|
FIND_PACKAGE(Boost REQUIRED)
|
|
|
|
IF(LUABIND_INCLUDE_DIR AND Boost_INCLUDE_DIR)
|
|
IF(LUABIND_LIBRARY_RELEASE AND LUABIND_LIBRARY_DEBUG)
|
|
# Case where both Release and Debug versions are provided
|
|
SET(LUABIND_FOUND TRUE)
|
|
SET(LUABIND_LIBRARIES optimized ${LUABIND_LIBRARY_RELEASE} debug ${LUABIND_LIBRARY_DEBUG})
|
|
ELSEIF(LUABIND_LIBRARY_RELEASE)
|
|
# Normal case
|
|
SET(LUABIND_FOUND TRUE)
|
|
SET(LUABIND_LIBRARIES ${LUABIND_LIBRARY_RELEASE})
|
|
ELSEIF(LUABIND_LIBRARY_DEBUG)
|
|
# Case where Luabind is compiled from sources (debug version is compiled by default)
|
|
SET(LUABIND_FOUND TRUE)
|
|
SET(LUABIND_LIBRARIES ${LUABIND_LIBRARY_DEBUG})
|
|
ENDIF(LUABIND_LIBRARY_RELEASE AND LUABIND_LIBRARY_DEBUG)
|
|
ENDIF(LUABIND_INCLUDE_DIR AND Boost_INCLUDE_DIR)
|
|
|
|
IF(LUABIND_FOUND)
|
|
SET(LUABIND_INCLUDE_DIR ${LUABIND_INCLUDE_DIR} ${Boost_INCLUDE_DIR})
|
|
# Check if luabind/version.hpp exists
|
|
FIND_FILE(LUABIND_VERSION_FILE luabind/version.hpp PATHS ${LUABIND_INCLUDE_DIR})
|
|
IF(LUABIND_VERSION_FILE)
|
|
SET(LUABIND_DEFINITIONS "-DHAVE_LUABIND_VERSION")
|
|
ENDIF(LUABIND_VERSION_FILE)
|
|
|
|
FIND_CORRECT_LUA_VERSION()
|
|
|
|
IF(NOT Luabind_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found Luabind: ${LUABIND_LIBRARIES}")
|
|
ENDIF(NOT Luabind_FIND_QUIETLY)
|
|
ELSE(LUABIND_FOUND)
|
|
IF(NOT Luabind_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Warning: Unable to find Luabind!")
|
|
ENDIF(NOT Luabind_FIND_QUIETLY)
|
|
ENDIF(LUABIND_FOUND)
|
|
|
|
MARK_AS_ADVANCED(LUABIND_LIBRARY_RELEASE LUABIND_LIBRARY_DEBUG Boost_LIB_DIAGNOSTIC_DEFINITIONS)
|