From ce7e1791d926d701ecc9f350b80eebbd6e246f41 Mon Sep 17 00:00:00 2001
From: Davide Gerhard <rainbow@irh.it>
Date: Sat, 25 May 2019 11:05:41 +0200
Subject: [PATCH] travis-ci: test EXTERNAL_LIBRARIES and added new dependencies

---
 .travis.yml                               | 30 +++++++++++------------
 cmake/ci/build_airspyhf.sh                | 13 ++++++++++
 cmake/ci/build_cm256cc.sh                 | 13 ++++++++++
 cmake/ci/build_codec2.sh                  | 15 ++++++++++++
 cmake/ci/build_dsdcc.sh                   | 13 ++++++++++
 cmake/ci/build_mbelib.sh                  | 13 ++++++++++
 cmake/ci/build_perseus-sdr.sh             | 14 +++++++++++
 cmake/{travis-ci => ci}/build_sdrangel.sh |  4 +--
 cmake/ci/build_serialdv.sh                | 13 ++++++++++
 cmake/ci/build_xtrx-sdr.sh                | 12 +++++++++
 cmake/travis-ci/build_cm256cc.sh          | 10 --------
 cmake/travis-ci/build_codec2.sh           | 12 ---------
 cmake/travis-ci/build_dsdcc.sh            | 10 --------
 13 files changed, 122 insertions(+), 50 deletions(-)
 create mode 100644 cmake/ci/build_airspyhf.sh
 create mode 100644 cmake/ci/build_cm256cc.sh
 create mode 100644 cmake/ci/build_codec2.sh
 create mode 100644 cmake/ci/build_dsdcc.sh
 create mode 100644 cmake/ci/build_mbelib.sh
 create mode 100644 cmake/ci/build_perseus-sdr.sh
 rename cmake/{travis-ci => ci}/build_sdrangel.sh (71%)
 create mode 100644 cmake/ci/build_serialdv.sh
 create mode 100644 cmake/ci/build_xtrx-sdr.sh
 delete mode 100644 cmake/travis-ci/build_cm256cc.sh
 delete mode 100644 cmake/travis-ci/build_codec2.sh
 delete mode 100644 cmake/travis-ci/build_dsdcc.sh

diff --git a/.travis.yml b/.travis.yml
index b825de30b..e6b83a982 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,6 +5,9 @@ matrix:
   - os: linux
     dist: xenial
     env: CMAKE_CUSTOM_OPTIONS="-DBUILD_GUI=OFF"
+  - os: linux
+    dist: xenial
+    env: CMAKE_CUSTOM_OPTIONS="-DENABLE_EXTERNAL_LIBRARIES=ON"
   - os: osx
     osx_image: xcode10.2
   - os: osx
@@ -43,7 +46,6 @@ addons:
       - librtlsdr-dev
       - libasound2-dev
       - libopencv-dev
-      - libopencv-dev
       - libsqlite3-dev
       - libxml2-dev
       - bison
@@ -67,23 +69,19 @@ install:
   # macOS 10.11 doesn't support newest Qt
   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then if [[ "$TRAVIS_OSX_IMAGE" == "xcode7.3" ]]; then sudo port -N -k install qt59-qtmultimedia qt59-qttools; else sudo port -N -k install qt5-qtmultimedia qt5-qttools; fi; fi
   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then source macports-ci ccache --save; fi
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then bash cmake/travis-ci/build_codec2.sh; fi
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then bash cmake/travis-ci/build_cm256cc.sh; fi
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then bash cmake/travis-ci/build_dsdcc.sh; fi
+  # use codec2 from repository
+  #- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_codec2.sh; fi
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_cm256cc.sh; fi
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_mbelib.sh; fi
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_serialdv.sh; fi
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_dsdcc.sh; fi
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_perseus-sdr.sh; fi
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_xtrx-sdr.sh; fi
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_airspyhf.sh; fi
+
 script:
   - bash -c export
   - bash -c pwd
-  - bash cmake/travis-ci/build_sdrangel.sh
+  - bash cmake/ci/build_sdrangel.sh
 env:
   - CMAKE_CUSTOM_OPTIONS="-DFORCE_SSE41=ON -DBUNDLE=ON -DENABLE_PACK_MIRSDRAPI=ON"
