try to cross-compile instead of using debianbootstrap

pull/92/merge
Michel Promonet 6 years ago
parent b9a71e1d81
commit 83712452b7

@ -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

@ -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)

@ -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)

Loading…
Cancel
Save