diff --git a/.appveyor/install.bat b/.appveyor/install.bat deleted file mode 100644 index 1ee346d..0000000 --- a/.appveyor/install.bat +++ /dev/null @@ -1,270 +0,0 @@ -@echo off - -cd %APPVEYOR_BUILD_FOLDER% - -:: ========================================================= -:: Set some defaults. Infer some variables. -:: -:: These are set globally -if "%LUA_VER%" NEQ "" ( - set LUA=lua - set LUA_SHORTV=%LUA_VER:~0,3% -) else ( - set LUA=luajit - set LJ_SHORTV=%LJ_VER:~0,3% - set LUA_SHORTV=5.1 -) - -:: defines LUA_DIR so Cmake can find this Lua install -if "%LUA%"=="luajit" ( - set LUA_DIR=c:\lua\%platform%\lj%LJ_SHORTV% -) else ( - set LUA_DIR=c:\lua\%platform%\%LUA_VER% -) - -:: Now we declare a scope -Setlocal EnableDelayedExpansion EnableExtensions - -if not defined LUAROCKS_URL set LUAROCKS_URL=http://keplerproject.github.io/luarocks/releases -if not defined LUAROCKS_REPO set LUAROCKS_REPO=https://luarocks.org -if not defined LUA_URL set LUA_URL=http://www.lua.org/ftp -if defined NOCOMPAT ( - set COMPATFLAG=--nocompat -) else ( - set COMPATFLAG= -) -if not defined LUAJIT_GIT_REPO set LUAJIT_GIT_REPO=https://github.com/LuaJIT/LuaJIT.git -if not defined LUAJIT_URL set LUAJIT_URL=https://github.com/LuaJIT/LuaJIT/archive - -if not defined LR_EXTERNAL set LR_EXTERNAL=c:\external -if not defined LUAROCKS_INSTALL set LUAROCKS_INSTALL=%LUA_DIR%\LuaRocks - - -:: LuaRocks <= 2.2.2 used a versioned directory -:: HEAD and newer versions do not, so act accordingly. -if defined LR_ROOT goto :skiplrver - -if "%LUAROCKS_VER%" EQU "HEAD" ( - set LR_ROOT=%LUAROCKS_INSTALL% - goto :skiplrver -) -set LR_ROOT=%LUAROCKS_INSTALL% -if %LUAROCKS_VER:~0,1% LEQ 2 ( - if %LUAROCKS_VER:~2,1% LEQ 2 ( - if %LUAROCKS_VER:~4,1% LEQ 3 ( - set LR_ROOT=%LUAROCKS_INSTALL%\!LUAROCKS_VER:~0,3! - ) - ) -) -:skiplrver - -if not defined LR_SYSTREE set LR_SYSTREE=%LUAROCKS_INSTALL%\systree - -if not defined SEVENZIP set SEVENZIP=7z -:: -:: ========================================================= - -:: first create some necessary directories: -mkdir downloads 2>NUL - -:: Download and compile Lua (or LuaJIT) -if "%LUA%"=="luajit" ( - if not exist %LUA_DIR% ( - if "%LJ_SHORTV%"=="2.1" ( - :: Clone repository and checkout 2.1 branch - set lj_source_folder=%APPVEYOR_BUILD_FOLDER%\downloads\luajit-%LJ_VER% - if not exist !lj_source_folder! ( - echo Cloning git repo %LUAJIT_GIT_REPO% !lj_source_folder! - git clone %LUAJIT_GIT_REPO% !lj_source_folder! || call :die "Failed to clone repository" - ) else ( - cd !lj_source_folder! - git pull || call :die "Failed to update repository" - ) - cd !lj_source_folder!\src - git checkout v2.1 || call :die - ) else ( - set lj_source_folder=%APPVEYOR_BUILD_FOLDER%\downloads\luajit-%LJ_VER% - if not exist !lj_source_folder! ( - echo Downloading... %LUAJIT_URL%/v%LJ_VER%.tar.gz - curl --location --silent --fail --max-time 120 --connect-timeout 30 %LUAJIT_URL%/v%LJ_VER%.tar.gz | %SEVENZIP% x -si -so -tgzip | %SEVENZIP% x -si -ttar -aoa -odownloads - ) - cd !lj_source_folder!\src - ) - :: Compiles LuaJIT - if "%Configuration%"=="MinGW" ( - call mingw32-make - ) else ( - call msvcbuild.bat - ) - - mkdir %LUA_DIR% 2> NUL - for %%a in (bin bin\lua bin\lua\jit include lib) do ( mkdir "%LUA_DIR%\%%a" ) - - for %%a in (luajit.exe lua51.dll) do ( move "!lj_source_folder!\src\%%a" "%LUA_DIR%\bin" ) - copy "%LUA_DIR%\bin\luajit.exe" "%LUA_DIR%\bin\lua.exe" - - move "!lj_source_folder!\src\lua51.lib" "%LUA_DIR%\lib" - for %%a in (lauxlib.h lua.h lua.hpp luaconf.h lualib.h luajit.h) do ( - copy "!lj_source_folder!\src\%%a" "%LUA_DIR%\include" - ) - - copy "!lj_source_folder!\src\jit\*.lua" "%LUA_DIR%\bin\lua\jit" - - ) else ( - echo LuaJIT %LJ_VER% already installed at %LUA_DIR% - ) -) else ( - if not exist %LUA_DIR% ( - :: Download and compile Lua - if not exist downloads\lua-%LUA_VER% ( - 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 - ) - - mkdir downloads\lua-%LUA_VER%\etc 2> NUL - copy %~dp0\winmake.bat downloads\lua-%LUA_VER%\etc\winmake.bat - - cd downloads\lua-%LUA_VER% - call etc\winmake %COMPATFLAG% - call etc\winmake install %LUA_DIR% - ) else ( - echo Lua %LUA_VER% already installed at %LUA_DIR% - ) -) - -if not exist %LUA_DIR%\bin\%LUA%.exe call :die "Missing Lua interpreter at %LUA_DIR%\bin\%LUA%.exe" - -set PATH=%LUA_DIR%\bin;%PATH% -call !LUA! -v - - - -:: ========================================================== -:: LuaRocks -:: ========================================================== - -if not exist "%LR_ROOT%" ( - :: Downloads and installs LuaRocks - cd %APPVEYOR_BUILD_FOLDER% - - if %LUAROCKS_VER%==HEAD ( - set lr_source_folder=%APPVEYOR_BUILD_FOLDER%\downloads\luarocks-%LUAROCKS_VER%-win32 - if not exist !lr_source_folder! ( - git clone https://github.com/keplerproject/luarocks.git --single-branch --depth 1 !lr_source_folder! || call :die "Failed to clone LuaRocks repository" - ) else ( - cd !lr_source_folder! - git pull || call :die "Failed to update LuaRocks repository" - ) - ) else ( - if not exist downloads\luarocks-%LUAROCKS_VER%-win32.zip ( - echo Downloading LuaRocks... - curl --silent --fail --max-time 120 --connect-timeout 30 --output downloads\luarocks-%LUAROCKS_VER%-win32.zip %LUAROCKS_URL%/luarocks-%LUAROCKS_VER%-win32.zip - %SEVENZIP% x -aoa -odownloads downloads\luarocks-%LUAROCKS_VER%-win32.zip - ) - ) - - cd downloads\luarocks-%LUAROCKS_VER%-win32 - if "%Configuration%"=="MinGW" ( - call install.bat /LUA %LUA_DIR% /Q /LV %LUA_SHORTV% /P "%LUAROCKS_INSTALL%" /TREE "%LR_SYSTREE%" /MW - ) else ( - call install.bat /LUA %LUA_DIR% /Q /LV %LUA_SHORTV% /P "%LUAROCKS_INSTALL%" /TREE "%LR_SYSTREE%" - ) - - :: Configures LuaRocks to instruct CMake the correct generator to use. Else, CMake will pick the highest - :: Visual Studio version installed - if "%Configuration%"=="MinGW" ( - echo cmake_generator = "MinGW Makefiles" >> %LUAROCKS_INSTALL%\config-%LUA_SHORTV%.lua - ) else ( - set MSVS_GENERATORS[2008]=Visual Studio 9 2008 - set MSVS_GENERATORS[2010]=Visual Studio 10 2010 - set MSVS_GENERATORS[2012]=Visual Studio 11 2012 - set MSVS_GENERATORS[2013]=Visual Studio 12 2013 - set MSVS_GENERATORS[2015]=Visual Studio 14 2015 - - set CMAKE_GENERATOR=!MSVS_GENERATORS[%Configuration%]! - if "%platform%" EQU "x64" (set CMAKE_GENERATOR=!CMAKE_GENERATOR! Win64) - - echo cmake_generator = "!CMAKE_GENERATOR!" >> %LUAROCKS_INSTALL%\config-%LUA_SHORTV%.lua - ) -) - -if not exist "%LR_ROOT%" call :die "LuaRocks not found at %LR_ROOT%" - -set PATH=%LR_ROOT%;%LR_SYSTREE%\bin;%PATH% - -:: Lua will use just the system rocks -set LUA_PATH=%LR_ROOT%\lua\?.lua;%LR_ROOT%\lua\?\init.lua -set LUA_PATH=%LUA_PATH%;%LR_SYSTREE%\share\lua\%LUA_SHORTV%\?.lua -set LUA_PATH=%LUA_PATH%;%LR_SYSTREE%\share\lua\%LUA_SHORTV%\?\init.lua -set LUA_PATH=%LUA_PATH%;.\?.lua;.\?\init.lua -set LUA_CPATH=%LR_SYSTREE%\lib\lua\%LUA_SHORTV%\?.dll;.\?.dll - -call luarocks --version || call :die "Error with LuaRocks installation" -call luarocks list - - -if not exist "%LR_EXTERNAL%" ( - mkdir "%LR_EXTERNAL%" - mkdir "%LR_EXTERNAL%\lib" - mkdir "%LR_EXTERNAL%\include" -) - -set PATH=%LR_EXTERNAL%;%PATH% - -:: Exports the following variables: -:: (beware of whitespace between & and ^ below) -endlocal & set PATH=%PATH%&^ -set LR_SYSTREE=%LR_SYSTREE%&^ -set LUA_PATH=%LUA_PATH%&^ -set LUA_CPATH=%LUA_CPATH%&^ -set LR_EXTERNAL=%LR_EXTERNAL% - -echo. -echo ====================================================== -if "%LUA%"=="luajit" ( - echo Installation of LuaJIT %LJ_VER% and LuaRocks %LUAROCKS_VER% done. -) else ( - echo Installation of Lua %LUA_VER% and LuaRocks %LUAROCKS_VER% done. - if defined NOCOMPAT echo Lua was built with compatibility flags disabled. -) -echo Platform - %platform% -echo LUA - %LUA% -echo LUA_SHORTV - %LUA_SHORTV% -echo LJ_SHORTV - %LJ_SHORTV% -echo LUA_PATH - %LUA_PATH% -echo LUA_CPATH - %LUA_CPATH% -echo. -echo LR_EXTERNAL - %LR_EXTERNAL% -echo ====================================================== -echo. - -goto :eof - - - - - - - - - - - - - - - - - - -:: This blank space is intentional. If you see errors like "The system cannot find the batch label specified 'foo'" -:: then try adding or removing blank lines lines above. -:: Yes, really. -:: http://stackoverflow.com/questions/232651/why-the-system-cannot-find-the-batch-label-specified-is-thrown-even-if-label-e - -:: helper functions: - -:: for bailing out when an error occurred -:die %1 -echo %1 -exit /B 1 -goto :eof diff --git a/.appveyor/set_compiler_env.bat b/.appveyor/set_compiler_env.bat deleted file mode 100644 index 7e8462e..0000000 --- a/.appveyor/set_compiler_env.bat +++ /dev/null @@ -1,40 +0,0 @@ -@echo off - -:: Now we declare a scope -Setlocal EnableDelayedExpansion EnableExtensions - -if not defined Configuration set Configuration=2015 - -if "%Configuration%"=="MinGW" ( goto :mingw ) - -set arch=x86 - -if "%platform%" EQU "x64" ( set arch=x86_amd64 ) - -if "%Configuration%"=="2015" ( - set SET_VS_ENV="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" -) - -if "%Configuration%"=="2013" ( - set SET_VS_ENV="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" -) - -if "%Configuration%"=="2012" ( - set SET_VS_ENV="C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" -) - -if "%Configuration%"=="2010" ( - set SET_VS_ENV="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" -) - -if "%Configuration%"=="2008" ( - set SET_VS_ENV="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" -) - -:: Visual Studio detected -endlocal & call %SET_VS_ENV% %arch% -goto :eof - -:: MinGW detected -:mingw -endlocal & set PATH=c:\mingw\bin;%PATH% diff --git a/.appveyor/winmake.bat b/.appveyor/winmake.bat deleted file mode 100644 index dcad55d..0000000 --- a/.appveyor/winmake.bat +++ /dev/null @@ -1,457 +0,0 @@ -@ECHO OFF -SETLOCAL ENABLEDELAYEDEXPANSION - -REM ***************************** -REM * Customization section * -REM ***************************** - -REM use the /help option for generic usage information - -REM Where is the source code located (the unpacked Lua source archive, toplevel dir) -SET SOURCETREE=.\ - -REM set the toolchain to either MS or GCC (allcaps), leave blank to autodetect -SET TOOLCHAIN= - -REM set the compatibility flags, defaults to empty for 5.1, -DLUA_COMPAT_ALL for 5.2, -REM and -DLUA_COMPAT_5_2 for 5.3, which are the same as the unix make files -REM This setting can be overridden with the --nocompat flag -SET COMPATFLAG= - - - - - - - - - -REM ********************************** -REM * Nothing to customize below * -REM ********************************** - -SET BATCHNAME=%~n0 -SET SOURCE=%SOURCETREE%src\ -SET LUA_H=%SOURCE%lua.h -SET CURDIR=%CD% - -REM the following line ends with a TAB. DO NOT REMOVE IT! -SET TABCHAR= -REM Define LF to contain a linefeed character -set ^"LFCHAR=^ - -^" The above empty line is critical. DO NOT REMOVE - - -REM Supported toolchains (allcaps) -SET TOOLCHAINS=MS GCC -REM Commands which, if exiting without error, indicate presence of the toolchain -SET CHECK_GCC=gcc --version -SET CHECK_MS=cl - -REM ********************************** -REM * Check for help request * -REM ********************************** - -SET HELPCMDS=help -help --help /help ? -? /? -for %%L in ("!LFCHAR!") do for /f %%a in ("!HELPCMDS: =%%~L!") do ( - if "%%a"=="%~1" ( - echo. - echo Builds a standalone Lua installation. Supports Lua version 5.1, 5.2 and 5.3. - echo Your compiler must be in the system path, and this "%BATCHNAME%.bat" file must be located - echo in ".\etc\" in the unpacked Lua source archive. - echo. - echo USAGE etc\%BATCHNAME% [FLAG] [COMMAND] [...] - echo ^(execute from the root of the unpacked archive^) - echo. - echo Commands; - echo clean : cleans the source tree of build ^(intermediate^) files - echo install [path] : installs the build results into "path" - echo local : installs into ".\local\" in the unpacked Lua source structure - echo [toolchain] : uses a specific toolchain to build. If not provided then supported - echo toolchains will be tested and the first available will be picked. - echo Supported toolchains are: "%TOOLCHAINS%" ^(must use ALLCAPS^) - echo. - echo Flags; - echo --nocompat : Specifies that no compatibility flags should be set when building. - echo If not specified, the default compatibility flags will be used. - echo. - echo Example use; - echo set PATH=C:\path\to\your\compiler\;%%PATH%% - echo etc\%BATCHNAME% clean - echo etc\%BATCHNAME% - echo etc\%BATCHNAME% --nocompat GCC - echo etc\%BATCHNAME% install "C:\Program Files\Lua" - echo. - goto :EXITOK - ) -) - -REM ********************************** -REM * Check commandline * -REM ********************************** - -SET CMDOK=FALSE -if "%~1"=="" ( - SET CMDOK=TRUE -) -for %%a in (local install clean) do ( - if "%%a"=="%~1" ( - SET CMDOK=TRUE - ) -) -for %%a in (--nocompat) do ( - if "%%a"=="%~1" ( - SET NOCOMPAT=TRUE - if "%~2"=="" ( - SET CMDOK=TRUE - ) - SHIFT - ) -) -for %%a in (%TOOLCHAINS%) do ( - if "%%a"=="%~1" ( - SET CMDOK=TRUE - SET TOOLCHAIN=%~1 - ) -) -if NOT %CMDOK%==TRUE ( - echo. - echo Unknown command or toolchain specified. - goto :EXITERROR -) - -REM ************************************** -REM * Check for cleaning * -REM ************************************** - -if "%1"=="clean" ( - if NOT [%2]==[] ( - echo. - echo ERROR: The clean command does not take extra parameters. - ) else ( - echo Cleaning... - if exist "%SOURCE%*.exe" del "%SOURCE%*.exe" - if exist "%SOURCE%*.dll" del "%SOURCE%*.dll" - if exist "%SOURCE%*.o" del "%SOURCE%*.o" - if exist "%SOURCE%*.a" del "%SOURCE%*.a" - if exist "%SOURCE%*.obj" del "%SOURCE%*.obj" - if exist "%SOURCE%*.manifest" del "%SOURCE%*.manifest" - if exist "%SOURCE%*.lib" del "%SOURCE%*.lib" - echo Done. - ) - goto :EXITOK -) - -REM ************************************************** -REM * Fetch the Lua version from the source code * -REM ************************************************** - -Echo. -Echo Checking source code to extract Lua version... -IF NOT EXIST %LUA_H% ( - Echo Cannot locate Lua header file; %LUA_H% - goto :EXITERROR -) - -findstr /R /C:"#define[ %TABCHAR%][ %TABCHAR%]*LUA_VERSION_MAJOR" %LUA_H% > NUL -if NOT %ERRORLEVEL%==0 ( - rem ECHO We've got a Lua version 5.1 - rem findstr /R /C:"#define[ %TABCHAR%][ %TABCHAR%]*LUA_VERSION[ %TABCHAR%]" %LUA_H% - SET LUA_VER=5.1 -) else ( - rem ECHO We've got a Lua version 5.2+ - rem findstr /R /C:"#define[ %TABCHAR%][ %TABCHAR%]*LUA_VERSION_MAJOR[ %TABCHAR%]" %LUA_H% - rem findstr /R /C:"#define[ %TABCHAR%][ %TABCHAR%]*LUA_VERSION_MINOR[ %TABCHAR%]" %LUA_H% - - for /F "delims=" %%a in ('findstr /R /C:"#define[ %TABCHAR%][ %TABCHAR%]*LUA_VERSION_MAJOR[ %TABCHAR%]" %LUA_H%') do set LUA_MAJOR=%%a - SET LUA_MAJOR=!LUA_MAJOR:#define=! - SET LUA_MAJOR=!LUA_MAJOR:LUA_VERSION_MAJOR=! - SET LUA_MAJOR=!LUA_MAJOR: =! - SET LUA_MAJOR=!LUA_MAJOR:%TABCHAR%=! - SET LUA_MAJOR=!LUA_MAJOR:"=! - SET LUA_MAJOR=!LUA_MAJOR:~0,1! - - for /F "delims=" %%a in ('findstr /R /C:"#define[ %TABCHAR%][ %TABCHAR%]*LUA_VERSION_MINOR[ %TABCHAR%]" %LUA_H%') do set LUA_MINOR=%%a - SET LUA_MINOR=!LUA_MINOR:#define=! - SET LUA_MINOR=!LUA_MINOR:LUA_VERSION_MINOR=! - SET LUA_MINOR=!LUA_MINOR: =! - SET LUA_MINOR=!LUA_MINOR:%TABCHAR%=! - SET LUA_MINOR=!LUA_MINOR:"=! - SET LUA_MINOR=!LUA_MINOR:~0,1! - - SET LUA_VER=!LUA_MAJOR!.!LUA_MINOR! -) -SET LUA_SVER=!LUA_VER:.=! - -Echo Lua version found: %LUA_VER% -Echo. - -REM ************************************** -REM * Set some Lua version specifics * -REM ************************************** - -REM FILES_CORE; files for Lua core (+lauxlib, needed for Luac) -REM FILES_LIB; files for Lua standard libraries -REM FILES_DLL; vm files to be build with dll option -REM FILES_OTH; vm files to be build without dll, for static linking - -if %LUA_SVER%==51 ( - set FILES_CORE=lapi lcode ldebug ldo ldump lfunc lgc llex lmem lobject lopcodes lparser lstate lstring ltable ltm lundump lvm lzio lauxlib - set FILES_LIB=lbaselib ldblib liolib lmathlib loslib ltablib lstrlib loadlib linit - set FILES_DLL=lua - set FILES_OTH=luac print - set INSTALL_H=lauxlib.h lua.h luaconf.h lualib.h ..\etc\lua.hpp -) -if %LUA_SVER%==52 ( - set FILES_CORE=lapi lcode lctype ldebug ldo ldump lfunc lgc llex lmem lobject lopcodes lparser lstate lstring ltable ltm lundump lvm lzio lauxlib - set FILES_LIB=lbaselib lbitlib lcorolib ldblib liolib lmathlib loslib lstrlib ltablib loadlib linit - set FILES_DLL=lua - set FILES_OTH=luac - set INSTALL_H=lauxlib.h lua.h lua.hpp luaconf.h lualib.h - if "%COMPATFLAG%"=="" ( - set COMPATFLAG=-DLUA_COMPAT_ALL - ) -) -if %LUA_SVER%==53 ( - set FILES_CORE=lapi lcode lctype ldebug ldo ldump lfunc lgc llex lmem lobject lopcodes lparser lstate lstring ltable ltm lundump lvm lzio lauxlib - set FILES_LIB=lbaselib lbitlib lcorolib ldblib liolib lmathlib loslib lstrlib ltablib lutf8lib loadlib linit - set FILES_DLL=lua - set FILES_OTH=luac - set INSTALL_H=lauxlib.h lua.h lua.hpp luaconf.h lualib.h - if "%COMPATFLAG%"=="" ( - set COMPATFLAG=-DLUA_COMPAT_5_2 - ) -) - -if "%NOCOMPAT%"=="TRUE" ( - set COMPATFLAG= -) - -SET FILES_BASE=%FILES_DLL% %FILES_CORE% %FILES_LIB% - -if "%FILES_BASE%"=="" ( - Echo Unknown Lua version; %LUA_VER% - goto :EXITERROR -) - -REM ********************************* -REM * Check available toolchain * -REM ********************************* - -if [%TOOLCHAIN%]==[] ( - Echo Testing for MS... - %CHECK_MS% - IF !ERRORLEVEL!==0 SET TOOLCHAIN=MS -) -if [%TOOLCHAIN%]==[] ( - Echo Testing for GCC... - %CHECK_GCC% - IF !ERRORLEVEL!==0 SET TOOLCHAIN=GCC -) -if [%TOOLCHAIN%]==[] ( - Echo No supported toolchain found ^(please make sure it is in the system path^) - goto :EXITERROR -) - -REM *************************** -REM * Configure toolchain * -REM *************************** - -if %TOOLCHAIN%==GCC ( - echo Using GCC toolchain... - SET OBJEXT=o - SET LIBFILE=liblua%LUA_SVER%.a -) -if %TOOLCHAIN%==MS ( - echo Using Microsoft toolchain... - SET OBJEXT=obj - SET LIBFILE=lua%LUA_SVER%.lib -) -echo. - -REM ************************************** -REM * Check for installing * -REM ************************************** - -if "%1"=="install" ( - if "%~2"=="" ( - echo. - echo ERROR: The install command requires a path where to install to. - goto :EXITERROR - ) - SET TARGETPATH=%~2 -) -if "%1"=="local" ( - if NOT "%~2"=="" ( - echo. - echo ERROR: The local command does not take extra parameters. - goto :EXITERROR - ) - SET TARGETPATH=%SOURCETREE%local -) -if NOT "%TARGETPATH%"=="" ( - mkdir "%TARGETPATH%\bin" - mkdir "%TARGETPATH%\include" - mkdir "%TARGETPATH%\lib\lua\%LUA_VER%" - mkdir "%TARGETPATH%\man\man1" - mkdir "%TARGETPATH%\share\lua\%LUA_VER%" - copy "%SOURCE%lua.exe" "%TARGETPATH%\bin" - copy "%SOURCE%luac.exe" "%TARGETPATH%\bin" - copy "%SOURCE%lua%LUA_SVER%.dll" "%TARGETPATH%\bin" - for %%a in (%INSTALL_H%) do ( copy "%SOURCE%%%a" "%TARGETPATH%\include" ) - copy "%SOURCE%%LIBFILE%" "%TARGETPATH%\lib" - copy "%SOURCETREE%doc\lua.1" "%TARGETPATH%\man\man1" - copy "%SOURCETREE%doc\luac.1" "%TARGETPATH%\man\man1" - - echo Installation completed in "%TARGETPATH%". - goto :EXITOK -) - -REM *********************** -REM * Compile sources * -REM *********************** -goto :after_compile_function -:compile_function - REM Params: %1 is filelist (must be quoted) - REM Return: same list, with the object file extension included, will be stored in global OBJLIST - - for %%a in (%~1) do ( - SET FILENAME=%%a - if %TOOLCHAIN%==GCC ( - SET COMPCMD=gcc -O2 -Wall !EXTRAFLAG! !COMPATFLAG! -c -o !FILENAME!.%OBJEXT% !FILENAME!.c - ) - if %TOOLCHAIN%==MS ( - SET COMPCMD=cl /nologo /MD /O2 /W3 /c /D_CRT_SECURE_NO_DEPRECATE !COMPATFLAG! !EXTRAFLAG! !FILENAME!.c - ) - echo !COMPCMD! - !COMPCMD! - SET OBJLIST=!OBJLIST! !FILENAME!.%OBJEXT% - ) - -goto :eof -:after_compile_function - -CD %SOURCE% -REM Traverse the 4 lists of source files - -for %%b in (CORE LIB DLL OTH) do ( - SET LTYPE=%%b - SET OBJLIST= - if !LTYPE!==OTH ( - REM OTH is the only list of files build without DLL option - SET EXTRAFLAG= - ) else ( - SET EXTRAFLAG=-DLUA_BUILD_AS_DLL - ) - if !LTYPE!==CORE SET FILELIST=%FILES_CORE% - if !LTYPE!==LIB SET FILELIST=%FILES_LIB% - if !LTYPE!==DLL SET FILELIST=%FILES_DLL% - if !LTYPE!==OTH SET FILELIST=%FILES_OTH% - - echo Now compiling !LTYPE! file set... - call:compile_function "!FILELIST!" - - if !LTYPE!==CORE SET FILES_CORE_O=!OBJLIST! - if !LTYPE!==LIB SET FILES_LIB_O=!OBJLIST! - if !LTYPE!==DLL SET FILES_DLL_O=!OBJLIST! - if !LTYPE!==OTH SET FILES_OTH_O=!OBJLIST! -) - - -REM **************************** -REM * Link GCC based files * -REM **************************** - -if %TOOLCHAIN%==GCC ( - REM Link the LuaXX.dll file - SET LINKCMD=gcc -shared -o lua%LUA_SVER%.dll %FILES_CORE_O% %FILES_LIB_O% - echo !LINKCMD! - !LINKCMD! - - REM strip from LuaXX.dll - SET RANCMD=strip --strip-unneeded lua%LUA_SVER%.dll - echo !RANCMD! - !RANCMD! - - REM Link the Lua.exe file - SET LINKCMD=gcc -o lua.exe -s lua.%OBJEXT% lua%LUA_SVER%.dll -lm - echo !LINKCMD! - !LINKCMD! - - REM create lib archive - SET LIBCMD=ar rcu liblua%LUA_SVER%.a %FILES_CORE_O% %FILES_LIB_O% - echo !LIBCMD! - !LIBCMD! - - REM Speedup index using ranlib - SET RANCMD=ranlib liblua%LUA_SVER%.a - echo !RANCMD! - !RANCMD! - - REM Link Luac.exe file - SET LINKCMD=gcc -o luac.exe %FILES_OTH_O% liblua%LUA_SVER%.a -lm - echo !LINKCMD! - !LINKCMD! - -) - - -REM **************************** -REM * Link MS based files * -REM **************************** - -if %TOOLCHAIN%==MS ( - REM Link the LuaXX.dll file, and LuaXX.obj - SET LINKCMD=link /nologo /DLL /out:lua%LUA_SVER%.dll %FILES_CORE_O% %FILES_LIB_O% - echo !LINKCMD! - !LINKCMD! - - REM handle dll manifest - if exist lua%LUA_SVER%.dll.manifest ( - SET MANICMD=mt /nologo -manifest lua%LUA_SVER%.dll.manifest -outputresource:lua%LUA_SVER%.dll;2 - echo !MANICMD! - !MANICMD! - ) - - REM Link Lua.exe - SET LINKCMD=link /nologo /out:lua.exe lua.%OBJEXT% lua%LUA_SVER%.lib - echo !LINKCMD! - !LINKCMD! - - REM handle manifest - if exist lua.exe.manifest ( - SET MANICMD=mt /nologo -manifest lua.exe.manifest -outputresource:lua.exe - echo !MANICMD! - !MANICMD! - ) - - REM Link Luac.exe - SET LINKCMD=link /nologo /out:luac.exe %FILES_OTH_O% %FILES_CORE_O% - echo !LINKCMD! - !LINKCMD! - - REM handle manifest - if exist luac.exe.manifest ( - SET MANICMD=mt /nologo -manifest luac.exe.manifest -outputresource:luac.exe - echo !MANICMD! - !MANICMD! - ) -) - -CD %CURDIR% - -REM **************************** -REM * Finished building * -REM **************************** - -echo. -echo Build completed. -goto :EXITOK - -:EXITOK -exit /B 0 - -:EXITERROR -echo For help try; etc\%BATCHNAME% /help -exit /B 1 diff --git a/.travis.yml b/.travis.yml index fd4ce5d..04d46ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,18 +3,16 @@ language: c sudo: false env: - global: - - LUAROCKS=2.3.0 - matrix: - - LUA=lua5.1 - - LUA=lua5.2 - - LUA=lua5.3 - - LUA=luajit + - LUA="lua 5.1" + - LUA="lua 5.2" + - LUA="lua 5.3" + - LUA="luajit 2.0" before_install: - - source .travis/setenv_lua.sh - - pip install --user cpp-coveralls - - luarocks install Lua-cURL --server=https://luarocks.org/dev + - pip install --user cpp-coveralls hererocks + - hererocks env --$LUA --luarocks latest + - export PATH="$PWD/env/bin:$PATH" + - luarocks install Lua-cURL --server=https://luarocks.org/dev - luarocks install lua-path - luarocks install lua-cjson - luarocks install luacov diff --git a/.travis/platform.sh b/.travis/platform.sh deleted file mode 100644 index 7259a7d..0000000 --- a/.travis/platform.sh +++ /dev/null @@ -1,15 +0,0 @@ -if [ -z "${PLATFORM:-}" ]; then - PLATFORM=$TRAVIS_OS_NAME; -fi - -if [ "$PLATFORM" == "osx" ]; then - PLATFORM="macosx"; -fi - -if [ -z "$PLATFORM" ]; then - if [ "$(uname)" == "Linux" ]; then - PLATFORM="linux"; - else - PLATFORM="macosx"; - fi; -fi diff --git a/.travis/setenv_lua.sh b/.travis/setenv_lua.sh deleted file mode 100644 index 8d8c825..0000000 --- a/.travis/setenv_lua.sh +++ /dev/null @@ -1,3 +0,0 @@ -export PATH=${PATH}:$HOME/.lua:$HOME/.local/bin:${TRAVIS_BUILD_DIR}/install/luarocks/bin -bash .travis/setup_lua.sh -eval `$HOME/.lua/luarocks path` diff --git a/.travis/setup_lua.sh b/.travis/setup_lua.sh deleted file mode 100644 index 6dcc0c6..0000000 --- a/.travis/setup_lua.sh +++ /dev/null @@ -1,122 +0,0 @@ -#! /bin/bash - -# A script for setting up environment for travis-ci testing. -# Sets up Lua and Luarocks. -# LUA must be "lua5.1", "lua5.2" or "luajit". -# luajit2.0 - master v2.0 -# luajit2.1 - master v2.1 - -set -eufo pipefail - -LUAJIT_VERSION="2.0.4" -LUAJIT_BASE="LuaJIT-$LUAJIT_VERSION" - -source .travis/platform.sh - -LUA_HOME_DIR=$TRAVIS_BUILD_DIR/install/lua - -LR_HOME_DIR=$TRAVIS_BUILD_DIR/install/luarocks - -mkdir $HOME/.lua - -LUAJIT="no" - -if [ "$PLATFORM" == "macosx" ]; then - if [ "$LUA" == "luajit" ]; then - LUAJIT="yes"; - fi - if [ "$LUA" == "luajit2.0" ]; then - LUAJIT="yes"; - fi - if [ "$LUA" == "luajit2.1" ]; then - LUAJIT="yes"; - fi; -elif [ "$(expr substr $LUA 1 6)" == "luajit" ]; then - LUAJIT="yes"; -fi - -mkdir -p "$LUA_HOME_DIR" - -if [ "$LUAJIT" == "yes" ]; then - - if [ "$LUA" == "luajit" ]; then - curl --location https://github.com/LuaJIT/LuaJIT/archive/v$LUAJIT_VERSION.tar.gz | tar xz; - else - git clone https://github.com/LuaJIT/LuaJIT.git $LUAJIT_BASE; - fi - - cd $LUAJIT_BASE - - if [ "$LUA" == "luajit2.1" ]; then - git checkout v2.1; - # force the INSTALL_TNAME to be luajit - perl -i -pe 's/INSTALL_TNAME=.+/INSTALL_TNAME= luajit/' Makefile - fi - - make && make install PREFIX="$LUA_HOME_DIR" - - ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/luajit - ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/lua; - -else - - if [ "$LUA" == "lua5.1" ]; then - curl http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz - cd lua-5.1.5; - elif [ "$LUA" == "lua5.2" ]; then - curl http://www.lua.org/ftp/lua-5.2.4.tar.gz | tar xz - cd lua-5.2.4; - elif [ "$LUA" == "lua5.3" ]; then - curl http://www.lua.org/ftp/lua-5.3.2.tar.gz | tar xz - cd lua-5.3.2; - fi - - # Build Lua without backwards compatibility for testing - perl -i -pe 's/-DLUA_COMPAT_(ALL|5_2)//' src/Makefile - make $PLATFORM - make INSTALL_TOP="$LUA_HOME_DIR" install; - - ln -s $LUA_HOME_DIR/bin/lua $HOME/.lua/lua - ln -s $LUA_HOME_DIR/bin/luac $HOME/.lua/luac; - -fi - -cd $TRAVIS_BUILD_DIR - -lua -v - -LUAROCKS_BASE=luarocks-$LUAROCKS - -curl --location http://luarocks.org/releases/$LUAROCKS_BASE.tar.gz | tar xz - -cd $LUAROCKS_BASE - -if [ "$LUA" == "luajit" ]; then - ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR"; -elif [ "$LUA" == "luajit2.0" ]; then - ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR"; -elif [ "$LUA" == "luajit2.1" ]; then - ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.1" --prefix="$LR_HOME_DIR"; -else - ./configure --with-lua="$LUA_HOME_DIR" --prefix="$LR_HOME_DIR" -fi - -make build && make install - -ln -s $LR_HOME_DIR/bin/luarocks $HOME/.lua/luarocks - -cd $TRAVIS_BUILD_DIR - -luarocks --version - -rm -rf $LUAROCKS_BASE - -if [ "$LUAJIT" == "yes" ]; then - rm -rf $LUAJIT_BASE; -elif [ "$LUA" == "lua5.1" ]; then - rm -rf lua-5.1.5; -elif [ "$LUA" == "lua5.2" ]; then - rm -rf lua-5.2.4; -elif [ "$LUA" == "lua5.3" ]; then - rm -rf lua-5.3.2; -fi diff --git a/appveyor.yml b/appveyor.yml index a060db0..29e6442 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,44 +7,23 @@ version: 0.0.1.{build}-test shallow_clone: true environment: - LUAROCKS_VER: 2.3.0 matrix: - - LUA_VER: 5.1.5 - - LUA_VER: 5.2.4 - NOCOMPAT: true - - LUA_VER: 5.3.2 # Lua 5.3.2 with compatibility flags disabled. - NOCOMPAT: true - - LJ_VER: 2.0.4 - - LJ_VER: 2.1 - -matrix: - allow_failures: - - configuration: MinGW - platform: x64 + - LUA: "lua 5.1" + - LUA: "lua 5.2 --compat none" + - LUA: "lua 5.3 --compat none" + - LUA: "luajit 2.0" + - LUA: "luajit 2.1" # Abuse this section so we can have a matrix with different Compiler versions configuration: - - 2015 - - MinGW - -platform: - - x86 - - x64 - -cache: - - c:\lua -> appveyor.yml - - c:\external -> appveyor.yml - -# Skip unsupported combinations (ie, VS2008 for x64 is not supported) -init: -- if "%platform%" EQU "x64" ( for %%a in (2008 2010 MinGW) do ( if "%Configuration%"=="%%a" (echo "Skipping unsupported configuration" && exit /b 1 ) ) ) - + - mingw + - vs_32 + - vs_64 install: -# Make compiler command line tools available -- call .appveyor\set_compiler_env.bat -# Setup Lua development/build environment -- call .appveyor\install.bat + - set PATH=%CD%\env\bin;C:\Python27\Scripts;C:\MinGW\bin;%PATH% + - pip install hererocks + - hererocks env --%LUA% --target %configuration% --luarocks latest before_build: # @todo @@ -57,8 +36,7 @@ before_test: test_script: - echo "Testing..." -- cd %APPVEYOR_BUILD_FOLDER%\tests -- lua test.lua +- lua tests/test.lua after_test: # @todo