-deploy:
-  provider: pages
-  skip_cleanup: true
-  github_token: $GITHUB_TOKEN
-  keep_history: true
-  on:
-    branch: master
-  repo: sdrangel-travis-ci
-  project_name: SDRangel
-  email: rainbow@irh.it
-  name: rainbow
diff --git a/cmake/ci/build_airspyhf.sh b/cmake/ci/build_airspyhf.sh
new file mode 100644
index 000000000..5cb85dc69
--- /dev/null
+++ b/cmake/ci/build_airspyhf.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p airspy && cd airspy
+
+git clone https://github.com/airspy/airspyhf.git
+
+cd airspyhf
+mkdir -p build && cd build
+cmake .. -DINSTALL_UDEV_RULES=ON
+sudo make install
+sudo ldconfig
diff --git a/cmake/ci/build_cm256cc.sh b/cmake/ci/build_cm256cc.sh
new file mode 100644
index 000000000..ce28f3cec
--- /dev/null
+++ b/cmake/ci/build_cm256cc.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p f4exb && cd f4exb
+
+git clone https://github.com/f4exb/cm256cc.git
+
+cd cm256cc
+mkdir -p build && cd build
+cmake ..
+sudo make install
+sudo ldconfig
diff --git a/cmake/ci/build_codec2.sh b/cmake/ci/build_codec2.sh
new file mode 100644
index 000000000..79d7fc2d5
--- /dev/null
+++ b/cmake/ci/build_codec2.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+sudo apt-get -y install libsamplerate0-dev libspeex-dev libspeexdsp-dev
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p drowe67 && cd drowe67
+
+git clone https://github.com/drowe67/codec2.git
+
+cd codec2
+mkdir -p build && cd build
+cmake ..
+sudo make install
+sudo ldconfig
diff --git a/cmake/ci/build_dsdcc.sh b/cmake/ci/build_dsdcc.sh
new file mode 100644
index 000000000..d062ffe12
--- /dev/null
+++ b/cmake/ci/build_dsdcc.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p f4exb && cd f4exb
+
+git clone https://github.com/f4exb/dsdcc.git
+
+cd dsdcc
+mkdir -p build && cd build
+cmake ..
+sudo make install
+sudo ldconfig
diff --git a/cmake/ci/build_mbelib.sh b/cmake/ci/build_mbelib.sh
new file mode 100644
index 000000000..227e18459
--- /dev/null
+++ b/cmake/ci/build_mbelib.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p szechyjs && cd szechyjs
+
+git clone https://github.com/szechyjs/mbelib.git
+
+cd mbelib
+mkdir -p build && cd build
+cmake ..
+sudo make install
+sudo ldconfig
diff --git a/cmake/ci/build_perseus-sdr.sh b/cmake/ci/build_perseus-sdr.sh
new file mode 100644
index 000000000..4ffb52561
--- /dev/null
+++ b/cmake/ci/build_perseus-sdr.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p microtelecom && cd microtelecom
+
+git clone https://github.com/Microtelecom/libperseus-sdr.git
+
+cd libperseus-sdr
+./bootstrap.sh
+./configure
+make
+sudo make install
+sudo ldconfig
diff --git a/cmake/travis-ci/build_sdrangel.sh b/cmake/ci/build_sdrangel.sh
similarity index 71%
rename from cmake/travis-ci/build_sdrangel.sh
rename to cmake/ci/build_sdrangel.sh
index aa7a9b630..d42142561 100644
--- a/cmake/travis-ci/build_sdrangel.sh
+++ b/cmake/ci/build_sdrangel.sh
@@ -2,14 +2,14 @@
 
 if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
   JOBS=$(sysctl -n hw.ncpu)
-elif [ "${TRAVIS_OS_NAME}" == "linux" ]; then
+elif [ "${TRAVIS_OS_NAME}" == "linux" ] || [ ${CI_LINUX} = true ]; then
   JOBS=$(nproc --all)
 else
   JOBS=1
 fi
 
 
-if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
+if [ "${TRAVIS_OS_NAME}" == "linux" ] || [ ${CI_LINUX} = true ]; then
   debuild -i -us -uc -b
 else
   mkdir build && cd build
diff --git a/cmake/ci/build_serialdv.sh b/cmake/ci/build_serialdv.sh
new file mode 100644
index 000000000..d1f09dc22
--- /dev/null
+++ b/cmake/ci/build_serialdv.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p f4exb && cd f4exb
+
+git clone https://github.com/f4exb/serialDV.git
+
+cd serialDV
+mkdir -p build && cd build
+cmake ..
+sudo make install
+sudo ldconfig
diff --git a/cmake/ci/build_xtrx-sdr.sh b/cmake/ci/build_xtrx-sdr.sh
new file mode 100644
index 000000000..1443ce66b
--- /dev/null
+++ b/cmake/ci/build_xtrx-sdr.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+cd $HOME
+mkdir -p external && cd external
+mkdir -p xtrx-sdr && cd xtrx-sdr
+
+git clone https://github.com/xtrx-sdr/images.git
+
+cd images/binaries/Ubuntu_16.04_amd64
+sudo dpkg -i *.deb
+sudo apt-get -y install -f
+sudo ldconfig
diff --git a/cmake/travis-ci/build_cm256cc.sh b/cmake/travis-ci/build_cm256cc.sh
deleted file mode 100644
index fb2f6f103..000000000
--- a/cmake/travis-ci/build_cm256cc.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-
-cd $HOME/build
-mkdir f4exb && cd f4exb
-
-git clone https://github.com/f4exb/cm256cc.git
-
-cd cm256cc
-mkdir build && cd build
-cmake ..
-sudo make install
diff --git a/cmake/travis-ci/build_codec2.sh b/cmake/travis-ci/build_codec2.sh
deleted file mode 100644
index be800e16c..000000000
--- a/cmake/travis-ci/build_codec2.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-
-sudo apt-get install libsamplerate0-dev libspeex-dev libspeexdsp-dev
-
-cd $HOME/build
-mkdir drowe67 && cd drowe67
-
-git clone https://github.com/drowe67/codec2.git
-
-cd codec2
-mkdir build && cd build
-cmake ..
-sudo make install
diff --git a/cmake/travis-ci/build_dsdcc.sh b/cmake/travis-ci/build_dsdcc.sh
deleted file mode 100644
index ad257779c..000000000
--- a/cmake/travis-ci/build_dsdcc.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-
-cd $HOME/build
-mkdir f4exb && cd f4exb
-
-git clone https://github.com/f4exb/dsdcc.git
-
-cd dsdcc
-mkdir build && cd build
-cmake ..
-sudo make install