summaryrefslogtreecommitdiffstats
path: root/plugins/luarocks/luarocks-1-fixes.patch
blob: 8940e8e43aee469c58e418fd5464b0b5cc990bcb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
This file is part of MXE.
See index.html for further information.

Contains ad hoc patches for cross building.

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Boris Nagaev <bnagaev@gmail.com>
Date: Sat, 10 Oct 2015 17:45:24 +0100
Subject: [PATCH] platform MXE


diff --git a/src/luarocks/build/builtin.lua b/src/luarocks/build/builtin.lua
index 1111111..2222222 100644
--- a/src/luarocks/build/builtin.lua
+++ b/src/luarocks/build/builtin.lua
@@ -165,7 +165,7 @@ function builtin.run(rockspec)
             add_flags(extras, "-Wl,-rpath,%s:", libdirs)
          end
          add_flags(extras, "-l%s", libraries)
-         if cfg.is_platform("cygwin") then
+         if cfg.is_platform("cygwin") or cfg.is_platform("mxe") then
             add_flags(extras, "-l%s", {"lua"})
          end
          return execute(variables.LD.." "..variables.LIBFLAG, "-o", library, "-L"..variables.LUA_LIBDIR, unpack(extras))
diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua
index 1111111..2222222 100644
--- a/src/luarocks/cfg.lua
+++ b/src/luarocks/cfg.lua
@@ -118,6 +118,9 @@ elseif system and system:match("^Windows") then
 elseif system and system:match("^MINGW") then
    detected.windows = true
    detected.mingw32 = true
+elseif system and system:match("^MXE") then
+   detected.unix = true
+   detected.mxe = true
 else
    detected.unix = true
    -- Fall back to Unix in unknown systems.
@@ -430,6 +433,44 @@ if detected.unix then
    defaults.web_browser = "xdg-open"
 end
 
+if detected.mxe then
+   local MXE_ROOT, MXE_TARGET =
+      assert(site_config.LUAROCKS_PREFIX:match('^(.*)/usr/([^/]+)$'))
+   defaults.lib_extension = "dll"
+   defaults.external_lib_extension = "dll"
+   defaults.obj_extension = "obj"
+   defaults.external_deps_dirs = { site_config.LUAROCKS_PREFIX }
+   defaults.arch = "mxe-" .. MXE_TARGET
+   defaults.platforms = {"unix", "mxe"}
+   -- LUA_INCDIR and LUA_LIBDIR are defined in site_config.lua
+   defaults.variables.LUA_BINDIR = site_config.LUAROCKS_PREFIX .. "/bin"
+   defaults.cmake_generator = "Unix Makefiles"
+   defaults.variables.MAKE = os.getenv("MAKE")
+   defaults.variables.CMAKE = MXE_ROOT .. "/usr/bin/" .. MXE_TARGET .. "-cmake"
+   defaults.variables.CC = MXE_ROOT .. "/usr/bin/" .. MXE_TARGET .. "-gcc"
+   defaults.variables.LD = defaults.variables.CC
+   defaults.variables.CFLAGS = "-O2"
+   defaults.variables.LIBFLAG = "-shared"
+   defaults.variables.LUALIB = "liblua.dll.a"
+
+   defaults.export_path = "SET PATH=%s"
+   defaults.export_path_separator = ";"
+   defaults.export_lua_path = "SET LUA_PATH=%s"
+   defaults.export_lua_cpath = "SET LUA_CPATH=%s"
+   defaults.wrapper_suffix = ".bat"
+
+   defaults.external_deps_patterns = {
+      bin = { "?.exe", "?.bat" },
+      lib = { "?.dll.a", "lib?.dll.a" },
+      include = { "?.h" }
+   }
+   defaults.runtime_external_deps_patterns = {
+      bin = { "?.exe", "?.bat" },
+      lib = { "?.dll", "lib?.dll" },
+      include = { "?.h" }
+   }
+end
+
 if detected.cygwin then
    defaults.lib_extension = "so" -- can be overridden in the config file for mingw builds
    defaults.arch = "cygwin-"..proc