aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngelo Mantellini <angelo.mantellini@irt-systemx.fr>2018-03-19 17:28:16 +0100
committerAngelo Mantellini <angelo.mantellini@irt-systemx.fr>2018-03-19 17:43:38 +0100
commita0ed1d4c3827f44e6d34e25b37d38d41a73f04c8 (patch)
tree2b0db730631747dfef905e6b71d2785d42c65faf
parentb10235eea331f607bfa1bdb8dc44c9dadd32eb36 (diff)
corrections for android
Change-Id: I9054be8a06bf54fee9766b173b04d33f28c7efbe Signed-off-by: Angelo Mantellini <angelo.mantellini@irt-systemx.fr>
-rw-r--r--README.md2
-rw-r--r--libdash/CMakeLists.txt23
-rw-r--r--libdash/scripts/build-package.sh210
-rw-r--r--libdash/scripts/postinst42
-rw-r--r--libdash/scripts/version57
-rw-r--r--libdash/source/helpers/Block.h2
-rw-r--r--libdash/source/helpers/String.cpp2
-rw-r--r--libdash/source/helpers/String.h1
8 files changed, 329 insertions, 10 deletions
diff --git a/README.md b/README.md
index f71e1be1..193bbe77 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
Viper Player for ICN
+
====================================================
+
This application is designed to provide a tool to test the adaptation video streaming using the ICN protocol stack.
Dependencies
diff --git a/libdash/CMakeLists.txt b/libdash/CMakeLists.txt
index 91353390..ea046547 100644
--- a/libdash/CMakeLists.txt
+++ b/libdash/CMakeLists.txt
@@ -3,15 +3,20 @@ project(libdash)
if(ANDROID_API)
- include_directories(${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.9/include)
- include_directories(${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include)
+ set(CMAKE_FIND_ROOT_PATH "$ENV{CCNX_HOME};${CMAKE_FIND_ROOT_PATH}")
+ #include_directories(${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.9/include)
+ #include_directories(${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include)
+ message("ciao!!!")
option(ANDROID "Build CP api based on ANDROID log lib" ON)
- set(LIBXML2_INCLUDE_DIR "$ENV{DISTILLERY_ROOT_DIR}/external/libxml2_android/jni/libxml2/include")
- set(LIBXML2_LIBRARIES "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libxml2.a")
- set(CURL_INCLUDE_DIRS "$ENV{DISTILLERY_ROOT_DIR}/external/libcurl_android/jni/libcurl/include")
- set(CURL_LIBRARIES "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libcurl.a" "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libcurl-library.a")
- set(ANDROID_LIBRARIES "${ANDROID_NDK}/platforms/android-23/arch-arm/usr/lib/libz.a" "$ENV{NDK}/sources/cxx-stl/gnu-libstdc++/4.9/libs/$ENV{ABI}/libgnustl_shared.so" "${ANDROID_NDK}/platforms/android-23/arch-arm/usr/lib/liblog.so")
- set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${ANDROID_C_FLAGS} -std=c++0x -g -DLOG_BUILD")
+ find_package(LibXml2 REQUIRED)
+ find_package(ZLIB REQUIRED)
+ find_package(CURL REQUIRED)
+ #set(LIBXML2_INCLUDE_DIR "$ENV{DISTILLERY_ROOT_DIR}/external/libxml2_android/jni/libxml2/include")
+ #set(LIBXML2_LIBRARIES "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libxml2.a")
+ #set(CURL_INCLUDE_DIRS "$ENV{DISTILLERY_ROOT_DIR}/external/libcurl_android/jni/libcurl/include")
+ #set(CURL_LIBRARIES "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libcurl.a" "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libcurl-library.a")
+ #set(ANDROID_LIBRARIES "$ENV{NDK}/sources/cxx-stl/gnu-libstdc++/4.9/libs/$ENV{ABI}/libgnustl_shared.so")
+ set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${ANDROID_C_FLAGS} -std=c++0x -g -DLOG_BUILD -DANDROID_STL=c++_shared")
elseif (COMPILE_FOR_IOS)
set(CMAKE_CXX_FLAGS "-std=c++0x -g -DLOG_BUILD")
find_package(LibXml2 REQUIRED)
@@ -185,7 +190,7 @@ include_directories(${WLIB_INCLUDE_DIRS})
include_directories(${CURL_INCLUDE_DIRS})
include_directories(include)
-if (COMPILE_FOR_IOS OR COMPILE_FOR_IOS_SIMULATOR)
+if (COMPILE_FOR_IOS OR COMPILE_FOR_IOS_SIMULATOR OR ANDROID_API)
add_library(dash STATIC ${SOURCE_FILES})
else()
add_library(dash SHARED ${SOURCE_FILES})
diff --git a/libdash/scripts/build-package.sh b/libdash/scripts/build-package.sh
new file mode 100644
index 00000000..47f6a5f4
--- /dev/null
+++ b/libdash/scripts/build-package.sh
@@ -0,0 +1,210 @@
+#!/bin/bash
+# basic build script example
+set -euxo pipefail
+IFS=$'\n\t'
+
+SCRIPT_PATH=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )
+APT_PATH=`which apt-get` || true
+apt_get=${APT_PATH:-"/usr/local/bin/apt-get"}
+
+PACKAGE_NAME="VIPER"
+VIPER_DEPS_UBUNTU="zlib1g-dev git-core build-essential libxml2-dev libcurl4-openssl-dev \
+ qt57base qt57svg qt57charts-no-lgpl qt57multimedia libqtav-dev libicnet-dev \
+ libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libqml-module-qtav \
+ qt57quickcontrols qt57quickcontrols2 libboost-system-dev"
+
+BUILD_TOOLS="build-essential doxygen"
+
+# Parameters:
+# $1 = Distribution [Trusty / CentOS]
+#
+update_cmake_repo() {
+
+ cat /etc/resolv.conf
+ echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
+ cat /etc/resolv.conf
+
+ CMAKE_INSTALL_SCRIPT_URL="https://cmake.org/files/v3.8/cmake-3.8.0-Linux-x86_64.sh"
+ CMAKE_INSTALL_SCRIPT="/tmp/install_cmake.sh"
+ curl ${CMAKE_INSTALL_SCRIPT_URL} > ${CMAKE_INSTALL_SCRIPT}
+
+ sudo mkdir -p /opt/cmake
+ sudo bash ${CMAKE_INSTALL_SCRIPT} --skip-license --prefix=/opt/cmake
+ export PATH=/opt/cmake/bin:$PATH
+}
+
+# Parameters:
+# $1 = Distribution codename
+#
+update_qt_repo() {
+ DISTRIBUTION_CODENAME=$1
+
+ if [ "$DISTRIBUTION_CODENAME" != "trusty" ] && [ "$DISTRIBUTION_CODENAME" != "xenial" ]; then
+ echo "No valid distribution specified when calling 'update_qt_repo'. Exiting.."
+ exit -1
+ fi
+
+ sudo ${apt_get} install -y --allow-unauthenticated software-properties-common
+ sudo add-apt-repository --yes ppa:beineri/opt-qt571-$DISTRIBUTION_CODENAME
+
+ wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
+ sudo sh -c "echo 'deb http://archive.getdeb.net/ubuntu xenial-getdeb apps' >> /etc/apt/sources.list.d/getdeb.list"
+
+ sudo ${apt_get} update
+}
+
+# Parameters:
+# $1 = Distribution id
+# $2 = Distribution codename
+#
+update_fdio_repo() {
+ DISTRIB_ID=$1
+ DISTRIB_CODENAME=$2
+
+ NEXUS_PROXY=${NEXUSPROXY:-"http://nexus.fd.io"}
+ REPO_CICN_URL=""
+ REPO_VPP_URL=""
+
+ if [ "$DISTRIB_ID" == "Ubuntu" ]; then
+
+ if [ "$DISTRIB_CODENAME" == "xenial" ]; then
+ REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.stable.1701.ubuntu.xenial.main/"
+ REPO=${REPO_NAME:-"master.ubuntu.xenial.main"}
+ REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}"
+ elif [ "$DISTRIB_CODENAME" == "trusty" ]; then
+ REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.stable.1701.ubuntu.trusty.main/"
+ REPO=${REPO_NAME:-"master.ubuntu.trusty.main"}
+ REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}"
+ else
+ echo "Distribution $DISTRIB_CODENAME is not supported"
+ exit -1
+ fi
+
+ echo "deb ${REPO_VPP_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.list
+ echo "deb ${REPO_CICN_URL} ./" | sudo tee /etc/apt/sources.list.d/99fd.io.master.list
+
+ elif [ "$DISTRIB_ID" == "CentOS" ]; then
+ REPO_VPP_URL="${NEXUS_PROXY}/content/repositories/fd.io.centos7/"
+ REPO=${REPO_NAME:-"master.centos7"}
+ REPO_CICN_URL="${NEXUS_PROXY}/content/repositories/fd.io.${REPO}"
+
+ sudo cat << EOF > fdio.repo
+[fdio-vpp-master]
+name=fd.io master branch latest merge
+baseurl=${REPO_VPP_URL}
+enabled=1
+gpgcheck=0
+
+[fdio-cicn-master]
+name=fd.io master branch latest merge
+baseurl=${REPO_CICN_URL}
+enabled=1
+gpgcheck=0
+EOF
+ sudo mv fdio.repo /etc/yum.repos.d/fdio.repo
+ else
+ echo "Distribution $DISTRIB_CODENAME is not supported"
+ exit -1
+ fi
+
+}
+
+setup() {
+
+ DISTRIB_ID=$1
+ DISTRIB_CODENAME=$2
+
+ update_cmake_repo
+ update_fdio_repo $DISTRIB_ID $DISTRIB_CODENAME
+
+ if [ "$DISTRIB_ID" == "Ubuntu" ]; then
+ sudo ${apt_get} update || true
+ fi
+}
+
+ARCHITECTURE=`uname -m`
+
+# Figure out what system we are running on
+if [ -f /etc/lsb-release ];then
+
+ . /etc/lsb-release
+ DEB=ON
+ RPM=OFF
+
+ if [ "$ARCHITECTURE" == "x86_64" ]; then
+ ARCHITECTURE="amd64"
+ fi
+
+elif [ -f /etc/redhat-release ];then
+
+ sudo yum install -y redhat-lsb
+ DISTRIB_ID=`lsb_release -si`
+ DISTRIB_RELEASE=`lsb_release -sr`
+ DISTRIB_CODENAME=`lsb_release -sc`
+ DISTRIB_DESCRIPTION=`lsb_release -sd`
+
+ DEB=OFF
+ RPM=ON
+else
+ echo "ERROR: System configuration not recognized. Build failed"
+ exit -1
+fi
+
+echo ARCHITECTURE: $ARCHITECTURE
+echo DISTRIB_ID: $DISTRIB_ID
+echo DISTRIB_RELEASE: $DISTRIB_RELEASE
+echo DISTRIB_CODENAME: $DISTRIB_CODENAME
+echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION
+
+setup $DISTRIB_ID $DISTRIB_CODENAME
+
+# Install deps
+
+if [ $DISTRIB_ID == "Ubuntu" ]; then
+ update_qt_repo $DISTRIB_CODENAME
+ echo $BUILD_TOOLS $VIPER_DEPS_UBUNTU | xargs sudo ${apt_get} install -y --allow-unauthenticated
+else
+ echo "This package is currently supported only for ubuntu. Exiting.."
+ exit -1
+fi
+
+# Create links
+
+sudo ln -sf /usr/include/x86_64-linux-gnu/qt5/QtAV /opt/qt57/include/QtAV
+sudo ln -sf /usr/include/x86_64-linux-gnu/qt5/QtAVWidgets /opt/qt57/include/QtAVWidgets
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/av.prf /opt/qt57/mkspecs/features/av.prf
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/avwidgets.prf /opt/qt57/mkspecs/features/avwidgets.prf
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_avwidgets.pri /opt/qt57/mkspecs/modules/qt_lib_avwidgets.pri
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_av.pri /opt/qt57/mkspecs/modules/qt_lib_av.pri
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.prl /opt/qt57/lib/libQtAV.prl
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.prl /opt/qt57/lib/libQtAVWidgets.prl
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.so /opt/qt57/lib/libQt5AVWidgets.so
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AV.so /opt/qt57/lib/libQt5AV.so
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.so /opt/qt57/lib/libQtAV.so
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AVWidgets.so /opt/qt57/lib/libQtAVWidgets.so
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/qml/QtAV /opt/qt57/qml/QtAV
+
+# Compile libdash
+
+build() {
+ mkdir -p build
+ cd build
+ rm -rf *
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DRPM_PACKAGE=$RPM -DDEB_PACKAGE=$DEB -DDISTRIBUTION=$DISTRIB_CODENAME -DARCHITECTURE=$ARCHITECTURE ..
+ make
+}
+
+# Build libdash
+pushd $SCRIPT_PATH/../libdash
+build
+make package
+sudo make install
+find . -not -name '*.deb' -not -name '*.rpm' -print0 | xargs -0 rm -rf -- || true
+popd
+
+# Build viper
+pushd $SCRIPT_PATH/..
+build
+make package
+find . -not -name '*.deb' -not -name '*.rpm' -print0 | xargs -0 rm -rf -- || true
+popd
diff --git a/libdash/scripts/postinst b/libdash/scripts/postinst
new file mode 100644
index 00000000..9499e8c2
--- /dev/null
+++ b/libdash/scripts/postinst
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+echo "Executing post install script."
+
+sudo ln -sf /usr/include/x86_64-linux-gnu/qt5/QtAV /opt/qt57/include/QtAV
+echo "sudo ln -sf /usr/include/x86_64-linux-gnu/qt5/QtAV /opt/qt57/include/QtAV"
+
+sudo ln -sf /usr/include/x86_64-linux-gnu/qt5/QtAVWidgets /opt/qt57/include/QtAVWidgets
+echo "sudo ln -sf /usr/include/x86_64-linux-gnu/qt5/QtAVWidgets /opt/qt57/include/QtAVWidgets"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/av.prf /opt/qt57/mkspecs/features/av.prf
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/av.prf /opt/qt57/mkspecs/features/av.prf"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/avwidgets.prf /opt/qt57/mkspecs/features/avwidgets.prf
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/avwidgets.prf /opt/qt57/mkspecs/features/avwidgets.prf"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_avwidgets.pri /opt/qt57/mkspecs/modules/qt_lib_avwidgets.pri
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_avwidgets.pri /opt/qt57/mkspecs/modules/qt_lib_avwidgets.pri"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_av.pri /opt/qt57/mkspecs/modules/qt_lib_av.pri
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_av.pri /opt/qt57/mkspecs/modules/qt_lib_av.pri"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.prl /opt/qt57/lib/libQtAV.prl
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.prl /opt/qt57/lib/libQtAV.prl"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.prl /opt/qt57/lib/libQtAVWidgets.prl
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.prl /opt/qt57/lib/libQtAVWidgets.prl"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.so /opt/qt57/lib/libQt5AVWidgets.so
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAVWidgets.so /opt/qt57/lib/libQt5AVWidgets.so"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AV.so /opt/qt57/lib/libQt5AV.so
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AV.so /opt/qt57/lib/libQt5AV.so"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.so /opt/qt57/lib/libQtAV.so
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtAV.so /opt/qt57/lib/libQtAV.so"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AVWidgets.so /opt/qt57/lib/libQtAVWidgets.so
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt5AVWidgets.so /opt/qt57/lib/libQtAVWidgets.so"
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/qml/QtAV /opt/qt57/qml/QtAV
+echo "sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/qml/QtAV /opt/qt57/qml/QtAV" \ No newline at end of file
diff --git a/libdash/scripts/version b/libdash/scripts/version
new file mode 100644
index 00000000..ca73c6af
--- /dev/null
+++ b/libdash/scripts/version
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )
+version_prefix="libdash-v"
+
+cd "$path"
+
+git rev-parse 2> /dev/null
+if [ $? == 0 ]; then
+ vstring=$(git describe --dirty --match "$version_prefix*" | sed "s/$version_prefix//")
+elif [ -f .version ]; then
+ vstring=$(cat .version)
+else
+ if [ -f ../rpm/*.gz ]; then
+ vstring=$(ls ../rpm/*.gz)
+ else
+ exit 1
+ fi
+fi
+
+TAG=$(echo ${vstring} | cut -d- -f1 | sed -e "s/$version_prefix//")
+ADD=$(echo ${vstring} | cut -s -d- -f2)
+
+git rev-parse 2> /dev/null
+if [ $? == 0 ]; then
+ CMT=$(git describe --dirty --match "$version_prefix*" | sed "s/$version_prefix//" | cut -s -d- -f3,4)
+else
+ CMT=$(echo ${vstring} | cut -s -d- -f3,4)
+fi
+CMTR=$(echo $CMT | sed 's/-/_/')
+
+if [ -n "${BUILD_NUMBER}" ]; then
+ BLD="~b${BUILD_NUMBER}"
+else
+ BLD="~b1"
+fi
+
+if [ "$1" = "rpm-version" ]; then
+ echo ${TAG}
+ exit
+fi
+
+if [ "$1" = "rpm-release" ]; then
+ [ -z "${ADD}" ] && echo release && exit
+ echo ${ADD}${CMTR:+~${CMTR}}${BLD}
+ exit
+fi
+
+ if [ -n "${ADD}" ]; then
+ if [ "$1" = "rpm-string" ]; then
+ echo ${TAG}-${ADD}${CMTR:+~${CMTR}}${BLD}
+ else
+ echo ${TAG}-${ADD}${CMT:+~${CMT}}${BLD}
+ fi
+ else
+ echo ${TAG}-release
+fi \ No newline at end of file
diff --git a/libdash/source/helpers/Block.h b/libdash/source/helpers/Block.h
index 9f8f9577..81fef50a 100644
--- a/libdash/source/helpers/Block.h
+++ b/libdash/source/helpers/Block.h
@@ -15,6 +15,8 @@
#include "config.h"
#include <stddef.h>
#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
namespace dash
{
diff --git a/libdash/source/helpers/String.cpp b/libdash/source/helpers/String.cpp
index 53da5592..e8ee5432 100644
--- a/libdash/source/helpers/String.cpp
+++ b/libdash/source/helpers/String.cpp
@@ -10,7 +10,7 @@
*****************************************************************************/
#include "String.h"
-
+
using namespace dash::helpers;
void String::Split (const std::string &s, char delim, std::vector<std::string>& vector)
diff --git a/libdash/source/helpers/String.h b/libdash/source/helpers/String.h
index b2aa955a..bcf3a41a 100644
--- a/libdash/source/helpers/String.h
+++ b/libdash/source/helpers/String.h
@@ -17,6 +17,7 @@
#include <iostream>
#include <sstream>
#include <vector>
+#include <stdlib.h>
namespace dash
{