From 1d830986199516160a4b31c7f802aee77c6a866c Mon Sep 17 00:00:00 2001 From: David Cernat Date: Fri, 24 Mar 2017 07:28:33 +0200 Subject: [PATCH] [Build] Use slilghtly retooled version of CMake's default FindLua51 --- cmake/FindLua.cmake | 70 ------------------------------- cmake/FindLua51.cmake | 95 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 70 deletions(-) delete mode 100644 cmake/FindLua.cmake create mode 100644 cmake/FindLua51.cmake diff --git a/cmake/FindLua.cmake b/cmake/FindLua.cmake deleted file mode 100644 index 646aaaf6b..000000000 --- a/cmake/FindLua.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# - Try to find Lua -# Once done this will define -# -# Lua_FOUND - system has Lua -# Lua_INCLUDES - the Lua include directory -# Lua_LIBRARY - Link these to use Lua - -FIND_LIBRARY (Lua_LIBRARY_RELEASE NAMES lua5.1 - PATHS - ENV LD_LIBRARY_PATH - ENV LIBRARY_PATH - /usr/lib64 - /usr/lib - /usr/local/lib64 - /usr/local/lib - /opt/local/lib - $ENV{Lua_ROOT}/lib - ) - -FIND_LIBRARY (Lua_LIBRARY_DEBUG NAMES lua5.1 - PATHS - ENV LD_LIBRARY_PATH - ENV LIBRARY_PATH - /usr/lib64 - /usr/lib - /usr/local/lib64 - /usr/local/lib - /opt/local/lib - $ENV{Lua_ROOT}/lib - ) - - - -FIND_PATH (Lua_INCLUDES lua5.1/lua.h - ENV CPATH - /usr/include - /usr/local/include - /opt/local/include - $ENV{Lua_ROOT}/include - ) - -IF(Lua_INCLUDES AND Lua_LIBRARY_RELEASE) - SET(Lua_FOUND TRUE) -ENDIF(Lua_INCLUDES AND Lua_LIBRARY_RELEASE) - -IF(NOT Lua_LIBRARY_DEBUG) - SET(Lua_LIBRARY_DEBUG ${Lua_LIBRARY_RELEASE}) -ENDIF() - -IF(Lua_FOUND) - SET(Lua_INCLUDES ${Lua_INCLUDES}) - - find_package(ZLIB REQUIRED) - - IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(Lua_LIBRARY optimized ${Lua_LIBRARY_RELEASE} debug ${Lua_LIBRARY_DEBUG} ${ZLIB_LIBRARIES}) - ELSE() - # if there are no configuration types and CMAKE_BUILD_TYPE has no value - # then just use the release libraries - SET(Lua_LIBRARY ${Lua_LIBRARY_RELEASE} ${ZLIB_LIBRARIES}) - ENDIF() - IF(NOT Lua_FIND_QUIETLY) - MESSAGE(STATUS "Found Lua: ${Lua_LIBRARIES}") - ENDIF(NOT Lua_FIND_QUIETLY) -ELSE(Lua_FOUND) - IF(Lua_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find Lua") - ENDIF(Lua_FIND_REQUIRED) -ENDIF(Lua_FOUND) - diff --git a/cmake/FindLua51.cmake b/cmake/FindLua51.cmake new file mode 100644 index 000000000..bfa8c5655 --- /dev/null +++ b/cmake/FindLua51.cmake @@ -0,0 +1,95 @@ +#.rst: +# FindLua51 +# --------- +# +# +# +# Locate Lua library This module defines +# +# :: +# +# LUA51_FOUND, if false, do not try to link to Lua +# LUA_LIBRARIES +# LUA_INCLUDE_DIR, where to find lua.h +# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8) +# +# +# +# Note that the expected include convention is +# +# :: +# +# #include "lua.h" +# +# and not +# +# :: +# +# #include +# +# This is because, the lua location is not standardized and may exist in +# locations other than lua/ + +#============================================================================= +# Copyright 2007-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +find_path(LUA_INCLUDE_DIR lua.h + HINTS + ENV LUA_DIR + ENV LUA_INCLUDE_DIR + PATH_SUFFIXES include/lua51 include/lua5.1 include/lua-5.1 include/lua include + PATHS + ~/Library/Frameworks + /Library/Frameworks + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + NO_DEFAULT_PATH +) + +find_library(LUA_LIBRARY + NAMES lua51 lua5.1 lua-5.1 lua + HINTS + ENV LUA_DIR + PATH_SUFFIXES lib + PATHS + ~/Library/Frameworks + /Library/Frameworks + /sw + /opt/local + /opt/csw + /opt +) + +if(LUA_LIBRARY) + # include the math library for Unix + if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) + find_library(LUA_MATH_LIBRARY m) + set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries") + # For Windows and Mac, don't need to explicitly include the math library + else() + set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") + endif() +endif() + +if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h") + file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"") + + string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}") + unset(lua_version_str) +endif() + +IF(LUA_INCLUDE_DIR AND LUA_LIBRARY) + SET(LUA_FOUND TRUE) +ENDIF(LUA_INCLUDE_DIR AND LUA_LIBRARY)