diff --git a/.travis.yml b/.travis.yml index 9909e4b..d926f8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,26 +1,19 @@ dist: trusty sudo: required +matrix: + - TOOLCHAIN= + - TOOLCHAIN=raspberry.toolchain before_install: - sudo apt-get install -y cmake liblog4cpp5-dev liblivemedia-dev libasound2-dev -- sudo apt-get install -y qemu-user-static debootstrap # for coverage - pip install --user cpp-coveralls pyYaml -# install chroot for cross-compilation -- sudo debootstrap --arch armhf --foreign --include=g++,git,make,cmake,liblog4cpp5-dev,liblivemedia-dev,libasound2-dev jessie rootfs http://sfo-korg-mirror.kernel.org/debian -- sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/ -- sudo chroot rootfs /debootstrap/debootstrap --second-stage language: cpp compiler: - gcc script: +- if [ "$TOOLCHAIN" != "" ]; then git clone --depth 1 https://github.com/raspberrypi/tools.git rpi_tools && export PATH=$PATH:$(pwd)/rpi_tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin; fi #build on native system - cmake . && make && cpack . -#cleanup -- rm -rf CMakeCache.txt *.a CMakeFiles -#build on chroot system -- sudo mkdir rootfs/home/v4l2rtspserver -- sudo mount --bind . rootfs/home/v4l2rtspserver -- sudo chroot rootfs bash -c "cd /home/v4l2rtspserver && cmake . && make && cpack ." #run coverage test - sudo rm -rf CMakeCache.txt *.a CMakeFiles - cmake -DCOVERAGE=ON . && make && make test @@ -38,16 +31,14 @@ addons: branch_pattern: master notification_email: scan_notifications@example.com before_deploy: - - export RELEASE_PKG_FILE_X86=$(ls *-x86_64.deb) - - export RELEASE_PKG_FILE_ARM=$(ls *-arm*.deb) - - echo "deploying ${RELEASE_PKG_FILE_X86} ${RELEASE_PKG_FILE_ARM} to GitHub releases" + - export RELEASE_PKG_FILE=$(ls *.deb) + - echo "deploying ${RELEASE_PKG_FILE} to GitHub releases" deploy: provider: releases api_key: secure: gcQy7QO09vfGtcRMi8D+6VykDfK1tuz1jEZRmJER6eZ0p2gRi4F6mtsMRJWt3QsKkZQWkJpPTvCfv9GyNmWTrZV746y5QVnd+mjPx+6K/LgroK4LWgOgzJ6zQ6qfDKU80GbxJOnNv9/HmIcxSCiactxS50tbvntqpBGCmiIL+4U= file: - - "${RELEASE_PKG_FILE_X86}" - - "${RELEASE_PKG_FILE_ARM}" + - "${RELEASE_PKG_FILE}" skip_cleanup: true on: repo: mpromonet/v4l2rtspserver diff --git a/CMakeLists.txt b/CMakeLists.txt index 841bc40..8bead93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,6 +48,7 @@ target_link_libraries (${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT}) #ALSA find_package(ALSA QUIET) if (ALSA_LIBRARY) + message(STATUS "Alsa available") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_ALSA") target_link_libraries (${PROJECT_NAME} ${ALSA_LIBRARY}) endif (ALSA_LIBRARY) @@ -67,8 +68,9 @@ endif (LOG4CPP_INCLUDE_DIR) # live555 find_path(LIBLIVE555_INCLUDE_DIR liveMedia/liveMedia.hh) if (NOT LIBLIVE555_INCLUDE_DIR) - message(STATUS "Installing liblivemedia-dev") - EXEC_PROGRAM("sudo apt-get install -y liblivemedia-dev") + message(STATUS "Installing live55") + EXEC_PROGRAM("wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz -O - | tar xzf -") + EXEC_PROGRAM("cd live && ./genMakefiles linux-gdb && make CPLUSPLUS_COMPILER=${CMAKE_CXX_COMPILER} C_COMPILER=${CMAKE_C_COMPILER} LINK='${CMAKE_CXX_COMPILER} -o' PREFIX=${CMAKE_FIND_ROOT_PATH} install") endif (NOT LIBLIVE555_INCLUDE_DIR) find_path(LIBLIVE555_INCLUDE_DIR liveMedia/liveMedia.hh) diff --git a/raspberry.toolchain b/raspberry.toolchain index e835712..7afd0d4 100644 --- a/raspberry.toolchain +++ b/raspberry.toolchain @@ -3,6 +3,9 @@ SET(CMAKE_SYSTEM_PROCESSOR armhf) set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) SET(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc) SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++) -SET(CMAKE_FIND_ROOT_PATH ${PROJECT_SOURCE_DIR}/rootfs) + +execute_process(COMMAND ${CMAKE_C_COMPILER} -print-sysroot OUTPUT_VARIABLE CMAKE_FIND_ROOT_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) + SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/rootfs/usr/include/arm-linux-gnueabihf) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)