aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.appveyor/build.bat112
-rw-r--r--.appveyor/install.bat154
-rw-r--r--appveyor.yml33
-rw-r--r--test/testing.bat9
4 files changed, 308 insertions, 0 deletions
diff --git a/.appveyor/build.bat b/.appveyor/build.bat
new file mode 100644
index 00000000..48e72514
--- /dev/null
+++ b/.appveyor/build.bat
@@ -0,0 +1,112 @@
1@echo off
2Setlocal EnableDelayedExpansion EnableExtensions
3
4cd %APPVEYOR_BUILD_FOLDER%
5
6:: =========================================================
7:: Make sure some environment variables are set
8if not defined LUA_VER call :die LUA_VER is not defined
9if not defined LUA call :die LUA is not defined
10if not defined LUA_SHORTV call :die LUA_SHORTV is not defined
11if not defined LUA_DIR call :die LUA_DIR is not defined
12
13:: =========================================================
14:: Set some defaults. Infer some variables.
15::
16if not defined LUAROCKS_VER set LUAROCKS_VER=2.2.1
17
18set LUAROCKS_SHORTV=%LUAROCKS_VER:~0,3%
19
20if not defined LR_EXTERNAL set LR_EXTERNAL=c:\external
21if not defined LUAROCKS_INSTALL set LUAROCKS_INSTALL=%LUA_DIR%\LuaRocks
22if not defined LR_ROOT set LR_ROOT=%LUAROCKS_INSTALL%\%LUAROCKS_SHORTV%
23if not defined LR_SYSTREE set LR_SYSTREE=%LUAROCKS_INSTALL%\systree
24
25::
26:: =========================================================
27
28
29if not exist %LUA_DIR%\bin\%LUA%.exe call :die "Missing Lua interpreter at %LUA_DIR%\bin\%LUA%.exe"
30
31
32
33:: =========================================================
34:: LuaRocks
35:: =========================================================
36
37cd %APPVEYOR_BUILD_FOLDER%
38call install.bat /LUA %LUA_DIR% /Q /LV %LUA_SHORTV% /P "%LUAROCKS_INSTALL%" /TREE "%LR_SYSTREE%"
39
40if not exist "%LR_ROOT%" call :die "LuaRocks not found at %LR_ROOT%"
41
42set PATH=%LR_ROOT%;%LR_SYSTREE%\bin;%PATH%
43
44:: Lua will use just the system rocks
45set LUA_PATH=%LR_ROOT%\lua\?.lua;%LR_ROOT%\lua\?\init.lua
46set LUA_PATH=%LUA_PATH%;%LR_SYSTREE%\share\lua\%LUA_SHORTV%\?.lua
47set LUA_PATH=%LUA_PATH%;%LR_SYSTREE%\share\lua\%LUA_SHORTV%\?\init.lua
48set LUA_CPATH=%LR_SYSTREE%\lib\lua\%LUA_SHORTV%\?.dll
49
50call luarocks --version || call :die "Error with LuaRocks installation"
51call luarocks list
52
53
54if not exist "%LR_EXTERNAL%" (
55 mkdir "%LR_EXTERNAL%"
56 mkdir "%LR_EXTERNAL%\lib"
57 mkdir "%LR_EXTERNAL%\include"
58)
59
60set PATH=%LR_EXTERNAL%;%PATH%
61
62:: Exports the following variables:
63:: (beware of whitespace between & and ^ below)
64endlocal & set PATH=%PATH%&^
65set LR_SYSTREE=%LR_SYSTREE%&^
66set LUA_PATH=%LUA_PATH%&^
67set LUA_CPATH=%LUA_CPATH%&^
68set LR_EXTERNAL=%LR_EXTERNAL%
69
70echo.
71echo ======================================================
72echo Installation of LuaRocks %LUAROCKS_VER% done.
73echo .
74echo LUA_PATH - %LUA_PATH%
75echo LUA_CPATH - %LUA_CPATH%
76echo.
77echo LR_EXTERNAL - %LR_EXTERNAL%
78echo ======================================================
79echo.
80
81goto :eof
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100:: This blank space is intentional. If you see errors like "The system cannot find the batch label specified 'foo'"
101:: then try adding or removing blank lines lines above.
102:: Yes, really.
103:: http://stackoverflow.com/questions/232651/why-the-system-cannot-find-the-batch-label-specified-is-thrown-even-if-label-e
104
105:: helper functions:
106
107:: for bailing out when an error occurred
108:die %1
109echo %1
110exit /B 1
111goto :eof
112
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
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 00000000..436c341b
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,33 @@
1version: 2.2.1.{build}-test
2
3os:
4- Windows Server 2012 R2
5
6shallow_clone: true
7
8environment:
9 LUAROCKS_VER: 2.2.1
10
11 matrix:
12 - LUA_VER: 5.1.5
13 - LUA_VER: 5.2.4
14 - LUA_VER: 5.3.0
15 - LJ_VER: 2.0.3
16 - LJ_VER: 2.1
17
18init:
19# Setup Lua development/build environment
20# Make VS 2013 command line tools available
21- call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %platform%
22
23install:
24# Setup Lua development/build environment
25- call .appveyor\install.bat
26
27build_script:
28- call .appveyor\build.bat
29
30test_script:
31- echo "Testing..."
32- cd test
33- call testing.bat
diff --git a/test/testing.bat b/test/testing.bat
new file mode 100644
index 00000000..319e12c3
--- /dev/null
+++ b/test/testing.bat
@@ -0,0 +1,9 @@
1@echo off
2Setlocal EnableDelayedExpansion EnableExtensions
3
4if not defined LUAROCKS_REPO set LUAROCKS_REPO=http://rocks.moonscript.org
5
6appveyor DownloadFile %LUAROCKS_REPO%/stdlib-41.0.0-1.src.rock
7luarocks build stdlib
8
9endlocal