aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-03-02 07:17:17 -0800
committerRobert Schumacher <roschuma@microsoft.com>2017-03-02 07:17:17 -0800
commit605ad4cf2f47f81ffeb8f3e3f076946aa83fbaf3 (patch)
tree2545f5c94ad0361ebc25a2989956011852f23b7c
parentb11ab655e2543faec126b8a813ff5dc171958cad (diff)
parent3e0dc1e81e0fa0960abca18bba6c560df4317adb (diff)
downloadvcpkg-605ad4cf2f47f81ffeb8f3e3f076946aa83fbaf3.tar.gz
vcpkg-605ad4cf2f47f81ffeb8f3e3f076946aa83fbaf3.zip
Merge pull request #724 from codicodi/bump-lua
[lua] update to 5.3.4
-rw-r--r--ports/lua/CMakeLists.txt18
-rw-r--r--ports/lua/CONTROL2
-rw-r--r--ports/lua/portfile.cmake17
3 files changed, 31 insertions, 6 deletions
diff --git a/ports/lua/CMakeLists.txt b/ports/lua/CMakeLists.txt
index 68de76788..faef8018b 100644
--- a/ports/lua/CMakeLists.txt
+++ b/ports/lua/CMakeLists.txt
@@ -1,3 +1,12 @@
+# Lua can be compiled as either C or C++.
+# Default configuration is C, set COMPILE_AS_CPP to ON to use C++.
+# See http://stackoverflow.com/questions/13560945/c-and-c-library-using-longjmp for why would you want to do that.
+# Primary differences:
+# - Exceptions will be used instead of setjmp/longjmp
+# - The name mangling for functions will be C++ instead of C.
+# - This is a source-incompatible change because extern "C" is chosen by the including application.
+# - The lua.hpp header will not be available.
+
PROJECT ( lua )
IF( NOT WIN32 )
@@ -22,6 +31,10 @@ src/lopcodes.c src/loslib.c src/lparser.c src/lstate.c src/lstring.c src/lstrlib
src/ltable.c src/ltablib.c src/ltm.c src/lundump.c src/lutf8lib.c src/lvm.c src/lzio.c
)
+IF (COMPILE_AS_CPP)
+ SET_SOURCE_FILES_PROPERTIES(${SRC_LIBLUA} src/lua.c src/luac.c PROPERTIES LANGUAGE CXX)
+ENDIF ()
+
# append headers to sources to make them show up in MSVC GUI
LIST(APPEND SRC_LIBLUA ${HDR_LIBLUA})
@@ -54,8 +67,11 @@ IF (NOT DEFINED SKIP_INSTALL_HEADERS)
src/lualib.h
src/lua.h
src/luaconf.h
- src/lua.hpp
src/lauxlib.h
DESTINATION include
)
+ # If using C++, don't install extern "C" wrapper.
+ IF (NOT COMPILE_AS_CPP)
+ INSTALL(FILES src/lua.hpp DESTINATION include)
+ ENDIF ()
ENDIF ()
diff --git a/ports/lua/CONTROL b/ports/lua/CONTROL
index b284bfa85..266bd153c 100644
--- a/ports/lua/CONTROL
+++ b/ports/lua/CONTROL
@@ -1,3 +1,3 @@
Source: lua
-Version: 5.3.3-2
+Version: 5.3.4
Description: a powerful, fast, lightweight, embeddable scripting language
diff --git a/ports/lua/portfile.cmake b/ports/lua/portfile.cmake
index 0778a77f9..beda8362e 100644
--- a/ports/lua/portfile.cmake
+++ b/ports/lua/portfile.cmake
@@ -7,11 +7,11 @@
#
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lua-5.3.3)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lua-5.3.4)
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.lua.org/ftp/lua-5.3.3.tar.gz"
- FILENAME "lua-5.3.3.tar.gz"
- SHA512 7b8122ed48ea2a9faa47d1b69b4a5b1523bb7be67e78f252bb4339bf75e957a88c5405156e22b4b63ccf607a5407bf017a4cee1ce12b1aa5262047655960a3cc
+ URLS "http://www.lua.org/ftp/lua-5.3.4.tar.gz"
+ FILENAME "lua-5.3.4.tar.gz"
+ SHA512 739e31f82e6a60fa99910c2005e991b3a1e21339af52847f653cb190b30842054d189ca116ffcfdf9b36e07888c9ce5642b1dd2988cc7eff9f8789f9a2e34997
)
vcpkg_extract_source_archive(${ARCHIVE})
@@ -19,6 +19,9 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCOMPILE_AS_CPP=OFF
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
-DSKIP_INSTALL_TOOLS=ON
@@ -26,6 +29,12 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(READ ${CURRENT_PACKAGES_DIR}/include/luaconf.h LUA_CONF_H)
+ string(REPLACE "defined(LUA_BUILD_AS_DLL)" "1" LUA_CONF_H "${LUA_CONF_H}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/luaconf.h "${LUA_CONF_H}")
+endif()
+
# Handle copyright
file(COPY ${CMAKE_CURRENT_LIST_DIR}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/lua)
vcpkg_copy_pdbs()