Ver código fonte

Added CMake external project for Lua5.1.

Cameron Hart 14 anos atrás
pai
commit
5cc6c5b941
3 arquivos alterados com 77 adições e 0 exclusões
  1. 25 0
      CMake/ExternalLua51.cmake
  2. 40 0
      CMake/lua51.cmake
  3. 12 0
      Dependencies/CMakeLists.txt

+ 25 - 0
CMake/ExternalLua51.cmake

@@ -0,0 +1,25 @@
+# Build a local version
+INCLUDE(ExternalProject)
+
+SET(lua51_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/lua51)
+
+SET(lua51_CMAKE_ARGS
+    -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> 
+    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+    -DCMAKE_DEBUG_POSTFIX=d
+)
+
+ExternalProject_Add(lua51
+    PREFIX ${lua51_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_DEPS_DOWNLOAD_DIR}
+
+    URL http://www.lua.org/ftp/lua-5.1.4.tar.gz
+    URL_MD5 d0870f2de55d59c1c8419f36e8fac150
+
+    PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PolycodeDependencies_SOURCE_DIR}/../CMake/lua51.cmake <SOURCE_DIR>/CMakeLists.txt
+
+    INSTALL_DIR ${POLYCODE_DEPS_CORE_PREFIX}
+    CMAKE_ARGS ${lua51_CMAKE_ARGS}
+)
+

+ 40 - 0
CMake/lua51.cmake

@@ -0,0 +1,40 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+PROJECT(lua51 C)
+
+IF(NOT CMAKE_BUILD_TYPE)
+    #SET(CMAKE_BUILD_TYPE "Debug")
+    SET(CMAKE_BUILD_TYPE "Release")
+    MESSAGE("No CMAKE_BUILD_TYPE specified, defaulting to ${CMAKE_BUILD_TYPE}") 
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
+# to distinguish between debug and release lib
+SET(CMAKE_DEBUG_POSTFIX "d")
+
+SET(lualib_SRCS 
+    src/lapi.c src/lcode.c src/ldebug.c src/ldo.c src/ldump.c 
+    src/lfunc.c src/lgc.c src/llex.c src/lmem.c src/lobject.c 
+    src/lopcodes.c src/lparser.c src/lstate.c src/lstring.c
+    src/ltable.c src/ltm.c src/lundump.c src/lvm.c src/lzio.c
+    src/lauxlib.c src/lbaselib.c src/ldblib.c src/liolib.c 
+    src/lmathlib.c src/loslib.c src/ltablib.c src/lstrlib.c 
+    src/loadlib.c src/linit.c)
+
+INCLUDE_DIRECTORIES(src)
+
+# We only want a static lib
+ADD_LIBRARY(lualib ${lualib_SRCS})
+
+SET_TARGET_PROPERTIES(lualib 
+    PROPERTIES OUTPUT_NAME lua5.1)
+
+INSTALL(TARGETS lualib
+    RUNTIME DESTINATION bin
+    ARCHIVE DESTINATION lib
+    LIBRARY DESTINATION lib)
+
+INSTALL(FILES src/lua.h src/luaconf.h src/lualib.h src/lauxlib.h 
+    DESTINATION include/lua5.1)
+
+INSTALL(FILES etc/lua.hpp
+    DESTINATION include/lua5.1)

+ 12 - 0
Dependencies/CMakeLists.txt

@@ -69,6 +69,13 @@ ELSE(VORBISFILE_FOUND)
     SET(internal_VORBISFILE ${common_deps})
 ENDIF(VORBISFILE_FOUND)
 
+FIND_PACKAGE(Lua51)
+IF(LUA51_FOUND)
+    SET(internal_LUA OFF)
+ELSE(LUA51_FOUND)
+    SET(internal_LUA ${common_deps})
+ENDIF(LUA51_FOUND)
+
 FIND_PACKAGE(Box2D)
 IF(BOX2D_FOUND)
     SET(internal_BOX2D OFF)
@@ -98,6 +105,7 @@ OPTION(POLYCODE_DEPS_FREETYPE "Download and build the Freetype2 package" ${inter
 OPTION(POLYCODE_DEPS_PNG "Download and build the PNG package" ${internal_PNG})
 OPTION(POLYCODE_DEPS_OGGVORBIS "Download and build the Ogg Vorbis packages" ${internal_VORBISFILE})
 
+OPTION(POLYCODE_DEPS_LUA51 "Download and build the Lua51 package" ${internal_LUA})
 OPTION(POLYCODE_DEPS_BOX2D "Download and build the Box2D package" ${internal_BOX2D})
 OPTION(POLYCODE_DEPS_BULLET "Download and build the Bullet package" ${internal_BULLET})
 OPTION(POLYCODE_DEPS_ASSIMP "Download and build the Assimp package" ${internal_ASSIMP})
@@ -122,6 +130,10 @@ IF(POLYCODE_DEPS_OGGVORBIS)
     INCLUDE(ExternalOggVorbis)
 ENDIF(POLYCODE_DEPS_OGGVORBIS)
 
+IF(POLYCODE_DEPS_LUA51)
+    INCLUDE(ExternalLua51)
+ENDIF(POLYCODE_DEPS_LUA51)
+
 IF(POLYCODE_DEPS_BOX2D)
     INCLUDE(ExternalBox2D)
 ENDIF(POLYCODE_DEPS_BOX2D)