From 516641cfb6a1797991da1ad10fc40096cf7413ab Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 24 Feb 2019 11:12:37 +0100 Subject: .travis.yml: add build with g++-7 and -D_GLIBCXX_ASSERTIONS (refs #1290) --- travis/install.sh | 2 +- travis/linux_gcc7/after_success.sh | 5 +++++ travis/linux_gcc7/before_install.sh | 20 ++++++++++++++++++++ travis/linux_gcc7/install.sh | 7 +++++++ 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100755 travis/linux_gcc7/after_success.sh create mode 100755 travis/linux_gcc7/before_install.sh create mode 100755 travis/linux_gcc7/install.sh (limited to 'travis') diff --git a/travis/install.sh b/travis/install.sh index 2013a610..f5fa7d08 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -23,7 +23,7 @@ cd $TAR_DIRECTORY mkdir build_autoconf cd build_autoconf if [ -f /usr/lib/jvm/java-7-openjdk-amd64/include/jni.h ]; then - CXXFLAGS="-I/usr/lib/jvm/java-7-openjdk-amd64/include -I/usr/lib/jvm/java-7-openjdk-amd64/include/linux" ../configure --prefix=/tmp/proj_autoconf_install_from_dist_all --with-jni + CXXFLAGS="-I/usr/lib/jvm/java-7-openjdk-amd64/include -I/usr/lib/jvm/java-7-openjdk-amd64/include/linux $CXXFLAGS" ../configure --prefix=/tmp/proj_autoconf_install_from_dist_all --with-jni else ../configure --prefix=/tmp/proj_autoconf_install_from_dist_all fi diff --git a/travis/linux_gcc7/after_success.sh b/travis/linux_gcc7/after_success.sh new file mode 100755 index 00000000..70c6f5cb --- /dev/null +++ b/travis/linux_gcc7/after_success.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +set -e + +#./travis/after_success.sh diff --git a/travis/linux_gcc7/before_install.sh b/travis/linux_gcc7/before_install.sh new file mode 100755 index 00000000..25c7483f --- /dev/null +++ b/travis/linux_gcc7/before_install.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -e + +./travis/before_install.sh + +sudo apt-get update -qq +sudo apt-get install -y cppcheck +sudo apt-get install -qq lcov +sudo apt-get install -qq doxygen graphviz +sudo apt-get install -qq sqlite3 libsqlite3-dev +sudo apt-get install -qq openjdk-7-jdk + +#scripts/cppcheck.sh +#scripts/doxygen.sh + +#pip install --user sphinxcontrib-bibtex +#pip install --user cpp-coveralls + +#./travis/docker.sh diff --git a/travis/linux_gcc7/install.sh b/travis/linux_gcc7/install.sh new file mode 100755 index 00000000..b957b927 --- /dev/null +++ b/travis/linux_gcc7/install.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +export CCACHE_CPP2=yes + +CC="ccache $CC" CXX="ccache $CXX" CFLAGS="-std=c89 -Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh -- cgit v1.2.3 From cb8387fa4d2e0e9cca6dfc3da8f4a6d6aaeb36cb Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 27 Feb 2019 11:10:00 +0100 Subject: Travis/Appveyor: use proj-datumgrid-1.8 --- travis/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'travis') diff --git a/travis/install.sh b/travis/install.sh index f5fa7d08..e37644f4 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -3,7 +3,7 @@ set -e # Download grid files -wget http://download.osgeo.org/proj/proj-datumgrid-1.7.zip +wget http://download.osgeo.org/proj/proj-datumgrid-1.8.zip # prepare build files ./autogen.sh @@ -49,7 +49,7 @@ cd .. cd ../.. # Install grid files -(cd data && unzip -o ../proj-datumgrid-1.7.zip) +(cd data && unzip -o ../proj-datumgrid-1.8.zip) # autoconf build with grids mkdir build_autoconf_grids -- cgit v1.2.3 From 519c6bcac04a9e0f74511aa241ad8cfd3191ccd8 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Fri, 1 Mar 2019 19:13:31 +0100 Subject: Update docs and travis for 6.0.0 release --- travis/after_success.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'travis') diff --git a/travis/after_success.sh b/travis/after_success.sh index 0adb6d77..a8bcc915 100755 --- a/travis/after_success.sh +++ b/travis/after_success.sh @@ -11,7 +11,7 @@ fi echo "$TRAVIS_SECURE_ENV_VARS" ./travis/build_docs.sh # Only build and publish docs when changes are made on most recent maintenance branch -if test "$TRAVIS_SECURE_ENV_VARS" = "true" -a "$TRAVIS_BRANCH" = "5.2"; then +if test "$TRAVIS_SECURE_ENV_VARS" = "true" -a "$TRAVIS_BRANCH" = "6.0"; then echo "publish website"; ./travis/add_deploy_key.sh; ./travis/deploy_website.sh $TRAVIS_BUILD_DIR/docs/build /tmp; -- cgit v1.2.3 From 2c28ca1798cb24b803c44ceebd34bb3f15822c87 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Fri, 5 Apr 2019 12:56:58 +1300 Subject: Adjust test outputs - Tests should use unified diff with expected results - Show CMake build compile commands (VERBOSE=1) - Travis CI only has two cores, so "-j2" is sufficent --- travis/csa/install.sh | 2 +- travis/install.sh | 8 ++++---- travis/mingw32/install.sh | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'travis') diff --git a/travis/csa/install.sh b/travis/csa/install.sh index 301aead9..12a1bf6d 100755 --- a/travis/csa/install.sh +++ b/travis/csa/install.sh @@ -6,6 +6,6 @@ set -e ./autogen.sh CXXFLAGS="-std=c++11" ./clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04/bin/scan-build -o scanbuildoutput -plist -v ./configure -./clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04/bin/scan-build -o scanbuildoutput -plist -v make -j3 +./clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04/bin/scan-build -o scanbuildoutput -plist -v make -j2 if grep -r "\.c" scanbuildoutput | grep "" | grep -v -e "" -e _generated_parser; then echo "error" && /bin/false; else echo "ok"; fi diff --git a/travis/install.sh b/travis/install.sh index e37644f4..c8da9046 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -27,7 +27,7 @@ if [ -f /usr/lib/jvm/java-7-openjdk-amd64/include/jni.h ]; then else ../configure --prefix=/tmp/proj_autoconf_install_from_dist_all fi -make -j3 +make -j2 make check make install find /tmp/proj_autoconf_install_from_dist_all @@ -37,7 +37,7 @@ cd .. mkdir build_cmake cd build_cmake cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/proj_cmake_install -make -j3 +VERBOSE=1 make -j2 make install # The cmake build is not able to generate the null file, so copy it at hand cp /tmp/proj_autoconf_install_from_dist_all/share/proj/null /tmp/proj_cmake_install/share/proj @@ -55,7 +55,7 @@ cd ../.. mkdir build_autoconf_grids cd build_autoconf_grids ../configure --prefix=/tmp/proj_autoconf_install_grids -make -j3 +make -j2 make check (cd src && make multistresstest && make test228) PROJ_LIB=../data src/multistresstest @@ -74,7 +74,7 @@ if [ "$BUILD_NAME" != "linux_clang" ]; then else ./configure fi -make -j3 +make -j2 make check # Rerun tests without grids not included in proj-datumgrid diff --git a/travis/mingw32/install.sh b/travis/mingw32/install.sh index e4fcfe72..d38f289f 100755 --- a/travis/mingw32/install.sh +++ b/travis/mingw32/install.sh @@ -13,7 +13,7 @@ ln -s /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll $HOME/.wine/drive_c/windo # build sqlite3 wget https://sqlite.org/2018/sqlite-autoconf-3250100.tar.gz tar xzf sqlite-autoconf-3250100.tar.gz -(cd sqlite-autoconf-3250100 && CC="ccache x86_64-w64-mingw32-gcc" CXX="ccache x86_64-w64-mingw32-g++" LD=x86_64-w64-mingw32-ld ./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 && make -j3 && sudo make install) +(cd sqlite-autoconf-3250100 && CC="ccache x86_64-w64-mingw32-gcc" CXX="ccache x86_64-w64-mingw32-g++" LD=x86_64-w64-mingw32-ld ./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 && make -j2 && sudo make install) ln -s /usr/x86_64-w64-mingw32/bin/libsqlite3-0.dll $HOME/.wine/drive_c/windows # prepare build files @@ -22,11 +22,11 @@ ln -s /usr/x86_64-w64-mingw32/bin/libsqlite3-0.dll $HOME/.wine/drive_c/windows mkdir build_autoconf cd build_autoconf CC="ccache x86_64-w64-mingw32-gcc" CXX="ccache x86_64-w64-mingw32-g++" LD=x86_64-w64-mingw32-ld ../configure --host=x86_64-w64-mingw32 --prefix=/tmp/proj_autoconf_install -make -j3 +make -j2 make install make dist-all find /tmp/proj_autoconf_install -(cd test; make -j3) +(cd test; make -j2) test/unit/test_cpp_api.exe cd .. # Now with grids @@ -38,7 +38,7 @@ cd .. mkdir build_autoconf_grids cd build_autoconf_grids CC="ccache x86_64-w64-mingw32-gcc" CXX="ccache x86_64-w64-mingw32-g++" LD=x86_64-w64-mingw32-ld ../configure --host=x86_64-w64-mingw32 --prefix=/tmp/proj_autoconf_install_nad -make -j3 +make -j2 make install find /tmp/proj_autoconf_install_nad #make check -- cgit v1.2.3 From ce0c1164626b6d908f5cf58bac65f5fed24b908d Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Fri, 5 Apr 2019 17:25:44 +1300 Subject: Disable status bars from 'pip install' Also simplify language for .travis.yml --- travis/before_install.sh | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'travis') diff --git a/travis/before_install.sh b/travis/before_install.sh index ac45a6d4..59b5be9f 100755 --- a/travis/before_install.sh +++ b/travis/before_install.sh @@ -2,3 +2,7 @@ # All platform-specific before_install scripts starts by running this # "global" before_install script. + +# Configure Python pip +pip install --user --upgrade pip +pip config --user set global.progress_bar off -- cgit v1.2.3 From e5c84c7383697ae5a698563bcf93fdcc74215da6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 22 Apr 2019 17:05:43 +0200 Subject: Fix doc build on Travis OSX Latest breathe 4.13.0 no longer work with sphinx 1.8.5 / Pyhon 2, so force use 4.12.0 for now. See https://travis-ci.com/OSGeo/proj.4/jobs/194629602 https://github.com/michaeljones/breathe/issues/431 --- travis/osx/before_install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'travis') diff --git a/travis/osx/before_install.sh b/travis/osx/before_install.sh index 3e9d8d46..a5d40af5 100755 --- a/travis/osx/before_install.sh +++ b/travis/osx/before_install.sh @@ -10,6 +10,7 @@ brew install sqlite3 brew install doxygen export PATH=$HOME/Library/Python/2.7/bin:$PATH -pip install --user sphinx sphinx-rtd-theme sphinxcontrib-bibtex breathe +# breathe=4.12.0 is the last version to work for us with sphinx 1.8.5 / Python 2 +pip install --user sphinx sphinx-rtd-theme sphinxcontrib-bibtex breathe==4.12.0 which sphinx-build (cd docs; make html) -- cgit v1.2.3 From e168ad31badb6702240174250894a76385da323b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 26 Apr 2019 18:43:42 +0200 Subject: Travis: check that the exported symbols conform to what is expected This is to help checking that we do not introduce un-intended API/ABI breakage. Not fully bullet proof, but a start. --- travis/install.sh | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'travis') diff --git a/travis/install.sh b/travis/install.sh index c8da9046..1b0cc759 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -7,6 +7,7 @@ wget http://download.osgeo.org/proj/proj-datumgrid-1.8.zip # prepare build files ./autogen.sh +TOP_DIR=$PWD # autoconf build mkdir build_autoconf @@ -28,6 +29,13 @@ else ../configure --prefix=/tmp/proj_autoconf_install_from_dist_all fi make -j2 + +if [ "$(uname)" == "Linux" -a -f src/.libs/libproj.so ]; then + echo "Checking exported symbols..." + ${TOP_DIR}/scripts/dump_exported_symbols.sh src/.libs/libproj.so > /tmp/got_symbols.txt + diff -u ${TOP_DIR}/scripts/reference_exported_symbols.txt /tmp/got_symbols.txt || (echo "Difference(s) found in exported symbols. If intended, refresh scripts/reference_exported_symbols.txt with 'scripts/dump_exported_symbols.sh src/.libs/libproj.so > scripts/reference_exported_symbols.txt'"; exit 1) +fi + make check make install find /tmp/proj_autoconf_install_from_dist_all -- cgit v1.2.3 From 0fc0c6d8d535fcbf8b7c72d5a6c22c9daa780d49 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 28 Apr 2019 21:54:41 +0200 Subject: travis/install.sh: use make -j$(nproc) --- travis/install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'travis') diff --git a/travis/install.sh b/travis/install.sh index c8da9046..950ed45f 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -27,7 +27,7 @@ if [ -f /usr/lib/jvm/java-7-openjdk-amd64/include/jni.h ]; then else ../configure --prefix=/tmp/proj_autoconf_install_from_dist_all fi -make -j2 +make -j$(nproc) make check make install find /tmp/proj_autoconf_install_from_dist_all @@ -37,7 +37,7 @@ cd .. mkdir build_cmake cd build_cmake cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/proj_cmake_install -VERBOSE=1 make -j2 +VERBOSE=1 make -j$(nproc) make install # The cmake build is not able to generate the null file, so copy it at hand cp /tmp/proj_autoconf_install_from_dist_all/share/proj/null /tmp/proj_cmake_install/share/proj @@ -55,7 +55,7 @@ cd ../.. mkdir build_autoconf_grids cd build_autoconf_grids ../configure --prefix=/tmp/proj_autoconf_install_grids -make -j2 +make -j$(nproc) make check (cd src && make multistresstest && make test228) PROJ_LIB=../data src/multistresstest @@ -74,7 +74,7 @@ if [ "$BUILD_NAME" != "linux_clang" ]; then else ./configure fi -make -j2 +make -j$(nproc) make check # Rerun tests without grids not included in proj-datumgrid -- cgit v1.2.3 From 7bf0f597b8b0d7d209d856fa106b521ed65678af Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 28 Apr 2019 22:01:40 +0200 Subject: autoconf build: add a PROJ_DB_CACHE_DIR trick to speed-up builds If the PROJ_DB_CACHE_DIR environment variable is defined, then a $(PROJ_DB_CACHED_DIR)/proj.db.sql.md5 file is used to determine if the set of .sql files has changed since the last time. If not then $(PROJ_DB_CACHED_DIR)/proj.db is directly used. This can saved a few seconds when doing rebuilds. This is a poor man equivalent of ccache for generating the database :-) --- travis/linux_clang/install.sh | 1 + travis/linux_gcc/install.sh | 1 + travis/linux_gcc7/install.sh | 1 + travis/mingw32/install.sh | 1 + travis/osx/install.sh | 1 + 5 files changed, 5 insertions(+) (limited to 'travis') diff --git a/travis/linux_clang/install.sh b/travis/linux_clang/install.sh index f4b1ad12..50c02882 100755 --- a/travis/linux_clang/install.sh +++ b/travis/linux_clang/install.sh @@ -3,6 +3,7 @@ set -e export CCACHE_CPP2=yes +export PROJ_DB_CACHE_DIR="$HOME/.ccache" # -fno-use-cxa-atexit is needed to build with -coverage CC="ccache clang" CXX="ccache clang++" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./travis/install.sh diff --git a/travis/linux_gcc/install.sh b/travis/linux_gcc/install.sh index ad5caa9c..17f07c56 100755 --- a/travis/linux_gcc/install.sh +++ b/travis/linux_gcc/install.sh @@ -3,5 +3,6 @@ set -e export CCACHE_CPP2=yes +export PROJ_DB_CACHE_DIR="$HOME/.ccache" CC="ccache gcc" CXX="ccache g++" CFLAGS="-std=c89 -Werror" CXXFLAGS="-Werror" ./travis/install.sh diff --git a/travis/linux_gcc7/install.sh b/travis/linux_gcc7/install.sh index b957b927..dbd1f076 100755 --- a/travis/linux_gcc7/install.sh +++ b/travis/linux_gcc7/install.sh @@ -3,5 +3,6 @@ set -e export CCACHE_CPP2=yes +export PROJ_DB_CACHE_DIR="$HOME/.ccache" CC="ccache $CC" CXX="ccache $CXX" CFLAGS="-std=c89 -Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh diff --git a/travis/mingw32/install.sh b/travis/mingw32/install.sh index d38f289f..80d591f4 100755 --- a/travis/mingw32/install.sh +++ b/travis/mingw32/install.sh @@ -3,6 +3,7 @@ set -e export CCACHE_CPP2=yes +export PROJ_DB_CACHE_DIR="$HOME/.ccache" # prepare wine environment wine64 cmd /c dir diff --git a/travis/osx/install.sh b/travis/osx/install.sh index 46bdbb22..4869ee65 100755 --- a/travis/osx/install.sh +++ b/travis/osx/install.sh @@ -3,5 +3,6 @@ set -e export CCACHE_CPP2=yes +export PROJ_DB_CACHE_DIR="$HOME/.ccache" CC="ccache clang" CXX="ccache clang++" CFLAGS="-Werror -O2" CXXFLAGS="-Werror -O2" ./travis/install.sh -- cgit v1.2.3 From 671e69f77a13f4167e1da2e1e21fc8e5714141c8 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 28 Apr 2019 23:14:33 +0200 Subject: travis/install.sh: fix previous commit that failed on MacOSX --- travis/install.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'travis') diff --git a/travis/install.sh b/travis/install.sh index 950ed45f..3c1e92da 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -2,6 +2,17 @@ set -e +UNAME="$(uname)" || UNAME="" +if test "${UNAME}" = "Linux" ; then + NPROC=$(nproc); +elif test "${UNAME}" = "Darwin" ; then + NPROC=$(sysctl -n hw.ncpu); +fi +if test "x${NPROC}" = "x"; then + NPROC=2; +fi +echo "NPROC=${NPROC}" + # Download grid files wget http://download.osgeo.org/proj/proj-datumgrid-1.8.zip @@ -27,7 +38,7 @@ if [ -f /usr/lib/jvm/java-7-openjdk-amd64/include/jni.h ]; then else ../configure --prefix=/tmp/proj_autoconf_install_from_dist_all fi -make -j$(nproc) +make -j${NPROC} make check make install find /tmp/proj_autoconf_install_from_dist_all @@ -37,7 +48,7 @@ cd .. mkdir build_cmake cd build_cmake cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/proj_cmake_install -VERBOSE=1 make -j$(nproc) +VERBOSE=1 make -j${NPROC} make install # The cmake build is not able to generate the null file, so copy it at hand cp /tmp/proj_autoconf_install_from_dist_all/share/proj/null /tmp/proj_cmake_install/share/proj @@ -55,7 +66,7 @@ cd ../.. mkdir build_autoconf_grids cd build_autoconf_grids ../configure --prefix=/tmp/proj_autoconf_install_grids -make -j$(nproc) +make -j${NPROC} make check (cd src && make multistresstest && make test228) PROJ_LIB=../data src/multistresstest @@ -74,7 +85,7 @@ if [ "$BUILD_NAME" != "linux_clang" ]; then else ./configure fi -make -j$(nproc) +make -j${NPROC} make check # Rerun tests without grids not included in proj-datumgrid -- cgit v1.2.3 From b4d9dd437163ecf9c7bf7f16aa4db23321882944 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 6 May 2019 21:25:05 +0200 Subject: data/Makefile.am: add detection of md5sum utility, and install md5sha1sum on MacOSX Travis --- travis/osx/before_install.sh | 1 + 1 file changed, 1 insertion(+) (limited to 'travis') diff --git a/travis/osx/before_install.sh b/travis/osx/before_install.sh index a5d40af5..964fbc67 100755 --- a/travis/osx/before_install.sh +++ b/travis/osx/before_install.sh @@ -8,6 +8,7 @@ brew update brew install ccache brew install sqlite3 brew install doxygen +brew install md5sha1sum export PATH=$HOME/Library/Python/2.7/bin:$PATH # breathe=4.12.0 is the last version to work for us with sphinx 1.8.5 / Python 2 -- cgit v1.2.3