From 0410ad138f9609ddf45a3173b4e937a058ec2e60 Mon Sep 17 00:00:00 2001 From: Andy Alt Date: Sun, 2 Sep 2018 10:56:19 -0500 Subject: [PATCH] Travis:add tests for more gcc versions (#199) * travis:add tests for other versions of gcc * cmakelists.txt:add c++11 flag by default, doesn't build using gcc-5 the llvm toolchain is needed for the clang-6.0 test. Recently something changed on travis where adding the llvm toolchain by using the "addons" directive in .travis.yml fails because "allow-unauthenticated" isn't passed, which seems to be the only way to add the repo. Moving that to the script, and cleaning up the script a little. --- .travis-before_install.sh | 114 ++++++++++--------------- .travis.yml | 48 ++++------- source/g3d_viewer/CMakeLists.txt | 9 +- source/glest_map_editor/CMakeLists.txt | 10 +-- 4 files changed, 64 insertions(+), 117 deletions(-) diff --git a/.travis-before_install.sh b/.travis-before_install.sh index 1d84e4c37..92ad51aa2 100755 --- a/.travis-before_install.sh +++ b/.travis-before_install.sh @@ -2,74 +2,62 @@ # script for use with travis and on linux only # # Copyright (c) 2015-2016 MegaGlest Team under GNU GPL v3.0+ +# +# Copyright (c) 2018 +# modified for ZetaGlest +# ZetaGlest Team + +# This only needs to be changed when Travis updates the Ubuntu version +# it's using. +codename=trusty -export LANG=C -SCRIPTDIR="$(dirname "$(readlink -f "$0")")" -# ---------------------------------------------------------------------------- -# Load shared functions -. $SCRIPTDIR/mk/linux/mg_shared.sh -detect_system -# ---------------------------------------------------------------------------- Compiler_name="$1"; Compiler_version="$2" Compiler_version_grep="$(echo "$Compiler_version" | sed 's/\./\\./g')" set -x if [ "$Compiler_version" != "" ] && [ "$Compiler_version" != "default" ]; then - # UPDATE REPOS - sudo apt-get update -qq - sudo apt-get install -y -qq + # UPDATE REPOS + sudo apt-get update -qq + sudo apt-get install -y -qq - set +x - if [ "$Compiler_name" = "gcc" ]; then - VersionAvByDefault="$(apt-cache search ^g[c+][c+]-[0-9] | grep -v '[0-9]-[a-zA-Z]' | grep "^gcc-$Compiler_version_grep")" - elif [ "$Compiler_name" = "clang" ]; then - VersionAvByDefault="$(apt-cache search ^clang-[0-9] | grep -v '[0-9]-[a-zA-Z]' | grep "^clang-$Compiler_version_grep")" - fi - set -x - if [ "$VersionAvByDefault" = "" ]; then - if [ "$distribution" = "Ubuntu" ]; then - #if [ "$Compiler_name" = "gcc" ] || ( [ "$Compiler_name" = "clang" ] && [ "$codename" = "precise" ] ); then - if [ "$Compiler_name" = "gcc" ] || [ "$Compiler_name" = "clang" ]; then - # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test - sudo add-apt-repository --yes "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu ${codename} main" - #sudo add-apt-repository --yes "deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu ${codename} main" - fi - fi - if [ "$distribution" = "Ubuntu" ] || [ "$distribution" = "Debian" ]; then - if [ "$Compiler_name" = "clang" ]; then - # http://apt.llvm.org/ - sudo add-apt-repository --yes "deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename} main" - #sudo add-apt-repository --yes "deb-src http://apt.llvm.org/${codename}/ llvm-toolchain-${codename} main" - sudo add-apt-repository --yes "deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-${Compiler_version} main" - #sudo add-apt-repository --yes "deb-src http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-${Compiler_version} main" - - wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - - fi - fi - fi + set +x + if [ "$Compiler_name" = "gcc" ]; then + VersionAvByDefault="$(apt-cache search ^g[c+][c+]-[0-9] | grep -v '[0-9]-[a-zA-Z]' | grep "^gcc-$Compiler_version_grep")" + elif [ "$Compiler_name" = "clang" ]; then + VersionAvByDefault="$(apt-cache search ^clang-[0-9] | grep -v '[0-9]-[a-zA-Z]' | grep "^clang-$Compiler_version_grep")" + fi + set -x + if [ "$VersionAvByDefault" = "" ]; then + # ubuntu test toolchain needed for more recent version of gcc and clang-6.0 + sudo add-apt-repository --yes "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu ${codename} main" + fi fi if [ "$VersionAvByDefault" = "" ]; then - # UPDATE REPOS - sudo apt-get update -qq - #sudo apt-get upgrade -qq # UPGRADE SYSTEM TO LATEST PATCH LEVEL - sudo apt-get install -y -qq + # UPDATE REPOS + sudo apt-get update -qq + sudo apt-get install -y -qq fi set -e if [ "$Compiler_version" != "" ] && [ "$Compiler_version" != "default" ]; then - if [ "$Compiler_name" = "gcc" ]; then - set +ex - Gcc_AvSepGpp="$(apt-cache search ^g[c+][c+]-[0-9] | grep -v '[0-9]-[a-zA-Z]' | grep "^g++-$Compiler_version_grep")" - set -ex - if [ "$Gcc_AvSepGpp" = "" ]; then - sudo apt-get --allow-unauthenticated install -qq --force-yes gcc-${Compiler_version} - else - sudo apt-get --allow-unauthenticated install -qq --force-yes gcc-${Compiler_version} g++-${Compiler_version} - fi - elif [ "$Compiler_name" = "clang" ]; then - sudo apt-get --allow-unauthenticated install -qq --force-yes clang-${Compiler_version} + if [ "$Compiler_name" = "gcc" ]; then + set +ex + Gcc_AvSepGpp="$(apt-cache search ^g[c+][c+]-[0-9] | grep -v '[0-9]-[a-zA-Z]' | grep "^g++-$Compiler_version_grep")" + set -ex + if [ "$Gcc_AvSepGpp" = "" ]; then + sudo apt-get --allow-unauthenticated install -qq --force-yes gcc-${Compiler_version} + else + sudo apt-get --allow-unauthenticated install -qq --force-yes gcc-${Compiler_version} g++-${Compiler_version} fi + elif [ "$Compiler_name" = "clang" ]; then + # llvm-toolchain needed for more recent version of clang + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo -E apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-6.0 main" + sudo -E apt-get -yq update &>> ~/apt-get-update.log + sudo -E apt-get -yq --no-install-suggests --allow-unauthenticated \ + --no-install-recommends $TRAVIS_APT_OPTS install clang-${Compiler_version} + fi fi # what available versions we can use @@ -79,20 +67,8 @@ apt-cache search ^clang-[0-9] | grep -v '[0-9]-[a-zA-Z]' set -x # INSTALL OUR DEPENDENCIES -sudo $SCRIPTDIR/mk/linux/setupBuildDeps.sh --quiet -if [ "$distribution" = "Ubuntu" ]; then - case $release in - 12.04*) - SDL2_version="2.0.5" - wget https://www.libsdl.org/release/SDL2-${SDL2_version}.tar.gz - tar xf SDL2-${SDL2_version}.tar.gz - ( cd SDL2-${SDL2_version} - ./configure --enable-static --disable-shared - make - sudo make install ) - ;; - *) - ;; - esac -fi +# These 2 don't get installed automatically, but are required for libsdl2-dev +sudo apt-get install -y -q libegl1-mesa-dev libgles2-mesa-dev + +sudo mk/linux/setupBuildDeps.sh --quiet diff --git a/.travis.yml b/.travis.yml index 17ecef37f..a5575d451 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,39 +7,29 @@ matrix: include: - os: linux compiler: gcc - addons: - apt: - packages: - - libsdl2-dev - env: Tr_Compiler_Version="7" - # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test - dist: trusty # broken compiler on 12.04 + env: Tr_Compiler_Version="default" - os: linux compiler: gcc - addons: - apt: - packages: - - libsdl2-dev - env: Tr_Compiler_Version="default" - dist: trusty + env: Tr_Compiler_Version="5" + - os: linux + compiler: gcc + env: Tr_Compiler_Version="6" + - os: linux + compiler: gcc + env: Tr_Compiler_Version="7" + - os: linux + compiler: gcc + env: Tr_Compiler_Version="8" + + # clang - os: linux compiler: clang - addons: - apt: - packages: - - libsdl2-dev - env: Tr_Compiler_Version="5.0" - # http://apt.llvm.org/, compiler not newer than available on debian testing - # https://packages.debian.org/search?suite=testing&keywords=clang- - dist: trusty + env: Tr_Compiler_Version="default" - os: linux compiler: clang - addons: - apt: - packages: - - libsdl2-dev - env: Tr_Compiler_Version="default" - dist: trusty # broken compiler on 12.04 + env: Tr_Compiler_Version="6.0" + + # osx - os: osx osx_image: xcode9.2 env: Tr_Xcode_Version="9.2" @@ -50,10 +40,6 @@ matrix: git: submodules: false -#branches: -# only: -# - master - before_install: - if [ "$TRAVIS_OS_NAME" = "linux" ]; then ./.travis-before_install.sh "$CC" "$Tr_Compiler_Version"; fi - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update; fi diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index 6126d20f0..57be6dfe8 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -7,14 +7,7 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6") IF(BUILD_ZETAGLEST_MODEL_VIEWER) MESSAGE(STATUS "Will try to build ZetaGlest model viewer") - IF(UNIX AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - IF("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 4.7 OR NOT "${CMAKE_CXX_COMPILER_VERSION}") - ADD_DEFINITIONS("-std=gnu++0x") - ELSEIF("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 5.1) - ADD_DEFINITIONS("-std=c++11") - ENDIF() - # Was required at least on bsd and macos. - ENDIF() + ADD_DEFINITIONS("-std=c++11") FIND_PACKAGE(${SDL_VERSION_NAME} REQUIRED) INCLUDE_DIRECTORIES(${${SDL_VERSION_NAME}_INCLUDE_DIR}) diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index ac6bd5e7c..8121abf74 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -6,15 +6,7 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6") IF(BUILD_ZETAGLEST_MAP_EDITOR) MESSAGE(STATUS "Will try to build ZetaGlest map editor") - - IF(UNIX AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - IF("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 4.7 OR NOT "${CMAKE_CXX_COMPILER_VERSION}") - ADD_DEFINITIONS("-std=gnu++0x") - ELSEIF("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 5.1) - ADD_DEFINITIONS("-std=c++11") - ENDIF() - # Was required at least on bsd and macos. - ENDIF() + ADD_DEFINITIONS("-std=c++11") FIND_PACKAGE(${SDL_VERSION_NAME} REQUIRED) INCLUDE_DIRECTORIES(${${SDL_VERSION_NAME}_INCLUDE_DIR})