aboutsummaryrefslogtreecommitdiff
path: root/.appveyor/install.bat
diff options
context:
space:
mode:
Diffstat (limited to '.appveyor/install.bat')
-rw-r--r--.appveyor/install.bat154
1 files changed, 154 insertions, 0 deletions
diff --git a/.appveyor/install.bat b/.appveyor/install.bat
new file mode 100644
index 00000000..a2aefdd2
--- /dev/null
+++ b/.appveyor/install.bat
@@ -0,0 +1,154 @@
1@echo off
2
3cd %APPVEYOR_BUILD_FOLDER%
4
5:: =========================================================
6:: Set some defaults. Infer some variables.
7::
8:: These are set globally
9if "%LUA_VER%" NEQ "" (
10 set LUA=lua
11 set LUA_SHORTV=%LUA_VER:~0,3%
12) else (
13 set LUA=luajit
14 set LJ_SHORTV=%LJ_VER:~0,3%
15 set LUA_SHORTV=5.1
16)
17
18:: unless we specify a platform on appveyor.yaml, we won't get this variable
19if not defined platform set platform=x86
20
21:: defines LUA_DIR so Cmake can find this Lua install
22if "%LUA%"=="luajit" (
23 set LUA_DIR=c:\lua\%platform%\lj%LJ_SHORTV%
24) else (
25 set LUA_DIR=c:\lua\%platform%\%LUA_VER%
26)
27
28:: Now we declare a scope
29Setlocal EnableDelayedExpansion EnableExtensions
30
31if not defined LUA_URL set LUA_URL=http://www.lua.org/ftp
32if not defined LUAJIT_GIT_REPO set LUAJIT_GIT_REPO=http://luajit.org/git/luajit-2.0.git
33if not defined LUAJIT_URL set LUAJIT_URL=http://luajit.org/download
34
35if not defined SEVENZIP set SEVENZIP=7z
36::
37:: =========================================================
38
39:: first create some necessary directories:
40mkdir downloads 2>NUL
41
42:: Download and compile Lua (or LuaJIT)
43if "%LUA%"=="luajit" (
44 if not exist %LUA_DIR% (
45 if "%LJ_SHORTV%"=="2.1" (
46 :: Clone repository and checkout 2.1 branch
47 set lj_source_folder=%APPVEYOR_BUILD_FOLDER%\downloads\luajit-%LJ_VER%
48 if not exist !lj_source_folder! (
49 echo Cloning git repo %LUAJIT_GIT_REPO% !lj_source_folder!
50 git clone %LUAJIT_GIT_REPO% !lj_source_folder! || call :die "Failed to clone repository"
51 )
52 cd !lj_source_folder!\src
53 git checkout v2.1 || call :die
54 ) else (
55 set lj_source_folder=%APPVEYOR_BUILD_FOLDER%\downloads\luajit-%LJ_VER%
56 if not exist !lj_source_folder! (
57 echo Downloading... %LUAJIT_URL%/LuaJIT-%LJ_VER%.tar.gz
58 curl --silent --fail --max-time 120 --connect-timeout 30 %LUAJIT_URL%/LuaJIT-%LJ_VER%.tar.gz | %SEVENZIP% x -si -so -tgzip | %SEVENZIP% x -si -ttar -aoa -odownloads
59 )
60 cd !lj_source_folder!\src
61 )
62 :: Compiles LuaJIT
63 call msvcbuild.bat
64
65 mkdir %LUA_DIR% 2> NUL
66 for %%a in (bin include lib) do ( mkdir "%LUA_DIR%\%%a" )
67
68 for %%a in (luajit.exe lua51.dll) do ( move "!lj_source_folder!\src\%%a" "%LUA_DIR%\bin" )
69
70 move "!lj_source_folder!\src\lua51.lib" "%LUA_DIR%\lib"
71 for %%a in (lauxlib.h lua.h lua.hpp luaconf.h lualib.h luajit.h) do (
72 copy "!lj_source_folder!\src\%%a" "%LUA_DIR%\include"
73 )
74
75 ) else (
76 echo LuaJIT %LJ_VER% already installed at %LUA_DIR%
77 )
78) else (
79 if not exist %LUA_DIR% (
80 :: Download and compile Lua
81 if not exist downloads\lua-%LUA_VER% (
82 curl --silent --fail --max-time 120 --connect-timeout 30 %LUA_URL%/lua-%LUA_VER%.tar.gz | %SEVENZIP% x -si -so -tgzip | %SEVENZIP% x -si -ttar -aoa -odownloads
83 )
84
85 mkdir downloads\lua-%LUA_VER%\etc 2> NUL
86 if not exist downloads\lua-%LUA_VER%\etc\winmake.bat (
87 curl --silent --location --insecure --fail --max-time 120 --connect-timeout 30 https://github.com/Tieske/luawinmake/archive/master.tar.gz | %SEVENZIP% x -si -so -tgzip | %SEVENZIP% e -si -ttar -aoa -odownloads\lua-%LUA_VER%\etc luawinmake-master\etc\winmake.bat
88 )
89
90 cd downloads\lua-%LUA_VER%
91 call etc\winmake
92 call etc\winmake install %LUA_DIR%
93 ) else (
94 echo Lua %LUA_VER% already installed at %LUA_DIR%
95 )
96)
97
98if not exist %LUA_DIR%\bin\%LUA%.exe call :die "Missing Lua interpreter at %LUA_DIR%\bin\%LUA%.exe"
99
100set PATH=%LUA_DIR%\bin;%PATH%
101call %LUA% -v
102
103
104
105:: Exports the following variables:
106endlocal & set PATH=%PATH%
107
108echo.
109echo ======================================================
110if "%LUA%"=="luajit" (
111 echo Installation of LuaJIT %LJ_VER% done.
112) else (
113 echo Installation of Lua %LUA_VER% done.
114)
115echo Platform - %platform%
116echo LUA - %LUA%
117echo LUA_SHORTV - %LUA_SHORTV%
118echo LJ_SHORTV - %LJ_SHORTV%
119echo.
120echo ======================================================
121echo.
122
123goto :eof
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142:: This blank space is intentional. If you see errors like "The system cannot find the batch label specified 'foo'"
143:: then try adding or removing blank lines lines above.
144:: Yes, really.
145:: http://stackoverflow.com/questions/232651/why-the-system-cannot-find-the-batch-label-specified-is-thrown-even-if-label-e
146
147:: helper functions:
148
149:: for bailing out when an error occurred
150:die %1
151echo %1
152exit /B 1
153goto :eof
154