diff --git a/.travis.yml b/.travis.yml index 613c74357..0fd88b6e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,20 +8,24 @@ dist: xenial env: matrix: + - libt_branch=RC_1_2 gui=true build_system=qmake + - libt_branch=RC_1_2 gui=false build_system=qmake + - libt_branch=RC_1_2 gui=true build_system=cmake + - libt_branch=RC_1_2 gui=false build_system=cmake - libt_branch=RC_1_1 gui=true build_system=qmake - libt_branch=RC_1_1 gui=false build_system=qmake - libt_branch=RC_1_1 gui=true build_system=cmake - libt_branch=RC_1_1 gui=false build_system=cmake - - libt_branch=RC_1_2 gui=true build_system=qmake global: - secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8=" - coverity_branch: coverity_scan matrix: allow_failures: + - env: libt_branch=RC_1_2 gui=true build_system=cmake + - env: libt_branch=RC_1_2 gui=false build_system=cmake - env: libt_branch=RC_1_1 gui=true build_system=cmake - env: libt_branch=RC_1_1 gui=false build_system=cmake - - env: libt_branch=RC_1_2 gui=true build_system=qmake branches: except: @@ -75,7 +79,7 @@ addons: before_install: # only allow specific build for coverity scan, others will stop - - if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$libt_branch" = "RC_1_1" -a "$gui" = "true" -a "$build_system" = "qmake" ]; then exit ; fi + - if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$libt_branch" = "RC_1_2" -a "$gui" = "true" -a "$build_system" = "qmake" ]; then exit ; fi - shopt -s expand_aliases - alias make="colormake -j2" # Using nprocs/2 sometimes may fail (gcc is killed by system) @@ -88,7 +92,7 @@ before_install: if [ "$TRAVIS_OS_NAME" = "linux" ]; then # setup virtual display for after_success target if [ "$gui" = "true" ]; then export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi ; - + # Qt 5.9 PATH=/opt/qt59/bin:${PATH} qmake_conf="$qmake_conf PKG_CONFIG_PATH=/opt/qt59/lib/pkgconfig:$PKG_CONFIG_PATH" @@ -149,7 +153,7 @@ install: wget https://builds.shiki.hu/travis/deb/libtorrent-rasterbar-dev_1.2.x_amd64.deb wget https://builds.shiki.hu/travis/deb/libtorrent-rasterbar10_1.2.x_amd64.deb fi - + sudo dpkg -i "$HOME/travis/deb/libtorrent-rasterbar-dev_1.2.x_amd64.deb" "$HOME/travis/deb/libtorrent-rasterbar10_1.2.x_amd64.deb" fi - | @@ -171,7 +175,7 @@ install: cp "$HOME/travis/brew/6e4eb13f70df35e8fc7ff41883fef3e5c7b535dd55c78cd2ce1eae3fb4288e21--libtorrent-rasterbar-1.2.0.high_sierra.bottle.tar.gz" "$(brew --cache)/downloads" brew uninstall libtorrent-rasterbar brew install "$HOME/travis/brew/libtorrent-rasterbar.rb" - + # NOTE about the bottle name # The part before the "--" characters is a sha256 hash of the string # of the URL homebrew itself would use to download the bottle. diff --git a/configure b/configure index 4bfc0af21..9cae4c479 100755 --- a/configure +++ b/configure @@ -5591,8 +5591,10 @@ $as_echo "yes" >&6; } fi # Check if already in >= C++14 mode because of the flags returned by one of the above packages -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler is using C++14 or later mode" >&5 -$as_echo_n "checking if compiler is using C++14 or later mode... " >&6; } +TMP_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler defaults to C++14 or later mode" >&5 +$as_echo_n "checking if compiler defaults to C++14 or later mode... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5626,8 +5628,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "x$QBT_CXX14_FOUND" = "xno"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports C++14" >&5 $as_echo_n "checking if compiler supports C++14... " >&6; } - TMP_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=c++14" + CXXFLAGS="-std=c++14" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5672,15 +5673,9 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - CXXFLAGS="$TMP_CXXFLAGS -std=c++14" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C++14 mode is now force enabled. -Make sure you use the same C++ mode for qBittorrent and its dependencies. -To explicitly set qBittorrent to a later mode use CXXFLAGS. -Example: \`CXXFLAGS=\"\$CXXFLAGS -std=c++14\" ./configure\`" >&5 -$as_echo "$as_me: WARNING: C++14 mode is now force enabled. -Make sure you use the same C++ mode for qBittorrent and its dependencies. -To explicitly set qBittorrent to a later mode use CXXFLAGS. -Example: \`CXXFLAGS=\"\$CXXFLAGS -std=c++14\" ./configure\`" >&2;} + QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++14" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C++14 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors." >&5 +$as_echo "$as_me: WARNING: C++14 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors." >&2;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -5695,6 +5690,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +CXXFLAGS="$TMP_CXXFLAGS" # These are required because autoconf doesn't expand these **particular** # vars automatically. And qmake cannot autoexpand them. diff --git a/configure.ac b/configure.ac index 5f2a52f4d..ffd046f6d 100644 --- a/configure.ac +++ b/configure.ac @@ -210,7 +210,9 @@ PKG_CHECK_MODULES(zlib, LIBS="$zlib_LIBS $LIBS"]) # Check if already in >= C++14 mode because of the flags returned by one of the above packages -AC_MSG_CHECKING([if compiler is using C++14 or later mode]) +TMP_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="" +AC_MSG_CHECKING([if compiler defaults to C++14 or later mode]) AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()], [AC_MSG_RESULT([yes]) QBT_CXX14_FOUND="yes"], @@ -221,8 +223,7 @@ AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()], # and if yes, enable it leaving a warning to the user AS_IF([test "x$QBT_CXX14_FOUND" = "xno"], [AC_MSG_CHECKING([if compiler supports C++14]) - TMP_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=c++14" + CXXFLAGS="-std=c++14" AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()], [AC_MSG_RESULT([yes]) AC_MSG_CHECKING([if C++14 is disabled by the set compiler flags]) @@ -230,16 +231,14 @@ AS_IF([test "x$QBT_CXX14_FOUND" = "xno"], CXXFLAGS="-std=c++14 $TMP_CXXFLAGS" AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()], [AC_MSG_RESULT([no]) - CXXFLAGS="$TMP_CXXFLAGS -std=c++14" - AC_MSG_WARN([C++14 mode is now force enabled. -Make sure you use the same C++ mode for qBittorrent and its dependencies. -To explicitly set qBittorrent to a later mode use CXXFLAGS. -Example: `CXXFLAGS="\$CXXFLAGS -std=c++14" ./configure`])], + QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++14" + AC_MSG_WARN([C++14 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors.])], [AC_MSG_RESULT([yes]) AC_MSG_ERROR([The compiler supports C++14 but the user or a dependency has explicitly enabled a lower mode.])])], [AC_MSG_RESULT([no]) AC_MSG_ERROR([A compiler supporting C++14 is required.])]) ]) +CXXFLAGS="$TMP_CXXFLAGS" # These are required because autoconf doesn't expand these **particular** # vars automatically. And qmake cannot autoexpand them.