attempt to use new travis build based on docker + Cmake for consistency, also so we can avoid the nightmare of figuring out travis-CI dependencies and their build image mess with Lua

This commit is contained in:
ThePhD 2017-12-29 18:47:48 -05:00
parent c5defa6d07
commit d8b2da2647
8 changed files with 461 additions and 318 deletions

321
.travis.old.yml Normal file
View File

@ -0,0 +1,321 @@
# # # # sol2
# The MIT License (MIT)
#
# Copyright (c) 2013-2017 Rapptz, ThePhD, and contributors
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
language: cpp
sudo: required
dist: trusty
git:
depth: 5
before_install:
- source ./scripts/preparation.osx.sh
install:
- install_os_deps
script:
- echo "Configuration info:"
- export_compiler_vars
- ninja --version
- python3 --version
- python3 bootstrap.py --ci && ninja
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/b864d553270a069d26c8
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always
email:
on_success: change
on_failure: change
matrix:
fast_finish: true
include:
# linux machines
# gcc
- os: linux
env: COMPILER=g++-4.9 LUA_VERSION=lua52
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
# gcc-5
- os: linux
env: COMPILER=g++-5 LUA_VERSION=lua52
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- g++-5
- ninja-build
- liblua5.2-dev
- python3
# gcc-5
- os: linux
env: COMPILER=g++-5 LUA_VERSION=luajit51
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- g++-5
- ninja-build
- libluajit-5.1-dev
# gcc-5:i386
- os: linux
env: COMPILER=g++-5 LUA_VERSION=luajit51:i386
compiler: gcc
install:
- sudo dpkg --add-architecture i386
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- g++-5
- ninja-build
- libluajit-5.1-dev
- libluajit-5.1-dev:i386
- libc6:i386
- libncurses5:i386
- libstdc++6:i386
- gcc-5-multilib
- g++-5-multilib
- linux-libc-dev:i386
- python3
# clang
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.6.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.7.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.8.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.9.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=luajit51
- LLVM_VERSION=4.0.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- libluajit-5.1-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=4.0.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: osx
osx_image: xcode7.3
compiler: gcc
env: COMPILER=g++-4.9 LUA_VERSION=lua53
# - os: osx
# osx_image: xcode8.3
# compiler: gcc
# env: COMPILER=g++-5 LUA_VERSION=luajit
#
# - os: osx
# osx_image: xcode8.3
# compiler: gcc
# env: COMPILER=g++-5 LUA_VERSION=lua52
#
# - os: osx
# osx_image: xcode8.3
# compiler: gcc
# env: COMPILER=g++-5 LUA_VERSION=lua53
#
- os: osx
osx_image: xcode8.3
compiler: clang
env: COMPILER=appleclang LUA_VERSION=lua53
allow_failures:
- os: osx

View File

