aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--third-party/cmake/BuildLuarocks.cmake17
-rw-r--r--third-party/patches/luarocks-Change-default-downloader-to-curl.patch24
2 files changed, 39 insertions, 2 deletions
diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake
index 356ef94318..297fedb888 100644
--- a/third-party/cmake/BuildLuarocks.cmake
+++ b/third-party/cmake/BuildLuarocks.cmake
@@ -12,7 +12,7 @@ function(BuildLuarocks)
cmake_parse_arguments(_luarocks
""
""
- "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
+ "PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
${ARGN})
if(NOT _luarocks_CONFIGURE_COMMAND AND NOT _luarocks_BUILD_COMMAND
@@ -32,6 +32,7 @@ function(BuildLuarocks)
-DTARGET=luarocks
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
+ PATCH_COMMAND "${_luarocks_PATCH_COMMAND}"
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND "${_luarocks_CONFIGURE_COMMAND}"
BUILD_COMMAND "${_luarocks_BUILD_COMMAND}"
@@ -50,6 +51,11 @@ if(NOT MSVC)
# version already knows, and passing them here breaks the build
set(LUAROCKS_BUILDARGS CC=${HOSTDEPS_C_COMPILER} LD=${HOSTDEPS_C_COMPILER})
endif()
+if(WIN32)
+ # Use our bundled curl.exe for downloading packages
+ set(LUAROCKS_BUILDARGS ${LUAROCKS_BUILDARGS} CURL=${DEPS_BIN_DIR}/curl.exe)
+endif()
+
if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING))
@@ -76,7 +82,12 @@ elseif(MSVC OR MINGW)
endif()
# Ignore USE_BUNDLED_LUAJIT - always ON for native Win32
- BuildLuarocks(INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F
+ BuildLuarocks(
+ PATCH_COMMAND
+ git -C ${DEPS_BUILD_DIR}/src/luarocks init
+ COMMAND git -C ${DEPS_BUILD_DIR}/src/luarocks apply
+ ${CMAKE_CURRENT_SOURCE_DIR}/patches/luarocks-Change-default-downloader-to-curl.patch
+ INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F
/LUA ${DEPS_INSTALL_DIR}
/LIB ${DEPS_LIB_DIR}
/BIN ${DEPS_BIN_DIR}
@@ -88,6 +99,8 @@ elseif(MSVC OR MINGW)
/LUAMOD ${DEPS_BIN_DIR}/lua)
set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION}/luarocks.bat)
+ add_dependencies(luarocks wintools)
+
else()
message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
endif()
diff --git a/third-party/patches/luarocks-Change-default-downloader-to-curl.patch b/third-party/patches/luarocks-Change-default-downloader-to-curl.patch
new file mode 100644
index 0000000000..b7109a3b53
--- /dev/null
+++ b/third-party/patches/luarocks-Change-default-downloader-to-curl.patch
@@ -0,0 +1,24 @@
+From 69313032fad04743c96bc8f2a029b691857488f9 Mon Sep 17 00:00:00 2001
+Date: Thu, 1 Mar 2018 21:41:29 -0600
+Subject: [PATCH] Change default downloader to curl
+
+---
+ install.bat | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/install.bat b/install.bat
+index 09cf9aa..76e4059 100644
+--- a/install.bat
++++ b/install.bat
+@@ -1037,7 +1037,7 @@ f:write(S[=[
+ site_config.LUAROCKS_UNAME_M=[[$UNAME_M]]
+ site_config.LUAROCKS_ROCKS_TREE=[[$TREE_ROOT]]
+ site_config.LUAROCKS_PREFIX=[[$PREFIX]]
+-site_config.LUAROCKS_DOWNLOADER=[[wget]]
++site_config.LUAROCKS_DOWNLOADER=[[curl]]
+ site_config.LUAROCKS_MD5CHECKER=[[md5sum]]
+ ]=])
+ if FORCE_CONFIG then
+--
+2.16.1.windows.4
+