diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e4b2b82 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +sudo: false +dist: trusty +language: c++ +compiler: + - gcc +addons: + apt: + packages: + - libreadline6-dev + - libncurses5-dev + - perl + - clang + - g++-mingw-w64-i686 +env: + - BRBASE=3.16 WINE=32 + - BRBASE=3.16 USR_CXXFLAGS=-std=c++11 CMPLR=clang + - BRBASE=3.15 + - BRBASE=3.14 +install: + - ./build-deps.sh +script: + - make -j2 diff --git a/build-deps.sh b/build-deps.sh new file mode 100755 index 0000000..4379cf8 --- /dev/null +++ b/build-deps.sh @@ -0,0 +1,66 @@ +#!/bin/sh +set -e -x + +CURDIR="$PWD" + +cat << EOF > configure/RELEASE.local +EPICS_BASE=$HOME/.source/epics-base +PVDATA=$HOME/.source/pvDataCPP + +EOF +cat configure/RELEASE.local + +install -d "$HOME/.source" +cd "$HOME/.source" + +git clone --quiet --depth 5 --branch "${BRBASE:-master}" https://github.com/epics-base/epics-base.git epics-base +git clone --quiet --depth 5 --branch "${BRPVD:-master}" https://github.com/epics-base/pvDataCPP.git pvDataCPP + + +(cd epics-base && git log -n1 ) +(cd pvDataCPP && git log -n1 ) + +EPICS_HOST_ARCH=`sh epics-base/startup/EpicsHostArch` + +# requires wine and g++-mingw-w64-i686 +if [ "$WINE" = "32" ] +then + echo "Cross mingw32" + sed -i -e '/CMPLR_PREFIX/d' epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw + cat << EOF >> epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw +CMPLR_PREFIX=i686-w64-mingw32- +EOF + cat << EOF >> epics-base/configure/CONFIG_SITE +CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw +EOF +fi + +case "$CMPLR" in +clang) + echo "Host compiler is clang" + cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH +GNU = NO +CMPLR_CLASS = clang +CC = clang +CCC = clang++ +EOF + + # hack + sed -i -e 's/CMPLR_CLASS = gcc/CMPLR_CLASS = clang/' epics-base/configure/CONFIG.gnuCommon + + clang --version + ;; +*) + echo "Host compiler is default" + gcc --version + ;; +esac + +cat << EOF > pvDataCPP/configure/RELEASE.local +EPICS_BASE=$HOME/.source/epics-base +EOF + + +make -j2 -C epics-base +make -j2 -C pvDataCPP +