@ -20,302 +20,60 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
language: cpp
sudo: required
dist: trusty
git:
depth: 5
language: cpp
before_install:
- source ./scripts/preparation.osx.sh
install:
- install_os_deps
- sudo apt install -y git docker.io zsh
- sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose
- docker-compose --version
script:
- echo "Configuration info:"
- export_compiler_vars
- ninja --version
- python3 --version
- python3 bootstrap.py --ci && ninja
- sudo docker-compose --build
- sudo docker-compose run -e "LUA_VERSION=$LUA_VERSION" -e "LLVM_VERSION=$LLVM_VERSION" -e "GCC_VERSION=$GCC_VERSION" test
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/b864d553270a069d26c8
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always
email:
on_success: change
on_failure: change
env:
# GCC 4.9.x, 5.x, 6.x, 7.x
- LUA_VERSION=5.3.4
GCC_VERSION=4.9
- LUA_VERSION=5.3.4
GCC_VERSION=5
- LUA_VERSION=5.3.4
GCC_VERSION=6
- LUA_VERSION=5.3.4
GCC_VERSION=7
# LLVM 3.6.x -> 5.0.x
- LUA_VERSION=5.3.4
LLVM_VERSION=3.6.2
- LUA_VERSION=5.3.4
LLVM_VERSION=3.7.1
- LUA_VERSION=5.3.4
LLVM_VERSION=3.8.1
- LUA_VERSION=5.3.4
LLVM_VERSION=3.9.0
- LUA_VERSION=5.3.4
LLVM_VERSION=4.0.1
- LUA_VERSION=5.3.4
LLVM_VERSION=5.0.1
# Lua Versions 5.2.4, 5.1.5, and maybe LuaJIT (as well as x86)
- LUA_VERSION=5.2.4
GCC_VERSION=7
- LUA_VERSION=5.1.5
GCC_VERSION=7
matrix:
fast_finish: true
include:
# linux machines
# gcc
- os: linux
env: COMPILER=g++-4.9 LUA_VERSION=lua52
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
# gcc-5
- os: linux
env: COMPILER=g++-5 LUA_VERSION=lua52
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- g++-5
- ninja-build
- liblua5.2-dev
- python3
# gcc-5
- os: linux
env: COMPILER=g++-5 LUA_VERSION=luajit51
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- g++-5
- ninja-build
- libluajit-5.1-dev
# gcc-5:i386
- os: linux
env: COMPILER=g++-5 LUA_VERSION=luajit51:i386
compiler: gcc
install:
- sudo dpkg --add-architecture i386
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- g++-5
- ninja-build
- libluajit-5.1-dev
- libluajit-5.1-dev:i386
- libc6:i386
- libncurses5:i386
- libstdc++6:i386
- gcc-5-multilib
- g++-5-multilib
- linux-libc-dev:i386
- python3
# clang
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.6.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.7.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.8.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=3.9.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: linux
env:
- LUA_VERSION=luajit51
- LLVM_VERSION=4.0.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- libluajit-5.1-dev
- python3
- os: linux
env:
- LUA_VERSION=lua52
- LLVM_VERSION=4.0.0
- LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- COMPILER=clang++
- CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- CXXFLAGS=-lc++
- PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
before_install:
- wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- mkdir $HOME/clang-$LLVM_VERSION
- tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
- export PATH=$HOME/clang+llvm/bin:$PATH
- source ./scripts/preparation.osx.sh
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.9
- g++-4.9
- ninja-build
- liblua5.2-dev
- python3
- os: osx
osx_image: xcode7.3
compiler: gcc
env: COMPILER=g++-4.9 LUA_VERSION=lua53
# - os: osx
# osx_image: xcode8.3
# compiler: gcc
# env: COMPILER=g++-5 LUA_VERSION=luajit
#
# - os: osx
# osx_image: xcode8.3
# compiler: gcc
# env: COMPILER=g++-5 LUA_VERSION=lua52
#
# - os: osx
# osx_image: xcode8.3
# compiler: gcc
# env: COMPILER=g++-5 LUA_VERSION=lua53
#
- os: osx
osx_image: xcode8.3
compiler: clang
env: COMPILER=appleclang LUA_VERSION=lua53
allow_failures:
- os: osx
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/b864d553270a069d26c8
on_success: change
on_failure: always
on_start: never
email:
on_success: change
on_failure: change
on_start: never

45
Dockerfile Normal file
View File

@ -0,0 +1,45 @@
# # # # sol2
# The MIT License (MIT)
#
# Copyright (c) 2013-2017 Rapptz, ThePhD, and contributors
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Start from the ubuntu:xenial image
FROM ubuntu:xenial
# Everything from our current directory (repo toplevel in travis-ci)
# should be copied into our container at the top-level sol2 directory
ADD . /sol2
#VOLUME /sol2
# We want our working directory to be the toplevel
WORKDIR /
# RUN is how you write to the image you've pulled down
# RUN actions are "committed" to the image, and everything will
# start from the base after all run commands are executed
RUN apt update
RUN apt -y install sudo zsh
RUN mkdir -p build-sol2/Debug build-sol2/Release
RUN ls -lah
RUN ./sol2/scripts/preparation.linux.sh
# CMD/ENTRYPOINT is different from RUN
# these are done on a per-instantiation and essentially describe
# the DEFAULT behavior of this container when its started, not what state it
# gets "saved" in...
# it only runs the last CMD/ENTRYPOINT as the default behavior:
# multiple CMDs will not be respected
CMD ["/usr/bin/env", "zsh", "-c", "./sol2/scripts/run.linux.sh"]

