aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Taves <mwtoews@gmail.com>2019-09-25 10:58:10 +1200
committerMike Taves <mwtoews@gmail.com>2019-09-25 11:16:27 +1200
commit14828d9695ab54272fee0dab35a489180c20f2ea (patch)
tree2435fe59d4c39a6a73b210886e45776e74dd4689
parenta71fce63c2d77b6709005667efd577d728b900e9 (diff)
downloadPROJ-14828d9695ab54272fee0dab35a489180c20f2ea.tar.gz
PROJ-14828d9695ab54272fee0dab35a489180c20f2ea.zip
Rearrange Travis CI scripts to be more modular
* Split global before_install for apt and pip * Use -qq option for apt-get, which implies -y * Use list of targets with apt-get rather than one-per-line * Use local variables for mingw32/install.sh * Show version info for cppcheck, pip and python * Simplify clang+llvm-6 path
-rw-r--r--docs/source/community/code_contributions.rst7
-rwxr-xr-xscripts/cppcheck.sh4
-rwxr-xr-xtravis/before_install_apt.sh7
-rwxr-xr-xtravis/before_install_pip.sh (renamed from travis/before_install.sh)1
-rwxr-xr-xtravis/csa/before_install.sh11
-rwxr-xr-xtravis/csa/install.sh4
-rwxr-xr-xtravis/linux_clang/before_install.sh7
-rwxr-xr-xtravis/linux_gcc/before_install.sh16
-rwxr-xr-xtravis/linux_gcc7/before_install.sh17
-rwxr-xr-xtravis/mingw32/before_install.sh21
-rwxr-xr-xtravis/mingw32/install.sh19
-rwxr-xr-xtravis/osx/before_install.sh5
12 files changed, 66 insertions, 53 deletions
diff --git a/docs/source/community/code_contributions.rst b/docs/source/community/code_contributions.rst
index c3e835c8..3c8850bd 100644
--- a/docs/source/community/code_contributions.rst
+++ b/docs/source/community/code_contributions.rst
@@ -117,18 +117,19 @@ Preliminary step: install clang. For example:
wget http://releases.llvm.org/6.0.0/clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz
tar xJf clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz
+ mv clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04 clang+llvm-6
Run configure under the scan-build utility of clang:
::
- ./clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04/bin/scan-build ./configure
+ ./clang+llvm-6/bin/scan-build ./configure
Build under scan-build:
::
- ./clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04/bin/scan-build make [-j8]
+ ./clang+llvm-6/bin/scan-build make [-j8]
If CSA finds errors, they will be emitted during the build. And in which case,
at the end of the build process, scan-build will emit a warning message
@@ -137,7 +138,7 @@ is with someling like
::
- ./clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04/bin/scan-view /tmp/scan-build-2018-03-15-121416-17476-1
+ ./clang+llvm-6/bin/scan-view /tmp/scan-build-2018-03-15-121416-17476-1
This will open a web browser with the interactive report.
diff --git a/scripts/cppcheck.sh b/scripts/cppcheck.sh
index 244fac41..19620207 100755
--- a/scripts/cppcheck.sh
+++ b/scripts/cppcheck.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Note: tested with cppcheck 1.72 as shipped with Ubuntu 16.04
-# as well as with cppcheck 1.76.1
+# Note: tested with cppcheck 1.61 as shipped with Ubuntu 14.04
+echo `cppcheck --version`
LOG_FILE=/tmp/cppcheck_proj.txt
diff --git a/travis/before_install_apt.sh b/travis/before_install_apt.sh
new file mode 100755
index 00000000..aea7a8d3
--- /dev/null
+++ b/travis/before_install_apt.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# All Debian-like before_install scripts starts by running this
+# "global" before_install script.
+
+sudo apt-get update -qq
+sudo apt-get install -qq python3-pip
diff --git a/travis/before_install.sh b/travis/before_install_pip.sh
index a577a7ce..30a7f767 100755
--- a/travis/before_install.sh
+++ b/travis/before_install_pip.sh
@@ -5,5 +5,6 @@
# Configure Python pip
pip3 install --user --upgrade pip
+echo `pip3 --version`
pip3 config --user set global.progress_bar off
pip3 install --user jsonschema
diff --git a/travis/csa/before_install.sh b/travis/csa/before_install.sh
index 58446f65..cdd58257 100755
--- a/travis/csa/before_install.sh
+++ b/travis/csa/before_install.sh
@@ -1,12 +1,13 @@
#!/bin/bash
set -e
-sudo apt-get update -qq
-sudo apt-get install -qq python3-pip
-./travis/before_install.sh
+./travis/before_install_apt.sh
+./travis/before_install_pip.sh
sudo apt-get install -qq sqlite3 libsqlite3-dev
-wget http://releases.llvm.org/6.0.0/clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz
-tar xJf clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz
+CLANG_LLVM=clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04
+wget http://releases.llvm.org/6.0.0/$CLANG_LLVM.tar.xz
+tar xJf $CLANG_LLVM.tar.xz
+mv $CLANG_LLVM clang+llvm-6
diff --git a/travis/csa/install.sh b/travis/csa/install.sh
index 12a1bf6d..334389ee 100755
--- a/travis/csa/install.sh
+++ b/travis/csa/install.sh
@@ -5,7 +5,7 @@ set -e
# prepare build files
./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 -j2
+CXXFLAGS="-std=c++11" ./clang+llvm-6/bin/scan-build -o scanbuildoutput -plist -v ./configure
+./clang+llvm-6/bin/scan-build -o scanbuildoutput -plist -v make -j2
if grep -r "\.c" scanbuildoutput | grep "<string>" | grep -v -e "<key>" -e _generated_parser; then echo "error" && /bin/false; else echo "ok"; fi
diff --git a/travis/linux_clang/before_install.sh b/travis/linux_clang/before_install.sh
index 167bc667..8ce465a2 100755
--- a/travis/linux_clang/before_install.sh
+++ b/travis/linux_clang/before_install.sh
@@ -1,9 +1,8 @@
#!/bin/bash
set -e
-sudo apt-get update -qq
-sudo apt-get install -qq python3-pip
-./travis/before_install.sh
+./travis/before_install_apt.sh
+./travis/before_install_pip.sh
-sudo apt-get install -qq sqlite3 libsqlite3-dev \ No newline at end of file
+sudo apt-get install -qq sqlite3 libsqlite3-dev
diff --git a/travis/linux_gcc/before_install.sh b/travis/linux_gcc/before_install.sh
index f7111631..30793e69 100755
--- a/travis/linux_gcc/before_install.sh
+++ b/travis/linux_gcc/before_install.sh
@@ -1,16 +1,16 @@
#!/bin/bash
set -e
-sudo apt-get update -qq
-sudo apt-get install -qq python3-pip
-./travis/before_install.sh
+./travis/before_install_apt.sh
+./travis/before_install_pip.sh
-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
+sudo apt-get install -qq \
+ cppcheck \
+ lcov \
+ doxygen graphviz \
+ openjdk-7-jdk \
+ sqlite3 libsqlite3-dev
scripts/cppcheck.sh
scripts/doxygen.sh
diff --git a/travis/linux_gcc7/before_install.sh b/travis/linux_gcc7/before_install.sh
index 50fd4c36..df2bd672 100755
--- a/travis/linux_gcc7/before_install.sh
+++ b/travis/linux_gcc7/before_install.sh
@@ -1,17 +1,16 @@
#!/bin/bash
set -e
-sudo apt-get update -qq
-sudo apt-get install -qq python3-pip
-./travis/before_install.sh
+./travis/before_install_apt.sh
+./travis/before_install_pip.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
+sudo apt-get install -qq \
+ cppcheck \
+ lcov \
+ doxygen graphviz \
+ openjdk-7-jdk \
+ sqlite3 libsqlite3-dev
#scripts/cppcheck.sh
#scripts/doxygen.sh
diff --git a/travis/mingw32/before_install.sh b/travis/mingw32/before_install.sh
index d67d8194..f33d18ff 100755
--- a/travis/mingw32/before_install.sh
+++ b/travis/mingw32/before_install.sh
@@ -1,16 +1,15 @@
#!/bin/bash
set -e
-sudo apt-get update -qq
-sudo apt-get install -qq python3-pip
-./travis/before_install.sh
+./travis/before_install_apt.sh
+./travis/before_install_pip.sh
-sudo apt-get install wget
-sudo apt-get install binutils-mingw-w64-x86-64
-sudo apt-get install gcc-mingw-w64-x86-64
-sudo apt-get install g++-mingw-w64-x86-64
-sudo apt-get install g++-mingw-w64
-sudo apt-get install mingw-w64-tools
-sudo apt-get install -y wine1.4-amd64
-sudo apt-get install sqlite3
+sudo apt-get install -qq \
+ wget \
+ binutils-mingw-w64-x86-64 \
+ gcc-mingw-w64-x86-64 \
+ g++-mingw-w64-x86-64 \
+ mingw-w64-tools \
+ wine1.4-amd64 \
+ sqlite3
diff --git a/travis/mingw32/install.sh b/travis/mingw32/install.sh
index af7761c3..867ca716 100755
--- a/travis/mingw32/install.sh
+++ b/travis/mingw32/install.sh
@@ -5,24 +5,29 @@ set -e
export CCACHE_CPP2=yes
export PROJ_DB_CACHE_DIR="$HOME/.ccache"
+MINGW_ARCH=x86_64-w64-mingw32
+MINGW_PREFIX=/usr/lib/gcc/$MINGW_ARCH/4.8
+
# prepare wine environment
+WINE_SYSDIR=$HOME/.wine/drive_c/windows
wine64 cmd /c dir
-ln -s /usr/lib/gcc/x86_64-w64-mingw32/4.8/libstdc++-6.dll $HOME/.wine/drive_c/windows
-ln -s /usr/lib/gcc/x86_64-w64-mingw32/4.8/libgcc_s_sjlj-1.dll $HOME/.wine/drive_c/windows
-ln -s /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll $HOME/.wine/drive_c/windows
+ln -s $MINGW_PREFIX/libstdc++-6.dll $WINE_SYSDIR
+ln -s $MINGW_PREFIX/libgcc_s_sjlj-1.dll $WINE_SYSDIR
+ln -s /usr/$MINGW_ARCH/lib/libwinpthread-1.dll $WINE_SYSDIR
# 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 -j2 && sudo make install)
-ln -s /usr/x86_64-w64-mingw32/bin/libsqlite3-0.dll $HOME/.wine/drive_c/windows
+(cd sqlite-autoconf-3250100 && CC="ccache $MINGW_ARCH-gcc" CXX="ccache $MINGW_ARCH-g++" LD=$MINGW_ARCH-ld
+./configure --host=$MINGW_ARCH --prefix=/usr/$MINGW_ARCH && make -j2 && sudo make install)
+ln -s /usr/$MINGW_ARCH/bin/libsqlite3-0.dll $WINE_SYSDIR
# prepare build files
./autogen.sh
# autoconf build
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
+CC="ccache $MINGW_ARCH-gcc" CXX="ccache $MINGW_ARCH-g++" LD=$MINGW_ARCH-ld ../configure --host=$MINGW_ARCH --prefix=/tmp/proj_autoconf_install
make -j2
make install
make dist-all
@@ -38,7 +43,7 @@ cd ..
# autoconf build with grids
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
+CC="ccache $MINGW_ARCH-gcc" CXX="ccache $MINGW_ARCH-g++" LD=$MINGW_ARCH-ld ../configure --host=$MINGW_ARCH --prefix=/tmp/proj_autoconf_install_nad
make -j2
make install
find /tmp/proj_autoconf_install_nad
diff --git a/travis/osx/before_install.sh b/travis/osx/before_install.sh
index 55c0667a..450d2838 100755
--- a/travis/osx/before_install.sh
+++ b/travis/osx/before_install.sh
@@ -4,14 +4,15 @@ set -e
export PATH=$HOME/Library/Python/3.6/bin:$PATH
-./travis/before_install.sh
-
brew update
brew install ccache
brew install sqlite3
brew install doxygen
brew install md5sha1sum
+./travis/before_install_pip.sh
+
pip3 install --user sphinx sphinx-rtd-theme sphinxcontrib-bibtex breathe
which sphinx-build
+
(cd docs; make html)