diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-04-10 02:11:53 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-04-12 02:38:26 +0300 |
commit | d8f9061adf2d255bbe7b2b27f0fa892ef881c305 (patch) | |
tree | 8b8c5f98cbf629de468f2d994187589a8d59e48f | |
parent | b8d27351265af33d880a18239dd91068b2d2a2bd (diff) | |
download | manaplus-d8f9061adf2d255bbe7b2b27f0fa892ef881c305.tar.gz manaplus-d8f9061adf2d255bbe7b2b27f0fa892ef881c305.tar.bz2 manaplus-d8f9061adf2d255bbe7b2b27f0fa892ef881c305.tar.xz manaplus-d8f9061adf2d255bbe7b2b27f0fa892ef881c305.zip |
add .gitlab-ci.yml and script for it.
33 files changed, 2194 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..28cde97a2 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,367 @@ +stages: + - build + - test + - success + - failure + +# simple builds + +gcc-4.4: + stage: build + script: + - ./tools/ci/jobs/gcc44.sh + image: debian:oldstable + +gcc-4.6: + stage: build + script: + - ./tools/ci/jobs/gcc46.sh + image: debian:oldstable + +gcc-4.7: + stage: build + script: + - ./tools/ci/jobs/gcc47.sh + image: debian:oldstable + +clang-3.0: + stage: build + script: + - ./tools/ci/jobs/clang3.sh + image: debian:oldstable + +clang-3.4: + stage: build + script: + - ./tools/ci/jobs/clang34.sh + image: debian:stable + +clang-3.5: + stage: build + script: + - ./tools/ci/jobs/clang35.sh + image: debian:stable + +clang-3.9: + stage: build + script: + - ./tools/ci/jobs/clang39.sh + image: debian:unstable + +gcc-4.8_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc48_c++11.sh + image: debian:stable + +gcc-4.9: + stage: build + script: + - ./tools/ci/jobs/gcc49.sh + image: debian:unstable + +gcc-4.9_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc49_c++11.sh + image: debian:unstable + +cmake_gcc-4.9: + stage: build + script: + - ./tools/ci/jobs/cmake_gcc49.sh + image: debian:unstable + +gcc-5: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh + image: debian:unstable + +gcc-5_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc5_c++11.sh + image: debian:unstable + +gcc-5_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh + image: debian:unstable + +gcc-5_sdl2_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2_c++11.sh + image: debian:unstable + +gcc-snapshot: + stage: build + script: + - ./tools/ci/jobs/gccsnapshot.sh + image: debian:unstable + +gcc-snapshot_sdl2: + stage: build + script: + - ./tools/ci/jobs/gccsnapshot_sdl2.sh + image: debian:unstable + +gcc-5_sanitize: + stage: build + script: + - ./tools/ci/jobs/gcc5_sanitize.sh + image: debian:unstable + +gcc_tmwa: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --without-opengl --enable-tmwa --disable-eathena + image: debian:unstable + +gcc_eathena: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --without-opengl --disable-tmwa --enable-eathena + image: debian:unstable + +gcc_tmwa_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh --without-opengl --enable-tmwa --disable-eathena + image: debian:unstable + +gcc_tmwa_opengl: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --with-opengl --enable-tmwa --disable-eathena + image: debian:unstable + +gcc_tmwa_opengl_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh --with-opengl --enable-tmwa --disable-eathena + image: debian:unstable + +gcc_tmwa_opengl_debug: + stage: build + script: + - ./tools/ci/jobs/gcc49.sh --with-opengl --enable-tmwa --disable-eathena --enable-memdebug=yes + image: debian:unstable + +gcc_without_opengl: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --without-opengl + image: debian:unstable + +gcc_cilkplus: + stage: build + script: + - ./tools/ci/jobs/gcc49.sh --enable-cilkplus + image: debian:unstable + +gcc_eathena_opengl: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --with-opengl --disable-tmwa --enable-eathena + image: debian:unstable + +gcc_eathena_opengl_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh --with-opengl --disable-tmwa --enable-eathena + image: debian:unstable + +gcc_tmwa_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh --without-opengl --enable-tmwa --disable-eathena + image: debian:unstable + +gcc_eathena: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --without-opengl --disable-tmwa --enable-eathena + image: debian:unstable + +gcc_eathena_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh --without-opengl --disable-tmwa --enable-eathena + image: debian:unstable + +gcc_tmwa_opengl_portable: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --with-opengl --enable-tmwa --disable-eathena --enable-portable=yes + image: debian:unstable + +gcc_tmwa_opengl_portable_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh --with-opengl --enable-tmwa --disable-eathena --enable-portable=yes + image: debian:unstable + +gcc_portable: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --with-opengl --enable-tmwa --enable-eathena --enable-portable=yes + image: debian:unstable + +gcc_tmwa_opengl_nonls: + stage: build + script: + - ./tools/ci/jobs/gcc5.sh --with-opengl --enable-tmwa --disable-eathena --disable-nls + image: debian:unstable + +gcc_tmwa_opengl_nonls_sdl2: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2.sh --with-opengl --enable-tmwa --disable-eathena --disable-nls + image: debian:unstable + +gcc_eathena_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc5_c++11.sh --without-opengl --disable-tmwa --enable-eathena + image: debian:unstable + +gcc_tmwa_sdl2_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2_c++11.sh --without-opengl --enable-tmwa --disable-eathena + image: debian:unstable + +gcc_tmwa_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc5_c++11.sh --without-opengl --enable-tmwa --disable-eathena + image: debian:unstable + +gcc_eathena_sdl2_c++11: + stage: build + script: + - ./tools/ci/jobs/gcc5_sdl2_c++11.sh --without-opengl --disable-tmwa --enable-eathena + image: debian:unstable + +clang-3.9_sdl2: + stage: build + script: + - ./tools/ci/jobs/clang39_sdl2.sh + image: debian:unstable + +# tests + +gcc-5_tests: + stage: test + script: + - ./tools/ci/jobs/gcc5_tests.sh + image: debian:unstable + +gcc-5_lto: + stage: test + script: + - ./tools/ci/jobs/gcc5_lto.sh + image: debian:unstable + +gcc-5_sanitize_tests: + stage: test + script: + - ./tools/ci/jobs/gcc5_sanitize_tests.sh + image: debian:unstable + +gcc-5_sdl2_tests: + stage: test + script: + - ./tools/ci/jobs/gcc5_sdl2_tests.sh + image: debian:unstable + +gcc-5_h_eathena: + stage: test + script: + - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DENABLE_LIBXML + image: debian:unstable + +gcc-5_h_eathena_pugi: + stage: test + script: + - ./tools/ci/jobs/gcc5_h_pugi.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DENABLE_PUGIXML + image: debian:unstable + +gcc-5_h_eathena_opengl: + stage: test + script: + - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DUSE_OPENGL -DENABLE_LIBXML + image: debian:unstable + +gcc-5_h_eathena_opengl_pugi: + stage: test + script: + - ./tools/ci/jobs/gcc5_h_pugi.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DUSE_OPENGL -DENABLE_PUGIXML + image: debian:unstable + +gcc-5_h_eathena_nsl: + stage: test + script: + - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DENABLE_NLS -DENABLE_LIBXML + image: debian:unstable + +gcc-5_h_eathena_tmwa: + stage: test + script: + - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DTMWA_SUPPORT -DENABLE_LIBXML + image: debian:unstable + +gcc-5_h_all: + stage: test + script: + - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML + image: debian:unstable + +gcc-5_h_pugi_all: + stage: test + script: + - ./tools/ci/jobs/gcc5_h_pugi.sh -std=c++0x -DDEBUGBUILD -DEATHENA_SUPPORT -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_PUGIXML + image: debian:unstable + +gcc-5_tarball: + stage: test + script: + - ./tools/ci/jobs/gcc5_tarball.sh + image: debian:unstable + +mplint_po: + stage: test + script: + - ./tools/ci/jobs/mplint.sh po + image: debian:unstable + +mplint_src: + stage: test + script: + - ./tools/ci/jobs/mplint.sh src + image: debian:unstable + +mplint_data: + stage: test + script: + - ./tools/ci/jobs/mplint.sh data + image: debian:unstable + +# reports + +success: + stage: success + script: + - ./tools/ci/jobs/success.sh + image: debian:unstable + when: on_success + +failure: + stage: failure + script: + - ./tools/ci/jobs/failure.sh + image: debian:unstable + when: on_failure diff --git a/tools/ci/jobs/clang3.sh b/tools/ci/jobs/clang3.sh new file mode 100755 index 000000000..ef5c57542 --- /dev/null +++ b/tools/ci/jobs/clang3.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +export CC=clang +export CXX=clang++ +export LOGFILE=clang3.log + +source ./tools/ci/scripts/init.sh + +aptget_install clang libc++-dev \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/clang34.sh b/tools/ci/jobs/clang34.sh new file mode 100755 index 000000000..35d0ac129 --- /dev/null +++ b/tools/ci/jobs/clang34.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +export CC=clang-3.4 +export CXX=clang++-3.4 +export LOGFILE=clang34.log + +source ./tools/ci/scripts/init.sh + +aptget_install clang-3.4 libc++-dev \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-stdlib=libc++" + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/clang35.sh b/tools/ci/jobs/clang35.sh new file mode 100755 index 000000000..2d0d47ced --- /dev/null +++ b/tools/ci/jobs/clang35.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +export CC=clang-3.5 +export CXX=clang++-3.5 +export LOGFILE=clang35.log + +source ./tools/ci/scripts/init.sh + +aptget_install clang-3.5 libc++-dev \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-stdlib=libc++" + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/clang39.sh b/tools/ci/jobs/clang39.sh new file mode 100755 index 000000000..7907202f4 --- /dev/null +++ b/tools/ci/jobs/clang39.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +export CC=clang-3.9 +export CXX=clang++-3.9 +export LOGFILE=clang39.log + +source ./tools/ci/scripts/init.sh + +aptget_install clang-3.9 libc++-dev \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-Weverything -Wno-documentation -Wno-padded -Wno-sign-conversion \ +-Wno-global-constructors -Wno-exit-time-destructors -Wno-weak-vtables \ +-Wno-overloaded-virtual -Wno-covered-switch-default -Wno-float-equal -Wno-conversion \ +-Wno-shorten-64-to-32 -Wno-missing-variable-declarations \ +-Wno-disabled-macro-expansion -Wno-format-nonliteral -stdlib=libc++ \ +-Wno-reserved-id-macro -Wno-packed -Wno-documentation-unknown-command \ +-Wno-variadic-macros -Wno-unreachable-code-return -Wno-double-promotion \ +-Wno-old-style-cast" + +run_configure $* +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/clang39_sdl2.sh b/tools/ci/jobs/clang39_sdl2.sh new file mode 100755 index 000000000..d3ae58abe --- /dev/null +++ b/tools/ci/jobs/clang39_sdl2.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +export CC=clang-3.9 +export CXX=clang++-3.9 +export LOGFILE=clang39.log + +source ./tools/ci/scripts/init.sh + +aptget_install clang-3.9 libc++-dev \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev + +export CXXFLAGS="-Weverything -Wno-documentation -Wno-padded -Wno-sign-conversion \ +-Wno-global-constructors -Wno-exit-time-destructors -Wno-weak-vtables \ +-Wno-overloaded-virtual -Wno-covered-switch-default -Wno-float-equal -Wno-conversion \ +-Wno-shorten-64-to-32 -Wno-missing-variable-declarations \ +-Wno-disabled-macro-expansion -Wno-format-nonliteral -stdlib=libc++ \ +-Wno-reserved-id-macro -Wno-packed -Wno-documentation-unknown-command \ +-Wno-variadic-macros -Wno-unreachable-code-return -Wno-double-promotion \ +-Wno-old-style-cast" + +run_configure --with-sdl2 $* +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/cmake_gcc49.sh b/tools/ci/jobs/cmake_gcc49.sh new file mode 100755 index 000000000..359c9f5f8 --- /dev/null +++ b/tools/ci/jobs/cmake_gcc49.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +export CC=gcc-4.9 +export CXX=g++-4.9 +export LOGFILE=cmake_gcc49.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-4.9 g++-4.9 \ + make cmake gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +run_cmake +run_make + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/failure.sh b/tools/ci/jobs/failure.sh new file mode 100755 index 000000000..8ee3be3cf --- /dev/null +++ b/tools/ci/jobs/failure.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +export LOGFILE=bot.log +export name="ManaPlus" + +source ./tools/ci/scripts/init.sh +source ./tools/ci/scripts/bot.sh + +aptget_install ii psmisc + +bot_connect "manaplusbot2" +bot_join "#manaplus" + +export gitcommit=$(echo ${CI_BUILD_REF} | cut -c 1-7) + +bot_message "#manaplus" "[${C}02${name}:${CI_BUILD_REF_NAME}${R}] Build failed: ${C}03${gitcommit}${R}. See https://gitlab.com/manaplus/manaplus/builds" +bot_message "#manaplus" "hightlight {41444d494e}" +bot_exit + +exit 0 diff --git a/tools/ci/jobs/gcc44.sh b/tools/ci/jobs/gcc44.sh new file mode 100755 index 000000000..7406cc0ad --- /dev/null +++ b/tools/ci/jobs/gcc44.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +export CC=gcc-4.4 +export CXX=g++-4.4 +export LOGFILE=gcc44.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-4.4 g++-4.4 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc46.sh b/tools/ci/jobs/gcc46.sh new file mode 100755 index 000000000..ea13e1e23 --- /dev/null +++ b/tools/ci/jobs/gcc46.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +export CC=gcc-4.6 +export CXX=g++-4.6 +export LOGFILE=gcc46.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-4.6 g++-4.6 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc47.sh b/tools/ci/jobs/gcc47.sh new file mode 100755 index 000000000..34ab2fd59 --- /dev/null +++ b/tools/ci/jobs/gcc47.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +export CC=gcc-4.7 +export CXX=g++-4.7 +export LOGFILE=gcc47.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-4.7 g++-4.7 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc48_c++11.sh b/tools/ci/jobs/gcc48_c++11.sh new file mode 100755 index 000000000..555c9780a --- /dev/null +++ b/tools/ci/jobs/gcc48_c++11.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +export CC=gcc-4.8 +export CXX=g++-4.8 +export LOGFILE=gcc48_c++11.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-4.8 g++-4.8 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code -Wabi -Wdisabled-optimization \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -Wc++11-compat -std=c++0x \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Wabi-tag -Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable" + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc49.sh b/tools/ci/jobs/gcc49.sh new file mode 100755 index 000000000..561d9e0b7 --- /dev/null +++ b/tools/ci/jobs/gcc49.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +export CC=gcc-4.9 +export CXX=g++-4.9 +export LOGFILE=gcc49.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-4.9 g++-4.9 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-fno-var-tracking" + +run_configure $* +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc49_c++11.sh b/tools/ci/jobs/gcc49_c++11.sh new file mode 100755 index 000000000..1d1b8255b --- /dev/null +++ b/tools/ci/jobs/gcc49_c++11.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +export CC=gcc-4.9 +export CXX=g++-4.9 +export LOGFILE=gcc49_c++11.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-4.9 g++-4.9 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code -Wabi -Wdisabled-optimization \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -Wc++11-compat -std=c++0x \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Wabi-tag -Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable \ +-fno-var-tracking -Woverloaded-virtual" + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5.sh b/tools/ci/jobs/gcc5.sh new file mode 100755 index 000000000..59f8ad672 --- /dev/null +++ b/tools/ci/jobs/gcc5.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wsized-deallocation \ +-Wlogical-not-parentheses -Woverloaded-virtual \ +-Wno-variadic-macros -Wno-zero-as-null-pointer-constant" + +run_configure $* +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_c++11.sh b/tools/ci/jobs/gcc5_c++11.sh new file mode 100755 index 000000000..63cb83893 --- /dev/null +++ b/tools/ci/jobs/gcc5_c++11.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1z \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wc++14-compat -Wsized-deallocation \ +-Wlogical-not-parentheses -Woverloaded-virtual" + +run_configure $* +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_h.sh b/tools/ci/jobs/gcc5_h.sh new file mode 100755 index 000000000..3a24f502c --- /dev/null +++ b/tools/ci/jobs/gcc5_h.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_h.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +cd src +export dir=$(pwd) +export includes="-I$dir -I/usr/include -I/usr/include/SDL -I/usr/include/libxml2" + +run_h $* + +cd .. + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_h_pugi.sh b/tools/ci/jobs/gcc5_h_pugi.sh new file mode 100755 index 000000000..5eef3afeb --- /dev/null +++ b/tools/ci/jobs/gcc5_h_pugi.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_h.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libpugixml-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +cd src +export dir=$(pwd) +export includes="-I$dir -I/usr/include -I/usr/include/SDL -I/usr/include/libxml2" + +run_h $* + +cd .. + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_lto.sh b/tools/ci/jobs/gcc5_lto.sh new file mode 100755 index 000000000..ad99f796e --- /dev/null +++ b/tools/ci/jobs/gcc5_lto.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -pipe -ffast-math -O9 -flto -fwhole-program \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1y \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wc++14-compat -Wsized-deallocation \ +-Wlogical-not-parentheses -Woverloaded-virtual" + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_sanitize.sh b/tools/ci/jobs/gcc5_sanitize.sh new file mode 100755 index 000000000..803b29b87 --- /dev/null +++ b/tools/ci/jobs/gcc5_sanitize.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_sanitize.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fsanitize=address -fsanitize=undefined \ +-fsanitize=shift -fsanitize=integer-divide-by-zero -fsanitize=unreachable \ +-fsanitize=vla-bound -fsanitize=null -fsanitize=return \ +-fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment \ +-fsanitize=object-size -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow \ +-fsanitize=nonnull-attribute -fsanitize=returns-nonnull-attribute -fsanitize=bool \ +-fsanitize=enum -fsanitize=vptr \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1z \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure -Wconditionally-supported -Wdate-time -fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness -Wformat-contains-nul \ +-Wformat-extra-args -Wformat-security -Wswitch-bool -Wswitch-enum \ +-Wformat-y2k -Wformat-zero-length -Wmemset-transposed-args -Wchkp \ +-Wc++14-compat -Wsized-deallocation -Wlogical-not-parentheses \ +-Woverloaded-virtual -Warray-bounds -Wbool-compare -Wchar-subscripts \ +-Wcomment -Wmissing-braces -Wnonnull -Wopenmp-simd -Wparentheses \ +-Wreturn-type -Wsequence-point -Wswitch" + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_sanitize_tests.sh b/tools/ci/jobs/gcc5_sanitize_tests.sh new file mode 100755 index 000000000..4a6803e14 --- /dev/null +++ b/tools/ci/jobs/gcc5_sanitize_tests.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_tests.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fsanitize=address -fsanitize=undefined \ +-fsanitize=shift -fsanitize=integer-divide-by-zero -fsanitize=unreachable \ +-fsanitize=vla-bound -fsanitize=null -fsanitize=return \ +-fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment \ +-fsanitize=object-size -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow \ +-fsanitize=nonnull-attribute -fsanitize=returns-nonnull-attribute -fsanitize=bool \ +-fsanitize=enum -fsanitize=vptr \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1z \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure -Wconditionally-supported -Wdate-time -fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness -Wformat-contains-nul \ +-Wformat-extra-args -Wformat-security -Wswitch-bool -Wswitch-enum \ +-Wformat-y2k -Wformat-zero-length -Wmemset-transposed-args -Wchkp \ +-Wc++14-compat -Wsized-deallocation -Wlogical-not-parentheses \ +-Woverloaded-virtual -Warray-bounds -Wbool-compare -Wchar-subscripts \ +-Wcomment -Wmissing-braces -Wnonnull -Wopenmp-simd -Wparentheses \ +-Wreturn-type -Wsequence-point -Wswitch" + +run_configure --enable-unittests=yes +export SDL_VIDEODRIVER=dummy +export ASAN_OPTIONS=detect_leaks=0 +run_make check +#run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_sdl2.sh b/tools/ci/jobs/gcc5_sdl2.sh new file mode 100755 index 000000000..d0502d643 --- /dev/null +++ b/tools/ci/jobs/gcc5_sdl2.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_sdl2.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev + +# need fix -Woverloaded-virtual +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wsized-deallocation \ +-Wlogical-not-parentheses \ +-Wno-variadic-macros -Wno-zero-as-null-pointer-constant" + +run_configure --with-sdl2 $* +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_sdl2_c++11.sh b/tools/ci/jobs/gcc5_sdl2_c++11.sh new file mode 100755 index 000000000..8c9cc6afd --- /dev/null +++ b/tools/ci/jobs/gcc5_sdl2_c++11.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_sdl2.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev + +# need fix -Woverloaded-virtual +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1y \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wc++14-compat -Wsized-deallocation \ +-Wlogical-not-parentheses" + +run_configure --with-sdl2 $* +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_sdl2_tests.sh b/tools/ci/jobs/gcc5_sdl2_tests.sh new file mode 100755 index 000000000..e9f193133 --- /dev/null +++ b/tools/ci/jobs/gcc5_sdl2_tests.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_sdl2_tests.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1y \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wc++14-compat -Wsized-deallocation \ +-Wlogical-not-parentheses -Woverloaded-virtual" + +run_configure --with-sdl2 --enable-unittests=yes +export SDL_VIDEODRIVER=dummy +run_make check +#run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_tarball.sh b/tools/ci/jobs/gcc5_tarball.sh new file mode 100755 index 000000000..655caf3ae --- /dev/null +++ b/tools/ci/jobs/gcc5_tarball.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_tarball.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev xz-utils \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1y \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wc++14-compat -Wsized-deallocation \ +-Wlogical-not-parentheses -Woverloaded-virtual" + +run_configure +run_tarball test +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gcc5_tests.sh b/tools/ci/jobs/gcc5_tests.sh new file mode 100755 index 000000000..a4b49a9a7 --- /dev/null +++ b/tools/ci/jobs/gcc5_tests.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +export CC=gcc-5 +export CXX=g++-5 +export LOGFILE=gcc5_tests.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-5 g++-5 \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-ggdb3 -O2 -pipe -ffast-math \ +-fno-omit-frame-pointer -funswitch-loops \ +-Wvariadic-macros -Wvla -Wredundant-decls \ +-Wpacked-bitfield-compat -Wtrampolines \ +-Wsuggest-attribute=noreturn -Wunused -Wstrict-aliasing=2 \ +-fstrict-aliasing -Wunreachable-code \ +-Wvolatile-register-var -Winvalid-pch -Wredundant-decls \ +-Wnormalized=nfkc -Wmissing-format-attribute -Wmissing-noreturn \ +-Wswitch-default -Wsign-promo -Waddress -Wmissing-declarations \ +-Wctor-dtor-privacy -Wstrict-null-sentinel -Wlogical-op \ +-Wcast-align -Wpointer-arith -Wundef \ +-Wmissing-include-dirs -Winit-self -pedantic -Wall \ +-Wpacked -Wextra -fstrict-overflow -Wstrict-overflow=1 -Wunknown-pragmas \ +-Wwrite-strings -Wstack-protector -Wshadow -Wunused-macros -Wsynth \ +-Wbuiltin-macro-redefined -Wctor-dtor-privacy -Wdeprecated \ +-Wendif-labels -Wformat=1 -Wimport -Wnon-virtual-dtor -Wpsabi \ +-Wsign-promo -Wwrite-strings -D_FORTIFY_SOURCE=2 -std=gnu++1y \ +-Wdelete-non-virtual-dtor -Wmaybe-uninitialized -Wunused-local-typedefs \ +-Wvector-operation-performance -Wfree-nonheap-object -Winvalid-memory-model \ +-Wnarrowing -Wzero-as-null-pointer-constant -funsafe-loop-optimizations \ +-Waggressive-loop-optimizations -Wclobbered -Wempty-body \ +-Wignored-qualifiers -Wliteral-suffix -Wmissing-field-initializers \ +-Woverlength-strings -Wpedantic -Wsign-compare -Wsizeof-pointer-memaccess \ +-Wsuggest-attribute=format -Wtype-limits -Wuninitialized \ +-Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function \ +-Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -ftrapv \ +-fsched-pressure \ +-Wconditionally-supported -Wdate-time \ +-fno-var-tracking \ +-Wopenmp-simd -Wformat-signedness \ +-Wswitch-bool -Wmemset-transposed-args -Wchkp -Wc++14-compat -Wsized-deallocation \ +-Wlogical-not-parentheses -Woverloaded-virtual" + +run_configure --enable-unittests=yes +export SDL_VIDEODRIVER=dummy +run_make check +#run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gccsnapshot.sh b/tools/ci/jobs/gccsnapshot.sh new file mode 100755 index 000000000..cf7c73665 --- /dev/null +++ b/tools/ci/jobs/gccsnapshot.sh @@ -0,0 +1,331 @@ +#!/bin/bash + +export CC=gcc +export CXX=g++ +export LOGFILE=gcc-snapshot.log +export PATH=/usr/lib/gcc-snapshot/bin:$PATH + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-snapshot \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev + +export CXXFLAGS="-pedantic -ggdb3 -O2 -pipe -Wstrict-aliasing=2 \ +-Wstrict-overflow=1 -Wformat=1 -D_FORTIFY_SOURCE=2 \ +-std=gnu++1z -Wformat=1" + +#export CXXFLAGS="${CXXFLAGS} --all-warnings" +#export CXXFLAGS="${CXXFLAGS} --extra-warnings" +export CXXFLAGS="${CXXFLAGS} -W" +export CXXFLAGS="${CXXFLAGS} -Wabi" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wabi-tag" +#export CXXFLAGS="${CXXFLAGS} -Wabi=" +export CXXFLAGS="${CXXFLAGS} -Waddress" +# +++ ignoring. may be can be fixed? +#export CXXFLAGS="${CXXFLAGS} -Waggregate-return" +export CXXFLAGS="${CXXFLAGS} -Waggressive-loop-optimizations" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Waliasing" +#export CXXFLAGS="${CXXFLAGS} -Walign-commons" +export CXXFLAGS="${CXXFLAGS} -Wall" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wampersand" +export CXXFLAGS="${CXXFLAGS} -Warray-bounds" +# +++ need try it +export CXXFLAGS="${CXXFLAGS} -Warray-bounds=2" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Warray-temporaries" +#export CXXFLAGS="${CXXFLAGS} -Wassign-intercept" +export CXXFLAGS="${CXXFLAGS} -Wattributes" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wbad-function-cast" +export CXXFLAGS="${CXXFLAGS} -Wbool-compare" +export CXXFLAGS="${CXXFLAGS} -Wbuiltin-macro-redefined" +#export CXXFLAGS="${CXXFLAGS} -Wc++-compat" +#export CXXFLAGS="${CXXFLAGS} -Wc++0x-compat" +#export CXXFLAGS="${CXXFLAGS} -Wc++11-compat" +export CXXFLAGS="${CXXFLAGS} -Wc++14-compat" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wc-binding-type" +#export CXXFLAGS="${CXXFLAGS} -Wc90-c99-compat" +#export CXXFLAGS="${CXXFLAGS} -Wc99-c11-compat" +export CXXFLAGS="${CXXFLAGS} -Wcast-align" +export CXXFLAGS="${CXXFLAGS} -Wcast-qual" +export CXXFLAGS="${CXXFLAGS} -Wchar-subscripts" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wcharacter-truncation" +export CXXFLAGS="${CXXFLAGS} -Wchkp" +export CXXFLAGS="${CXXFLAGS} -Wclobbered" +export CXXFLAGS="${CXXFLAGS} -Wcomment" +export CXXFLAGS="${CXXFLAGS} -Wcomments" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wcompare-reals" +export CXXFLAGS="${CXXFLAGS} -Wconditionally-supported" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wconversion" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wconversion-extra" +export CXXFLAGS="${CXXFLAGS} -Wconversion-null" +export CXXFLAGS="${CXXFLAGS} -Wcoverage-mismatch" +export CXXFLAGS="${CXXFLAGS} -Wcpp" +export CXXFLAGS="${CXXFLAGS} -Wctor-dtor-privacy" +export CXXFLAGS="${CXXFLAGS} -Wdate-time" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wdeclaration-after-statement" +export CXXFLAGS="${CXXFLAGS} -Wdelete-incomplete" +export CXXFLAGS="${CXXFLAGS} -Wdelete-non-virtual-dtor" +export CXXFLAGS="${CXXFLAGS} -Wdeprecated" +export CXXFLAGS="${CXXFLAGS} -Wdeprecated-declarations" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wdesignated-init" +export CXXFLAGS="${CXXFLAGS} -Wdisabled-optimization" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-array-qualifiers" +#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-qualifiers" +export CXXFLAGS="${CXXFLAGS} -Wdiv-by-zero" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wdouble-promotion" +export CXXFLAGS="${CXXFLAGS} -Wduplicated-cond" +# +++ too many warnings. may be used some times +#export CXXFLAGS="${CXXFLAGS} -Weffc++" +export CXXFLAGS="${CXXFLAGS} -Wempty-body" +export CXXFLAGS="${CXXFLAGS} -Wendif-labels" +export CXXFLAGS="${CXXFLAGS} -Wenum-compare" +export CXXFLAGS="${CXXFLAGS} -Werror-implicit-function-declaration" +export CXXFLAGS="${CXXFLAGS} -Wextra" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wfloat-conversion" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wfloat-equal" +export CXXFLAGS="${CXXFLAGS} -Wformat" +export CXXFLAGS="${CXXFLAGS} -Wformat-contains-nul" +export CXXFLAGS="${CXXFLAGS} -Wformat-extra-args" +# +++ ignoring. probably need use some times +#export CXXFLAGS="${CXXFLAGS} -Wformat-nonliteral" +export CXXFLAGS="${CXXFLAGS} -Wformat-security" +export CXXFLAGS="${CXXFLAGS} -Wformat-signedness" +export CXXFLAGS="${CXXFLAGS} -Wformat-y2k" +export CXXFLAGS="${CXXFLAGS} -Wformat-zero-length" +#export CXXFLAGS="${CXXFLAGS} -Wformat=" +export CXXFLAGS="${CXXFLAGS} -Wframe-address" +#export CXXFLAGS="${CXXFLAGS} -Wframe-larger-than=<number>" +export CXXFLAGS="${CXXFLAGS} -Wfree-nonheap-object" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wfunction-elimination" +export CXXFLAGS="${CXXFLAGS} -Whsa" +export CXXFLAGS="${CXXFLAGS} -Wignored-qualifiers" +# +++ failing now. Need enable after package updated +#export CXXFLAGS="${CXXFLAGS} -Wignored-attributes" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wimplicit" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-function-declaration" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-int" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-interface" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-procedure" +#export CXXFLAGS="${CXXFLAGS} -Wincompatible-pointer-types" +export CXXFLAGS="${CXXFLAGS} -Winherited-variadic-ctor" +export CXXFLAGS="${CXXFLAGS} -Winit-self" +# ignoting +#export CXXFLAGS="${CXXFLAGS} -Winline" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wint-conversion" +export CXXFLAGS="${CXXFLAGS} -Wint-to-pointer-cast" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Winteger-division" +#export CXXFLAGS="${CXXFLAGS} -Wintrinsic-shadow" +#export CXXFLAGS="${CXXFLAGS} -Wintrinsics-std" +export CXXFLAGS="${CXXFLAGS} -Winvalid-memory-model" +export CXXFLAGS="${CXXFLAGS} -Winvalid-offsetof" +export CXXFLAGS="${CXXFLAGS} -Winvalid-pch" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wjump-misses-init" +#export CXXFLAGS="${CXXFLAGS} -Wlarger-than-" +#export CXXFLAGS="${CXXFLAGS} -Wlarger-than=" +#export CXXFLAGS="${CXXFLAGS} -Wline-truncation" +export CXXFLAGS="${CXXFLAGS} -Wliteral-suffix" +export CXXFLAGS="${CXXFLAGS} -Wlogical-not-parentheses" +export CXXFLAGS="${CXXFLAGS} -Wlogical-op" +export CXXFLAGS="${CXXFLAGS} -Wlong-long" +export CXXFLAGS="${CXXFLAGS} -Wlto-type-mismatch" +export CXXFLAGS="${CXXFLAGS} -Wmain" +export CXXFLAGS="${CXXFLAGS} -Wmaybe-uninitialized" +export CXXFLAGS="${CXXFLAGS} -Wmemset-transposed-args" +export CXXFLAGS="${CXXFLAGS} -Wmisleading-indentation" +export CXXFLAGS="${CXXFLAGS} -Wmissing-braces" +export CXXFLAGS="${CXXFLAGS} -Wmissing-declarations" +export CXXFLAGS="${CXXFLAGS} -Wmissing-field-initializers" +export CXXFLAGS="${CXXFLAGS} -Wmissing-format-attribute" +export CXXFLAGS="${CXXFLAGS} -Wmissing-include-dirs" +export CXXFLAGS="${CXXFLAGS} -Wmissing-noreturn" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wmissing-parameter-type" +#export CXXFLAGS="${CXXFLAGS} -Wmissing-prototypes" +export CXXFLAGS="${CXXFLAGS} -Wmultichar" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wmultiple-inheritance" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wnamespaces" +export CXXFLAGS="${CXXFLAGS} -Wnarrowing" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wnested-externs" +export CXXFLAGS="${CXXFLAGS} -Wnoexcept" +export CXXFLAGS="${CXXFLAGS} -Wnon-template-friend" +export CXXFLAGS="${CXXFLAGS} -Wnon-virtual-dtor" +export CXXFLAGS="${CXXFLAGS} -Wnonnull" +export CXXFLAGS="${CXXFLAGS} -Wnonnull-compare" +#export CXXFLAGS="${CXXFLAGS} -Wnormalized" +export CXXFLAGS="${CXXFLAGS} -Wnormalized=nfkc" +export CXXFLAGS="${CXXFLAGS} -Wnull-dereference" +export CXXFLAGS="${CXXFLAGS} -Wodr" +# probably need fix it +#export CXXFLAGS="${CXXFLAGS} -Wold-style-cast" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wold-style-declaration" +#export CXXFLAGS="${CXXFLAGS} -Wold-style-definition" +export CXXFLAGS="${CXXFLAGS} -Wopenmp-simd" +export CXXFLAGS="${CXXFLAGS} -Woverflow" +export CXXFLAGS="${CXXFLAGS} -Woverlength-strings" +export CXXFLAGS="${CXXFLAGS} -Woverloaded-virtual" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Woverride-init" +#export CXXFLAGS="${CXXFLAGS} -Woverride-init-side-effects" +export CXXFLAGS="${CXXFLAGS} -Wpacked" +export CXXFLAGS="${CXXFLAGS} -Wpacked-bitfield-compat" +# +++ may be need fix in future? +#export CXXFLAGS="${CXXFLAGS} -Wpadded" +export CXXFLAGS="${CXXFLAGS} -Wparentheses" +export CXXFLAGS="${CXXFLAGS} -Wpedantic" +export CXXFLAGS="${CXXFLAGS} -Wplacement-new" +#export CXXFLAGS="${CXXFLAGS} -Wplacement-new=" +export CXXFLAGS="${CXXFLAGS} -Wpmf-conversions" +export CXXFLAGS="${CXXFLAGS} -Wpointer-arith" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wpointer-sign" +#export CXXFLAGS="${CXXFLAGS} -Wpointer-to-int-cast" +export CXXFLAGS="${CXXFLAGS} -Wpragmas" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wproperty-assign-default" +#export CXXFLAGS="${CXXFLAGS} -Wprotocol" +#export CXXFLAGS="${CXXFLAGS} -Wreal-q-constant" +#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs" +#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs-all" +export CXXFLAGS="${CXXFLAGS} -Wredundant-decls" +export CXXFLAGS="${CXXFLAGS} -Wreorder" +export CXXFLAGS="${CXXFLAGS} -Wreturn-local-addr" +export CXXFLAGS="${CXXFLAGS} -Wreturn-type" +export CXXFLAGS="${CXXFLAGS} -Wscalar-storage-order" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wselector" +export CXXFLAGS="${CXXFLAGS} -Wsequence-point" +export CXXFLAGS="${CXXFLAGS} -Wshadow" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wshadow-ivar" +export CXXFLAGS="${CXXFLAGS} -Wshift-count-negative" +export CXXFLAGS="${CXXFLAGS} -Wshift-count-overflow" +export CXXFLAGS="${CXXFLAGS} -Wshift-negative-value" +export CXXFLAGS="${CXXFLAGS} -Wshift-overflow" +#export CXXFLAGS="${CXXFLAGS} -Wshift-overflow=" +export CXXFLAGS="${CXXFLAGS} -Wsign-compare" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wsign-conversion" +export CXXFLAGS="${CXXFLAGS} -Wsign-promo" +export CXXFLAGS="${CXXFLAGS} -Wsized-deallocation" +export CXXFLAGS="${CXXFLAGS} -Wsizeof-array-argument" +export CXXFLAGS="${CXXFLAGS} -Wsizeof-pointer-memaccess" +export CXXFLAGS="${CXXFLAGS} -Wstack-protector" +#export CXXFLAGS="${CXXFLAGS} -Wstack-usage=" +export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing" +#export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing=" +export CXXFLAGS="${CXXFLAGS} -Wstrict-null-sentinel" +# used before +#export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow" +#export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow=" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wstrict-prototypes" +#export CXXFLAGS="${CXXFLAGS} -Wstrict-selector-match" +export CXXFLAGS="${CXXFLAGS} -Wsubobject-linkage" +# +++ ignoring +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=const" +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=format" +export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=noreturn" +# +++ ignoring +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=pure" +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-methods" +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-types" +export CXXFLAGS="${CXXFLAGS} -Wsuggest-override" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wsurprising" +export CXXFLAGS="${CXXFLAGS} -Wswitch" +export CXXFLAGS="${CXXFLAGS} -Wswitch-bool" +export CXXFLAGS="${CXXFLAGS} -Wswitch-default" +export CXXFLAGS="${CXXFLAGS} -Wswitch-enum" +export CXXFLAGS="${CXXFLAGS} -Wsync-nand" +export CXXFLAGS="${CXXFLAGS} -Wsynth" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wsystem-headers" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wtabs" +#export CXXFLAGS="${CXXFLAGS} -Wtarget-lifetime" +export CXXFLAGS="${CXXFLAGS} -Wtautological-compare" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wtemplates" +export CXXFLAGS="${CXXFLAGS} -Wterminate" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wtraditional" +#export CXXFLAGS="${CXXFLAGS} -Wtraditional-conversion" +export CXXFLAGS="${CXXFLAGS} -Wtrampolines" +export CXXFLAGS="${CXXFLAGS} -Wtrigraphs" +export CXXFLAGS="${CXXFLAGS} -Wtype-limits" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wundeclared-selector" +export CXXFLAGS="${CXXFLAGS} -Wundef" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wunderflow" +export CXXFLAGS="${CXXFLAGS} -Wuninitialized" +export CXXFLAGS="${CXXFLAGS} -Wunknown-pragmas" +# +++ may be try use in future? +#export CXXFLAGS="${CXXFLAGS} -Wunsafe-loop-optimizations" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wunsuffixed-float-constants" +export CXXFLAGS="${CXXFLAGS} -Wunused" +export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-parameter" +export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-variable" +export CXXFLAGS="${CXXFLAGS} -Wunreachable-code" +export CXXFLAGS="${CXXFLAGS} -Wunused-const-variable=1" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wunused-dummy-argument" +export CXXFLAGS="${CXXFLAGS} -Wunused-function" +export CXXFLAGS="${CXXFLAGS} -Wunused-label" +export CXXFLAGS="${CXXFLAGS} -Wunused-local-typedefs" +export CXXFLAGS="${CXXFLAGS} -Wunused-macros" +export CXXFLAGS="${CXXFLAGS} -Wunused-parameter" +export CXXFLAGS="${CXXFLAGS} -Wunused-result" +export CXXFLAGS="${CXXFLAGS} -Wunused-value" +export CXXFLAGS="${CXXFLAGS} -Wunused-variable" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wuse-without-only" +# +++ need from time to time +#export CXXFLAGS="${CXXFLAGS} -Wuseless-cast" +export CXXFLAGS="${CXXFLAGS} -Wvarargs" +export CXXFLAGS="${CXXFLAGS} -Wvariadic-macros" +export CXXFLAGS="${CXXFLAGS} -Wvector-operation-performance" +export CXXFLAGS="${CXXFLAGS} -Wvirtual-inheritance" +export CXXFLAGS="${CXXFLAGS} -Wvirtual-move-assign" +export CXXFLAGS="${CXXFLAGS} -Wvla" +export CXXFLAGS="${CXXFLAGS} -Wvolatile-register-var" +export CXXFLAGS="${CXXFLAGS} -Wwrite-strings" +export CXXFLAGS="${CXXFLAGS} -Wzero-as-null-pointer-constant" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wzerotrip" +#export CXXFLAGS="${CXXFLAGS} -frequire-return-statement" + +run_configure +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/gccsnapshot_sdl2.sh b/tools/ci/jobs/gccsnapshot_sdl2.sh new file mode 100755 index 000000000..66a9dcb71 --- /dev/null +++ b/tools/ci/jobs/gccsnapshot_sdl2.sh @@ -0,0 +1,334 @@ +#!/bin/bash + +export CC=gcc +export CXX=g++ +export LOGFILE=gcc-snapshot.log +export PATH=/usr/lib/gcc-snapshot/bin:$PATH + +source ./tools/ci/scripts/init.sh + +aptget_install gcc-snapshot \ + make autoconf automake autopoint gettext libphysfs-dev \ + libxml2-dev libcurl4-gnutls-dev libpng-dev \ + libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev + +export CXXFLAGS="-pedantic -ggdb3 -O2 -pipe -Wstrict-aliasing=2 \ +-Wstrict-overflow=1 -Wformat=1 -D_FORTIFY_SOURCE=2 \ +-std=gnu++1z -Wformat=1" + +#export CXXFLAGS="${CXXFLAGS} --all-warnings" +#export CXXFLAGS="${CXXFLAGS} --extra-warnings" +export CXXFLAGS="${CXXFLAGS} -W" +export CXXFLAGS="${CXXFLAGS} -Wabi" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wabi-tag" +#export CXXFLAGS="${CXXFLAGS} -Wabi=" +export CXXFLAGS="${CXXFLAGS} -Waddress" +# +++ ignoring. may be can be fixed? +#export CXXFLAGS="${CXXFLAGS} -Waggregate-return" +export CXXFLAGS="${CXXFLAGS} -Waggressive-loop-optimizations" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Waliasing" +#export CXXFLAGS="${CXXFLAGS} -Walign-commons" +export CXXFLAGS="${CXXFLAGS} -Wall" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wampersand" +export CXXFLAGS="${CXXFLAGS} -Warray-bounds" +# +++ need try it +export CXXFLAGS="${CXXFLAGS} -Warray-bounds=2" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Warray-temporaries" +#export CXXFLAGS="${CXXFLAGS} -Wassign-intercept" +export CXXFLAGS="${CXXFLAGS} -Wattributes" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wbad-function-cast" +export CXXFLAGS="${CXXFLAGS} -Wbool-compare" +export CXXFLAGS="${CXXFLAGS} -Wbuiltin-macro-redefined" +#export CXXFLAGS="${CXXFLAGS} -Wc++-compat" +#export CXXFLAGS="${CXXFLAGS} -Wc++0x-compat" +#export CXXFLAGS="${CXXFLAGS} -Wc++11-compat" +export CXXFLAGS="${CXXFLAGS} -Wc++14-compat" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wc-binding-type" +#export CXXFLAGS="${CXXFLAGS} -Wc90-c99-compat" +#export CXXFLAGS="${CXXFLAGS} -Wc99-c11-compat" +export CXXFLAGS="${CXXFLAGS} -Wcast-align" +export CXXFLAGS="${CXXFLAGS} -Wcast-qual" +export CXXFLAGS="${CXXFLAGS} -Wchar-subscripts" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wcharacter-truncation" +export CXXFLAGS="${CXXFLAGS} -Wchkp" +export CXXFLAGS="${CXXFLAGS} -Wclobbered" +export CXXFLAGS="${CXXFLAGS} -Wcomment" +export CXXFLAGS="${CXXFLAGS} -Wcomments" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wcompare-reals" +export CXXFLAGS="${CXXFLAGS} -Wconditionally-supported" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wconversion" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wconversion-extra" +export CXXFLAGS="${CXXFLAGS} -Wconversion-null" +export CXXFLAGS="${CXXFLAGS} -Wcoverage-mismatch" +export CXXFLAGS="${CXXFLAGS} -Wcpp" +export CXXFLAGS="${CXXFLAGS} -Wctor-dtor-privacy" +export CXXFLAGS="${CXXFLAGS} -Wdate-time" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wdeclaration-after-statement" +export CXXFLAGS="${CXXFLAGS} -Wdelete-incomplete" +export CXXFLAGS="${CXXFLAGS} -Wdelete-non-virtual-dtor" +export CXXFLAGS="${CXXFLAGS} -Wdeprecated" +export CXXFLAGS="${CXXFLAGS} -Wdeprecated-declarations" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wdesignated-init" +export CXXFLAGS="${CXXFLAGS} -Wdisabled-optimization" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-array-qualifiers" +#export CXXFLAGS="${CXXFLAGS} -Wdiscarded-qualifiers" +export CXXFLAGS="${CXXFLAGS} -Wdiv-by-zero" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wdouble-promotion" +export CXXFLAGS="${CXXFLAGS} -Wduplicated-cond" +# +++ too many warnings. may be used some times +#export CXXFLAGS="${CXXFLAGS} -Weffc++" +export CXXFLAGS="${CXXFLAGS} -Wempty-body" +export CXXFLAGS="${CXXFLAGS} -Wendif-labels" +export CXXFLAGS="${CXXFLAGS} -Wenum-compare" +export CXXFLAGS="${CXXFLAGS} -Werror-implicit-function-declaration" +export CXXFLAGS="${CXXFLAGS} -Wextra" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wfloat-conversion" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wfloat-equal" +export CXXFLAGS="${CXXFLAGS} -Wformat" +export CXXFLAGS="${CXXFLAGS} -Wformat-contains-nul" +export CXXFLAGS="${CXXFLAGS} -Wformat-extra-args" +# +++ ignoring. probably need use some times +#export CXXFLAGS="${CXXFLAGS} -Wformat-nonliteral" +export CXXFLAGS="${CXXFLAGS} -Wformat-security" +export CXXFLAGS="${CXXFLAGS} -Wformat-signedness" +export CXXFLAGS="${CXXFLAGS} -Wformat-y2k" +export CXXFLAGS="${CXXFLAGS} -Wformat-zero-length" +#export CXXFLAGS="${CXXFLAGS} -Wformat=" +export CXXFLAGS="${CXXFLAGS} -Wframe-address" +#export CXXFLAGS="${CXXFLAGS} -Wframe-larger-than=<number>" +export CXXFLAGS="${CXXFLAGS} -Wfree-nonheap-object" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wfunction-elimination" +export CXXFLAGS="${CXXFLAGS} -Whsa" +export CXXFLAGS="${CXXFLAGS} -Wignored-qualifiers" +# +++ failing now. Need enable after package updated +#export CXXFLAGS="${CXXFLAGS} -Wignored-attributes" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wimplicit" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-function-declaration" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-int" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-interface" +#export CXXFLAGS="${CXXFLAGS} -Wimplicit-procedure" +#export CXXFLAGS="${CXXFLAGS} -Wincompatible-pointer-types" +export CXXFLAGS="${CXXFLAGS} -Winherited-variadic-ctor" +export CXXFLAGS="${CXXFLAGS} -Winit-self" +# ignoting +#export CXXFLAGS="${CXXFLAGS} -Winline" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wint-conversion" +export CXXFLAGS="${CXXFLAGS} -Wint-to-pointer-cast" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Winteger-division" +#export CXXFLAGS="${CXXFLAGS} -Wintrinsic-shadow" +#export CXXFLAGS="${CXXFLAGS} -Wintrinsics-std" +export CXXFLAGS="${CXXFLAGS} -Winvalid-memory-model" +export CXXFLAGS="${CXXFLAGS} -Winvalid-offsetof" +export CXXFLAGS="${CXXFLAGS} -Winvalid-pch" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wjump-misses-init" +#export CXXFLAGS="${CXXFLAGS} -Wlarger-than-" +#export CXXFLAGS="${CXXFLAGS} -Wlarger-than=" +#export CXXFLAGS="${CXXFLAGS} -Wline-truncation" +export CXXFLAGS="${CXXFLAGS} -Wliteral-suffix" +export CXXFLAGS="${CXXFLAGS} -Wlogical-not-parentheses" +export CXXFLAGS="${CXXFLAGS} -Wlogical-op" +export CXXFLAGS="${CXXFLAGS} -Wlong-long" +export CXXFLAGS="${CXXFLAGS} -Wlto-type-mismatch" +export CXXFLAGS="${CXXFLAGS} -Wmain" +export CXXFLAGS="${CXXFLAGS} -Wmaybe-uninitialized" +export CXXFLAGS="${CXXFLAGS} -Wmemset-transposed-args" +export CXXFLAGS="${CXXFLAGS} -Wmisleading-indentation" +export CXXFLAGS="${CXXFLAGS} -Wmissing-braces" +export CXXFLAGS="${CXXFLAGS} -Wmissing-declarations" +export CXXFLAGS="${CXXFLAGS} -Wmissing-field-initializers" +export CXXFLAGS="${CXXFLAGS} -Wmissing-format-attribute" +export CXXFLAGS="${CXXFLAGS} -Wmissing-include-dirs" +export CXXFLAGS="${CXXFLAGS} -Wmissing-noreturn" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wmissing-parameter-type" +#export CXXFLAGS="${CXXFLAGS} -Wmissing-prototypes" +export CXXFLAGS="${CXXFLAGS} -Wmultichar" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wmultiple-inheritance" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wnamespaces" +export CXXFLAGS="${CXXFLAGS} -Wnarrowing" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wnested-externs" +export CXXFLAGS="${CXXFLAGS} -Wnoexcept" +export CXXFLAGS="${CXXFLAGS} -Wnon-template-friend" +export CXXFLAGS="${CXXFLAGS} -Wnon-virtual-dtor" +export CXXFLAGS="${CXXFLAGS} -Wnonnull" +export CXXFLAGS="${CXXFLAGS} -Wnonnull-compare" +#export CXXFLAGS="${CXXFLAGS} -Wnormalized" +export CXXFLAGS="${CXXFLAGS} -Wnormalized=nfkc" +export CXXFLAGS="${CXXFLAGS} -Wnull-dereference" +export CXXFLAGS="${CXXFLAGS} -Wodr" +# probably need fix it +#export CXXFLAGS="${CXXFLAGS} -Wold-style-cast" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wold-style-declaration" +#export CXXFLAGS="${CXXFLAGS} -Wold-style-definition" +export CXXFLAGS="${CXXFLAGS} -Wopenmp-simd" +export CXXFLAGS="${CXXFLAGS} -Woverflow" +export CXXFLAGS="${CXXFLAGS} -Woverlength-strings" +# disabled because exists some overloaded virtuals +#export CXXFLAGS="${CXXFLAGS} -Woverloaded-virtual" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Woverride-init" +#export CXXFLAGS="${CXXFLAGS} -Woverride-init-side-effects" +export CXXFLAGS="${CXXFLAGS} -Wpacked" +export CXXFLAGS="${CXXFLAGS} -Wpacked-bitfield-compat" +# +++ may be need fix in future? +#export CXXFLAGS="${CXXFLAGS} -Wpadded" +export CXXFLAGS="${CXXFLAGS} -Wparentheses" +export CXXFLAGS="${CXXFLAGS} -Wpedantic" +export CXXFLAGS="${CXXFLAGS} -Wplacement-new" +#export CXXFLAGS="${CXXFLAGS} -Wplacement-new=" +export CXXFLAGS="${CXXFLAGS} -Wpmf-conversions" +export CXXFLAGS="${CXXFLAGS} -Wpointer-arith" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wpointer-sign" +#export CXXFLAGS="${CXXFLAGS} -Wpointer-to-int-cast" +export CXXFLAGS="${CXXFLAGS} -Wpragmas" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wproperty-assign-default" +#export CXXFLAGS="${CXXFLAGS} -Wprotocol" +#export CXXFLAGS="${CXXFLAGS} -Wreal-q-constant" +#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs" +#export CXXFLAGS="${CXXFLAGS} -Wrealloc-lhs-all" +export CXXFLAGS="${CXXFLAGS} -Wredundant-decls" +export CXXFLAGS="${CXXFLAGS} -Wreorder" +export CXXFLAGS="${CXXFLAGS} -Wreturn-local-addr" +export CXXFLAGS="${CXXFLAGS} -Wreturn-type" +export CXXFLAGS="${CXXFLAGS} -Wscalar-storage-order" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wselector" +export CXXFLAGS="${CXXFLAGS} -Wsequence-point" +export CXXFLAGS="${CXXFLAGS} -Wshadow" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wshadow-ivar" +export CXXFLAGS="${CXXFLAGS} -Wshift-count-negative" +export CXXFLAGS="${CXXFLAGS} -Wshift-count-overflow" +export CXXFLAGS="${CXXFLAGS} -Wshift-negative-value" +export CXXFLAGS="${CXXFLAGS} -Wshift-overflow" +#export CXXFLAGS="${CXXFLAGS} -Wshift-overflow=" +export CXXFLAGS="${CXXFLAGS} -Wsign-compare" +# +++ need fix in future +#export CXXFLAGS="${CXXFLAGS} -Wsign-conversion" +export CXXFLAGS="${CXXFLAGS} -Wsign-promo" +export CXXFLAGS="${CXXFLAGS} -Wsized-deallocation" +export CXXFLAGS="${CXXFLAGS} -Wsizeof-array-argument" +export CXXFLAGS="${CXXFLAGS} -Wsizeof-pointer-memaccess" +export CXXFLAGS="${CXXFLAGS} -Wstack-protector" +#export CXXFLAGS="${CXXFLAGS} -Wstack-usage=" +export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing" +#export CXXFLAGS="${CXXFLAGS} -Wstrict-aliasing=" +export CXXFLAGS="${CXXFLAGS} -Wstrict-null-sentinel" +# used before +#export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow" +#export CXXFLAGS="${CXXFLAGS} -Wstrict-overflow=" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wstrict-prototypes" +#export CXXFLAGS="${CXXFLAGS} -Wstrict-selector-match" +export CXXFLAGS="${CXXFLAGS} -Wsubobject-linkage" +# +++ ignoring +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=const" +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=format" +export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=noreturn" +# +++ ignoring +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-attribute=pure" +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-methods" +#export CXXFLAGS="${CXXFLAGS} -Wsuggest-final-types" +export CXXFLAGS="${CXXFLAGS} -Wsuggest-override" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wsurprising" +export CXXFLAGS="${CXXFLAGS} -Wswitch" +export CXXFLAGS="${CXXFLAGS} -Wswitch-bool" +# disable for SDL 2 because issue in headers +#export CXXFLAGS="${CXXFLAGS} -Wswitch-default" +export CXXFLAGS="${CXXFLAGS} -Wno-switch-default" +export CXXFLAGS="${CXXFLAGS} -Wswitch-enum" +export CXXFLAGS="${CXXFLAGS} -Wsync-nand" +export CXXFLAGS="${CXXFLAGS} -Wsynth" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wsystem-headers" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wtabs" +#export CXXFLAGS="${CXXFLAGS} -Wtarget-lifetime" +export CXXFLAGS="${CXXFLAGS} -Wtautological-compare" +# ignoring +#export CXXFLAGS="${CXXFLAGS} -Wtemplates" +export CXXFLAGS="${CXXFLAGS} -Wterminate" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wtraditional" +#export CXXFLAGS="${CXXFLAGS} -Wtraditional-conversion" +export CXXFLAGS="${CXXFLAGS} -Wtrampolines" +export CXXFLAGS="${CXXFLAGS} -Wtrigraphs" +export CXXFLAGS="${CXXFLAGS} -Wtype-limits" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wundeclared-selector" +export CXXFLAGS="${CXXFLAGS} -Wundef" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wunderflow" +export CXXFLAGS="${CXXFLAGS} -Wuninitialized" +export CXXFLAGS="${CXXFLAGS} -Wunknown-pragmas" +# +++ may be try use in future? +#export CXXFLAGS="${CXXFLAGS} -Wunsafe-loop-optimizations" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wunsuffixed-float-constants" +export CXXFLAGS="${CXXFLAGS} -Wunused" +export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-parameter" +export CXXFLAGS="${CXXFLAGS} -Wunused-but-set-variable" +export CXXFLAGS="${CXXFLAGS} -Wunreachable-code" +export CXXFLAGS="${CXXFLAGS} -Wunused-const-variable=1" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wunused-dummy-argument" +export CXXFLAGS="${CXXFLAGS} -Wunused-function" +export CXXFLAGS="${CXXFLAGS} -Wunused-label" +export CXXFLAGS="${CXXFLAGS} -Wunused-local-typedefs" +export CXXFLAGS="${CXXFLAGS} -Wunused-macros" +export CXXFLAGS="${CXXFLAGS} -Wunused-parameter" +export CXXFLAGS="${CXXFLAGS} -Wunused-result" +export CXXFLAGS="${CXXFLAGS} -Wunused-value" +export CXXFLAGS="${CXXFLAGS} -Wunused-variable" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wuse-without-only" +# +++ need from time to time +#export CXXFLAGS="${CXXFLAGS} -Wuseless-cast" +export CXXFLAGS="${CXXFLAGS} -Wvarargs" +export CXXFLAGS="${CXXFLAGS} -Wvariadic-macros" +export CXXFLAGS="${CXXFLAGS} -Wvector-operation-performance" +export CXXFLAGS="${CXXFLAGS} -Wvirtual-inheritance" +export CXXFLAGS="${CXXFLAGS} -Wvirtual-move-assign" +export CXXFLAGS="${CXXFLAGS} -Wvla" +export CXXFLAGS="${CXXFLAGS} -Wvolatile-register-var" +export CXXFLAGS="${CXXFLAGS} -Wwrite-strings" +export CXXFLAGS="${CXXFLAGS} -Wzero-as-null-pointer-constant" +# not for C++ +#export CXXFLAGS="${CXXFLAGS} -Wzerotrip" +#export CXXFLAGS="${CXXFLAGS} -frequire-return-statement" + +run_configure --with-sdl2 +run_make +run_check_warnings + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/mplint.sh b/tools/ci/jobs/mplint.sh new file mode 100755 index 000000000..0ec5421e4 --- /dev/null +++ b/tools/ci/jobs/mplint.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +export CC=gcc +export CXX=g++ +export LOGFILE=mplint_po.log + +source ./tools/ci/scripts/init.sh + +aptget_install gcc g++ git \ + make autoconf automake autopoint gettext + +export CXXFLAGS="-std=gnu++11" + +git clone https://gitlab.com/manaplus/mplint.git +cd mplint +run_configure_simple +run_make +cd .. +run_mplint $* + +source ./tools/ci/scripts/exit.sh + +exit 0 diff --git a/tools/ci/jobs/success.sh b/tools/ci/jobs/success.sh new file mode 100755 index 000000000..74d15a3ba --- /dev/null +++ b/tools/ci/jobs/success.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +export LOGFILE=bot.log +export name="ManaPlus" + +source ./tools/ci/scripts/init.sh +source ./tools/ci/scripts/bot.sh + +aptget_install ii psmisc + +bot_connect "manaplusbot2" +bot_join "#manaplus" + +export gitcommit=$(echo ${CI_BUILD_REF} | cut -c 1-7) + +bot_message "#manaplus" "[${C}02${name}:${CI_BUILD_REF_NAME}${R}] Build success: ${C}03${gitcommit}${R}. See https://gitlab.com/manaplus/manaplus/builds" +bot_exit + +exit 0 diff --git a/tools/ci/scripts/bot.sh b/tools/ci/scripts/bot.sh new file mode 100755 index 000000000..4724530a8 --- /dev/null +++ b/tools/ci/scripts/bot.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +export path=bot +export server=irc.freenode.net +export C="\0003" +export R="\x0f" + +function bot_connect { + mkdir ${path} + ii -s $server -i $path -n $1 -f $1 & + sleep 7s +} + +function bot_join { + echo "/j $1" > "$path/$server/in" + sleep 7s +} + +function bot_message { + echo -e $2 >bot/irc.freenode.net/${1}/in + sleep 1s +} + +function bot_exit { + sleep 5s + killall ii +} diff --git a/tools/ci/scripts/exit.sh b/tools/ci/scripts/exit.sh new file mode 100755 index 000000000..64b758ff1 --- /dev/null +++ b/tools/ci/scripts/exit.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +rm $ERRFILE diff --git a/tools/ci/scripts/init.sh b/tools/ci/scripts/init.sh new file mode 100755 index 000000000..053f36b64 --- /dev/null +++ b/tools/ci/scripts/init.sh @@ -0,0 +1,146 @@ +#!/bin/bash + +pwd +mkdir logs + +export dir=$(pwd) +export ERRFILE=${dir}/logs/${LOGFILE} + +cat /etc/os-release +$CC --version +$CXX --version + +rm ${ERRFILE} + +function aptget_update { + apt-get update + if [ "$?" != 0 ]; then + sleep 1s + apt-get update + if [ "$?" != 0 ]; then + sleep 1s + apt-get update + fi + fi +} + +function aptget_install { + apt-get -y -qq install $* + if [ "$?" != 0 ]; then + sleep 1s + apt-get -y -qq install $* + if [ "$?" != 0 ]; then + sleep 2s + apt-get -y -qq install $* + fi + fi +} + +function run_configure_simple { + rm $ERRFILE + autoreconf -i 2>$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi + + rm $ERRFILE + ./configure $* 2>$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi +} + +function run_configure { + run_configure_simple $* + + rm $ERRFILE + cd po + make update-gmo 2>$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi + cd .. + + rm $ERRFILE + cd po + make update-po 2>$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi + cd .. +} + +function run_cmake { + rm $ERRFILE + cmake . 2>$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi +} + +function run_make { + rm $ERRFILE + make -j2 V=0 $* 2>$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi +} + +function run_check_warnings { + DATA=$(cat $ERRFILE) + if [ "$DATA" != "" ]; + then + cat $ERRFILE + exit 1 + fi +} + +function run_h { + rm $ERRFILE + $CC -c -x c++ $* $includes */*/*/*.h */*/*.h */*.h *.h 2>$ERRFILE + DATA=$(cat $ERRFILE) + if [ "$DATA" != "" ]; + then + cat $ERRFILE + exit 1 + fi +} + +function run_tarball { + rm $ERRFILE + make dist-xz 2>$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi + + mkdir $1 + cd $1 + tar xf ../*.tar.xz + cd manaplus* +} + +function run_mplint { + rm $ERRFILE + mplint/src/mplint $* >$ERRFILE + result=$? + if [ "$result" != 0 ]; then + cat $ERRFILE + exit $result + fi +} + +aptget_update |