View File

@ -1,3 +1,24 @@
# # # # sol2
# The MIT License (MIT)
#
# Copyright (c) 2013-2017 Rapptz, ThePhD, and contributors
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Uses the Lua version and calculates the names of the include directories and library
# name accordingly.

View File

@ -132,7 +132,7 @@ elseif (LUA_VERSION MATCHES "([0-9]+)\\.([0-9]+)")
set(LUA_VANILLA_VERSION ${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.0)
endif()
else()
message(FATAL "Cannot deduce the proper Lua version from ${LUA_VERSION}")
message(FATAL_ERROR "Cannot deduce the proper Lua version from ${LUA_VERSION}")
endif()
message(STATUS "Selecting PUC-RIO Lua ${LUA_VANILLA_VERSION} from '${LUA_VERSION}' and building a ${LUA_BUILD_LIBRARY_TYPE} library...")

View File

@ -20,28 +20,14 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
sudo: required
language: cpp
before_install:
- sudo apt install -y python3 build-essential git docker.io
- sudo docker pull ubuntu
- sudo docker run -d ubuntu
- sudo docker ps -a
script:
- sudo docker run -it ubuntu
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/b864d553270a069d26c8
on_success: change
on_failure: always
on_start: never
email:
on_success: change
on_failure: change
on_start: never
version: "3"
services:
test:
build: .
volumes:
- .:/sol2
environment:
- LUA_VERSION
- GCC_VERSION
- LLVM_VERSION

View File

@ -24,8 +24,8 @@
# # Initial and necessary installations
sudo apt update
sudo apt dist-upgrade
sudo apt install build-essential ninja-build libreadline6 libreadline6-dev python3 zsh wget curl libcurl3 openssl libexpat1 libexpat1-dev cmake
sudo apt -y dist-upgrade
sudo apt -y install build-essential zsh ninja-build libreadline6 libreadline6-dev python3 zsh wget curl libcurl3 openssl libexpat1 libexpat1-dev cmake git
# # CMake Installation (from script)
# This is only necessary if we need cmake of a better version than what's available on the system
@ -66,9 +66,9 @@ elif [ "$GCC_VERSION" ]
then
# get and use GCC version that we desire
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install gcc-$GCC_VERSION g++-$GCC_VERSION
sudo apt update
sudo apt dist-upgrade
sudo apt install gcc-$GCC_VERSION g++-$GCC_VERSION
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-$GCC_VERSION 60 --slave /usr/bin/g++ g++ /usr/bin/g++-$GCC_VERSION
sudo update-alternatives --config gcc
export CC=gcc

12
scripts/run.linux.sh Normal file
View File

@ -0,0 +1,12 @@
cd build-sol2
cd Debug
cmake ../../sol2 -G Ninja -DCMAKE_BUILD_TYPE=Debug -DLUA_VERSION="${LUA_VERSION}" -DBUILD_LUA=ON -DBUILD_LUA_AS_DLL=OFF -DTESTS=ON -DEXAMPLES=ON -DSINGLE=ON -DTESTS_EXAMPLES=ON -DTESTS_SINGLE=ON
cmake --build . --config Debug
ctest -C Debug
cd ..
cd Release
cmake ../../sol2 -G Ninja -DCMAKE_BUILD_TYPE=Release -DLUA_VERSION="${LUA_VERSION}" -DBUILD_LUA=ON -DBUILD_LUA_AS_DLL=OFF -DTESTS=ON -DEXAMPLES=ON -DSINGLE=ON -DTESTS_EXAMPLES=ON -DTESTS_SINGLE=ON
cmake --build . --config Release
ctest -C Release
cd ..