From d8b2da264715ddd16d0f3f3e298088ad94d5ffdb Mon Sep 17 00:00:00 2001 From: ThePhD Date: Fri, 29 Dec 2017 18:47:48 -0500 Subject: [PATCH] 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 --- .travis.old.yml | 321 ++++++++++++++++++ .travis.yml | 334 +++---------------- Dockerfile | 45 +++ cmake/Modules/FindLua/set_version_vars.cmake | 21 ++ cmake/Modules/LuaVanillaBuild.cmake | 2 +- .new.travis.yml => docker-compose.yml | 34 +- scripts/preparation.linux.sh | 10 +- scripts/run.linux.sh | 12 + 8 files changed, 461 insertions(+), 318 deletions(-) create mode 100644 .travis.old.yml create mode 100644 Dockerfile rename .new.travis.yml => docker-compose.yml (71%) create mode 100644 scripts/run.linux.sh diff --git a/.travis.old.yml b/.travis.old.yml new file mode 100644 index 00000000..26c5bacc --- /dev/null +++ b/.travis.old.yml @@ -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 diff --git a/.travis.yml b/.travis.yml index 26c5bacc..9c5d4b88 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..bafaeed5 --- /dev/null +++ b/Dockerfile @@ -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"] diff --git a/cmake/Modules/FindLua/set_version_vars.cmake b/cmake/Modules/FindLua/set_version_vars.cmake index d60016dd..b6790a0a 100644 --- a/cmake/Modules/FindLua/set_version_vars.cmake +++ b/cmake/Modules/FindLua/set_version_vars.cmake @@ -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. diff --git a/cmake/Modules/LuaVanillaBuild.cmake b/cmake/Modules/LuaVanillaBuild.cmake index ae014673..515c13ed 100644 --- a/cmake/Modules/LuaVanillaBuild.cmake +++ b/cmake/Modules/LuaVanillaBuild.cmake @@ -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...") diff --git a/.new.travis.yml b/docker-compose.yml similarity index 71% rename from .new.travis.yml rename to docker-compose.yml index acf43527..0d0a2898 100644 --- a/.new.travis.yml +++ b/docker-compose.yml @@ -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 diff --git a/scripts/preparation.linux.sh b/scripts/preparation.linux.sh index 78a32b57..5eea849a 100644 --- a/scripts/preparation.linux.sh +++ b/scripts/preparation.linux.sh @@ -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 diff --git a/scripts/run.linux.sh b/scripts/run.linux.sh new file mode 100644 index 00000000..05d88292 --- /dev/null +++ b/scripts/run.linux.sh @@ -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 ..