aboutsummaryrefslogtreecommitdiffstats
path: root/deps/sol2/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'deps/sol2/scripts')
-rw-r--r--deps/sol2/scripts/build.linux.sh82
-rw-r--r--deps/sol2/scripts/preparation.linux.sh144
-rw-r--r--deps/sol2/scripts/preparation.osx.sh32
-rw-r--r--deps/sol2/scripts/push.linux.sh78
-rw-r--r--deps/sol2/scripts/run.linux.sh132
-rw-r--r--deps/sol2/scripts/run.osx.sh44
6 files changed, 512 insertions, 0 deletions
diff --git a/deps/sol2/scripts/build.linux.sh b/deps/sol2/scripts/build.linux.sh
new file mode 100644
index 0000000..90d8876
--- /dev/null
+++ b/deps/sol2/scripts/build.linux.sh
@@ -0,0 +1,82 @@
+#!/usr/bin/env zsh
+
+# # # # sol3
+# The MIT License (MIT)
+#
+# Copyright (c) 2013-2019 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.
+
+
+declare -a gcc_versions
+gcc_versions=(
+# 7
+# 8
+)
+declare -r gcc_versions
+
+declare -a llvm_versions
+llvm_versions=(
+ 3.9.1
+ 4.0.0
+# 5.0.2
+# 6.0.1
+# 7.0.1
+# 8.0.0
+)
+declare -r llvm_versions
+
+build_generic=false
+
+if [ -z "${DOCKER_USERNAME}" ]
+then
+ docker_username=
+else
+ docker_username=${DOCKER_USERNAME}/
+fi
+if [ -z "${SOL2_CI}"]
+then
+ SOL2_CI=true
+fi
+
+echo "====== ======= ======= ======= ======"
+echo "====== Building All Docker Images ======"
+echo "====== ======= ======= ======= ======"
+echo "For: ${DOCKER_USERNAME} from Dockerfile in ${SOL2_DIR}\n"
+
+for i in $gcc_versions; do
+ GCC_VERSION=$i
+ unset LLVM_VERSION
+ echo "====== Building Docker Image: ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} ======="
+ docker build --tag ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} --build-arg GCC_VERSION=${GCC_VERSION} --build-arg LLVM_VERSION=${LLVM_VERSION} --build-arg SOL2_CI=${SOL2_CI} "${SOL2_DIR}"
+done
+
+for i in $llvm_versions; do
+ LLVM_VERSION=$i
+ unset GCC_VERSION
+ echo "====== Building Docker Image: ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} ======="
+ docker build --tag ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} --build-arg GCC_VERSION=${GCC_VERSION} --build-arg LLVM_VERSION=${LLVM_VERSION} --build-arg SOL2_CI=${SOL2_CI} "${SOL2_DIR}"
+done
+
+if [ "${build_generic}" = true ]
+then
+ unset LLVM_VERSION
+ unset GCC_VERSION
+ echo "====== Building Docker Image: ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} ======="
+ docker build --tag ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} --build-arg GCC_VERSION=${GCC_VERSION} --build-arg LLVM_VERSION=${LLVM_VERSION} --build-arg SOL2_CI=${SOL2_CI} "${SOL2_DIR}"
+fi
diff --git a/deps/sol2/scripts/preparation.linux.sh b/deps/sol2/scripts/preparation.linux.sh
new file mode 100644
index 0000000..4e1033a
--- /dev/null
+++ b/deps/sol2/scripts/preparation.linux.sh
@@ -0,0 +1,144 @@
+#!/usr/bin/env zsh
+
+# # # # sol3
+# The MIT License (MIT)
+#
+# Copyright (c) 2013-2019 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.
+
+top_level_dir="$(pwd)"
+
+mkdir -p build-sol2
+cd build-sol2
+
+build_dir="$(pwd)"
+
+echo "#\!/usr/bin/env zsh\n\n" > "sol2.compiler.vars"
+
+# # Initial and necessary installations
+apt-get update && apt-get -y install lsb-release ninja-build libreadline7 libreadline-dev lib32readline7 lib32readline-dev python3 wget curl libcurl4 cmake git
+
+# # LLVM and GCC updates
+# Grab LLVM or GCC
+# if we need it
+# defining both is probably an expotentially terrible idea
+if [ "${LLVM_VERSION}" ]
+then
+ # get and use LLVM
+ version_nums=(${=LLVM_VERSION//./ })
+ major=$version_nums[1]
+ minor=$version_nums[2]
+ revision=$version_nums[3]
+ download_llvm=true
+ image_version=$(lsb_release -rs)
+ download_version=${image_version}
+ apt_version=${major}.${minor}
+ if [ ${major} -le 6 ];
+ then
+ download_llvm=true
+ download_version=16.04
+ elif [ ${major} -eq 4 ]
+ then
+ download_llvm=true
+ download_version=16.04
+ elif [ ${major} -eq 3 ]
+ then
+ download_llvm=false
+ if [ ${minor} -lt 5 ]
+ then
+ download_llvm=true
+ download_version=14.04
+ elif [ ${minor} -lt 10 ]
+ then
+ download_llvm=true
+ download_version=16.04
+ fi
+ fi
+ if [ ${download_llvm} = true ]
+ then
+ export LLVM_ARCHIVE_PATH=${build_dir}/clang-llvm.tar.xz
+ export CLANG_PREFIX=${build_dir}/clang-llvm-${LLVM_VERSION}
+ export PATH=$CLANG_PREFIX/bin:$PATH
+ export LD_LIBRARY_PATH=$CLANG_PREFIX/lib:$LD_LIBRARY_PATH
+ echo "export LLVM_ARCHIVE_PATH=${build_dir}/clang+llvm.tar.xz\nexport CLANG_PREFIX=${build_dir}/clang-$LLVM_VERSION\nexport PATH=$CLANG_PREFIX/bin:$PATH\nexport LD_LIBRARY_PATH=$CLANG_PREFIX/lib:$LD_LIBRARY_PATH\n" >> "sol2.compiler.vars"
+
+ apt-get -y install xz-utils clang
+ #if [${major} -le 5]
+ #then
+ # wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-${download_version}.tar.xz -O ${LLVM_ARCHIVE_PATH}
+ # http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-${download_version}.tar.xz
+ #else
+ # wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-${download_version}.tar.xz -O ${LLVM_ARCHIVE_PATH}
+ #fi
+ wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-${download_version}.tar.xz -O ${LLVM_ARCHIVE_PATH}
+ mkdir -p "${CLANG_PREFIX}"
+ tar xf "${LLVM_ARCHIVE_PATH}" -C "${CLANG_PREFIX}" --strip-components 1
+ if [ -f "${CLANG_PREFIX}/bin/clang" ]
+ then
+ export CC="${CLANG_PREFIX}/bin/clang"
+ else
+ export CC="${CLANG_PREFIX}/bin/clang-${major}"
+ fi
+ if [ -f "${CLANG_PREFIX}/bin/clang++-${major}" ]
+ then
+ export CXX="${CLANG_PREFIX}/bin/clang++-${major}"
+ else
+ export CXX="${CLANG_PREFIX}/bin/clang++"
+ fi
+ else
+ apt-get -y install clang-${apt_version}
+ export CC=clang-${apt_version}
+ export CXX=clang++-${apt_version}
+ fi
+elif [ "${GCC_VERSION}" ]
+then
+ # get and use GCC version that we desire
+ # python-software-properties is no longer needed in 18.04, it
+ # comes with software-properties-common
+ apt-get -y install software-properties-common
+ add-apt-repository -y ppa:ubuntu-toolchain-r/test
+ apt-get -y update
+ apt-get -y dist-upgrade
+ apt-get -y install gcc-${GCC_VERSION} g++-${GCC_VERSION} gcc-${GCC_VERSION}-multilib g++-${GCC_VERSION}-multilib
+ #update-alternatives --remove-all gcc
+ #update-alternatives --remove-all g++
+ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_VERSION} 60 --slave /usr/bin/g++ g++ /usr/bin/g++-${GCC_VERSION}
+ update-alternatives --config gcc
+ export CC=gcc-${GCC_VERSION}
+ export CXX=g++-${GCC_VERSION}
+else
+ apt-get -y install build-essential gcc-multilib g++-multilib
+ export CC=cc
+ export CXX=c++
+fi
+
+apt-get -y autoremove
+apt-get -y clean
+apt-get -y autoclean
+
+# show the tool and compiler versions we're using
+echo "=== Compiler and tool variables ==="
+ninja --version
+cmake --version
+${CC} --version
+${CXX} --version
+
+echo "export CC=$CC\nexport CXX=$CXX\n" >> "sol2.compiler.vars"
+
+cd "${top_level_dir}"
diff --git a/deps/sol2/scripts/preparation.osx.sh b/deps/sol2/scripts/preparation.osx.sh
new file mode 100644
index 0000000..51af9dd
--- /dev/null
+++ b/deps/sol2/scripts/preparation.osx.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env zsh
+
+# # # # sol3
+# The MIT License (MIT)
+#
+# Copyright (c) 2013-2019 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.
+
+# This script installs and configures the dependencies for the project
+
+brew update > /dev/null
+brew install zsh || brew upgrade zsh || true
+brew install git || brew upgrade git || true
+brew install cmake || brew upgrade cmake || true
+brew install python3 || brew upgrade python3 || true
+brew install ninja || brew upgrade ninja || true
diff --git a/deps/sol2/scripts/push.linux.sh b/deps/sol2/scripts/push.linux.sh
new file mode 100644
index 0000000..198ec9a
--- /dev/null
+++ b/deps/sol2/scripts/push.linux.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env zsh
+
+# # # # sol3
+# The MIT License (MIT)
+#
+# Copyright (c) 2013-2019 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.
+
+
+CI=true
+declare -a gcc_versions
+gcc_versions=(
+# 7
+# 8
+)
+declare -r gcc_versions
+
+declare -a llvm_versions
+llvm_versions=(
+ 3.9.1
+ 4.0.0
+# 5.0.2
+# 6.0.1
+# 7.0.1
+# 8.0.0
+)
+declare -r llvm_versions
+
+push_generic=false
+
+if [ -z "${DOCKER_USERNAME}" ]
+then
+ docker_username=
+else
+ docker_username=${DOCKER_USERNAME}/
+fi
+
+echo "====== ======= ======= ======= ======"
+echo "====== Pushing All Docker Images ======"
+echo "====== ======= ======= ======= ======"
+
+for i in $gcc_versions; do
+ GCC_VERSION=$i
+ unset LLVM_VERSION
+ echo "====== Pushing Docker Image: ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} ======="
+ docker push ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION}
+done
+
+for i in $llvm_versions; do
+ LLVM_VERSION=$i
+ unset GCC_VERSION
+ echo "====== Pushing Docker Image: ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} ======="
+ docker push ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION}
+done
+
+if [ "${push_generic}" = true ]
+then
+ unset LLVM_VERSION
+ unset GCC_VERSION
+ echo "====== Pushing Docker Image: ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION} ======="
+ docker push ${docker_username}sol2:gcc-${GCC_VERSION}_llvm-${LLVM_VERSION}
+fi
diff --git a/deps/sol2/scripts/run.linux.sh b/deps/sol2/scripts/run.linux.sh
new file mode 100644
index 0000000..f725a2c
--- /dev/null
+++ b/deps/sol2/scripts/run.linux.sh
@@ -0,0 +1,132 @@
+#!/usr/bin/env zsh
+
+# # # # sol3
+# The MIT License (MIT)
+#
+# Copyright (c) 2013-2019 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.
+
+# # This script runs the actual project
+
+echo -e "travis_fold:start:build_preparation\r"
+ if [ -z "${SOL2_DIR}" ]
+ then
+ if [ "${SOL2_CI}" = true ]
+ then
+ export SOL2_DIR=~/sol2
+ else
+ export SOL2_DIR=../..
+ fi
+ fi
+
+ if [ -z "${SOL2_LUA_VERSION}" ]
+ then
+ export SOL2_LUA_VERSION=5.3.5
+ fi
+
+ if [ -z "${SOL2_PLATFORM}" ]
+ then
+ export SOL2_PLATFORM=x64
+ fi
+
+ mkdir -p build-sol2
+ cd build-sol2
+
+ build_dir=$(pwd)
+
+ if [ -f "sol2.compiler.vars" ]
+ then
+ source ./sol2.compiler.vars
+ fi
+
+ if [ ! -z "${CC}" ]
+ then
+ build_type_cc="-DCMAKE_CXX_COMPILER=${CC}"
+ else
+ build_type_cc=
+ fi
+
+ if [ ! -z "${CXX}" ]
+ then
+ build_type_cxx="-DCMAKE_CXX_COMPILER=${CXX}"
+ else
+ build_type_cxx=
+ fi
+
+ SOL2_CMAKE_DEFINES=("-DSOL2_LUA_VERSION=${SOL2_LUA_VERSION}")
+ SOL2_CMAKE_DEFINES+=("-DSOL2_PLATFORM=${SOL2_PLATFORM}")
+ SOL2_CMAKE_DEFINES+=('-DSOL2_CI=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_BUILD_LUA=ON')
+ SOL2_CMAKE_DEFINES+=('-DBUILD_LUA_AS_DLL=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_TESTS=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_EXAMPLES=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_TESTS_EXAMPLES=ON')
+ if [[ ! -z ${SOL2_TEST_SINGLE} ]]
+ then
+ SOL2_CMAKE_DEFINES+=('-DSOL2_GENERATE_SINGLE=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_EXAMPLES_SINGLE=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_EXAMPLES_SINGLE_GENERATED=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_TESTS_SINGLE=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_TESTS_SINGLE_GENERATED=ON')
+ fi
+ if [[ ! -z ${SOL2_TEST_INTEROP} ]]
+ then
+ SOL2_CMAKE_DEFINES+=('-DSOL2_INTEROP_EXAMPLES=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_TESTS_INTEROP_EXAMPLES=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_DYNAMIC_LOADING_EXAMPLES=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_TESTS_DYNAMIC_LOADING_EXAMPLES=ON')
+ if [[ ! -z ${SOL2_TEST_SINGLE} ]]
+ then
+ SOL2_CMAKE_DEFINES+=('-DSOL2_INTEROP_EXAMPLES_SINGLE=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_INTEROP_EXAMPLES_SINGLE_GENERATED=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_DYNAMIC_LOADING_EXAMPLES_SINGLE=ON')
+ SOL2_CMAKE_DEFINES+=('-DSOL2_DYNAMIC_LOADING_EXAMPLES_SINGLE_GENERATED=ON')
+ fi
+ fi
+
+ mkdir -p Debug Release
+
+ echo "=== Compiler and tool variables ==="
+ ninja --version
+ cmake --version
+ echo sol2 source dir : "${SOL2_DIR}"
+ echo build_type_cc : "${build_type_cc}"
+ echo build_type_cxx : "${build_type_cxx}"
+ echo cmake defines : "${SOL2_CMAKE_DEFINES[@]}"
+echo -e "travis_fold:end:build_preparation\r"
+
+echo -e "travis_fold:start:build.debug\r"
+ cd Debug
+ cmake "${SOL2_DIR}" -G Ninja -DCMAKE_BUILD_TYPE=Debug ${build_type_cc} ${build_type_cxx} "${SOL2_CMAKE_DEFINES[@]}"
+ cmake --build . --config Debug
+echo -e "travis_fold:end:build.debug\r"
+echo -e "travis_fold:start:test.debug\r"
+ ctest --build-config Debug --output-on-failure
+ cd ..
+echo -e "travis_fold:end:test.debug\r"
+
+echo -e "travis_fold:start:build.release\r"
+ cd Release
+ cmake "${SOL2_DIR}" -G Ninja -DCMAKE_BUILD_TYPE=Release ${build_type_cc} ${build_type_cxx} "${SOL2_CMAKE_DEFINES[@]}"
+ cmake --build . --config Release
+echo -e "travis_fold:end:build.release\r"
+echo -e "travis_fold:start:test.release\r"
+ ctest --build-config Release --output-on-failure
+ cd ..
+echo -e "travis_fold:end:test.release\r"
diff --git a/deps/sol2/scripts/run.osx.sh b/deps/sol2/scripts/run.osx.sh
new file mode 100644
index 0000000..ba40b55
--- /dev/null
+++ b/deps/sol2/scripts/run.osx.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env zsh
+
+# # # # sol3
+# The MIT License (MIT)
+#
+# Copyright (c) 2013-2019 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.
+
+export SOL2_DIR=${TRAVIS_BUILD_DIR}
+mkdir -p build-sol2/Debug
+mkdir -p build-sol2/Release
+cd build-sol2
+
+echo "=== Compiler and tool variables ==="
+ninja --version
+cmake --version
+
+cd Debug
+ cmake "${SOL2_DIR}" -G Xcode -DCMAKE_BUILD_TYPE=Debug -DSOL2_LUA_VERSION="${SOL2_LUA_VERSION}" -DSOL2_CI=ON -DSOL2_PLATFORM=${SOL2_PLATFORM} -DSOL2_BUILD_LUA=ON -DBUILD_LUA_AS_DLL=OFF -DSOL2_TESTS=ON -DSOL2_EXAMPLES=ON -DSOL2_GENERATE_SINGLE=ON -DSOL2_TESTS_EXAMPLES=ON -DSOL2_EXAMPLES_SINGLE_GENERATED=ON -DSOL2_TESTS_SINGLE_GENERATED=ON
+ cmake --build . --config Debug
+ ctest --build-config Debug --output-on-failure
+cd ..
+
+cd Release
+ cmake "${SOL2_DIR}" -G Xcode -DCMAKE_BUILD_TYPE=Release -DSOL2_LUA_VERSION="${SOL2_LUA_VERSION}" -DSOL2_CI=ON -DSOL2_PLATFORM=${SOL2_PLATFORM} -DSOL2_BUILD_LUA=ON -DBUILD_LUA_AS_DLL=OFF -DSOL2_TESTS=ON -DSOL2_EXAMPLES=ON -DSOL2_GENERATE_SINGLE=ON -DSOL2_TESTS_EXAMPLES=ON -DSOL2_EXAMPLES_SINGLE=ON -DSOL2_TESTS_SINGLE_GENERATED=ON
+ cmake --build . --config Release
+ ctest --build-config Release --output-on-failure
+cd ..