OSDN Git Service

fix build error
[android-x86/external-IA-Hardware-Composer.git] / .travis.yml
1 language: cpp
2
3 sudo: required
4 dist: trusty
5
6 cache:
7   apt: true
8   ccache: true
9
10 env:
11   global:
12     - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
13     - LIBDRM_VERSION=libdrm-2.4.92
14     - LIBWAYLAND_VERSION=wayland-1.15.92
15     - WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.15
16     - MESA_VERSION=mesa-18.1.5
17     - LIBVA_VERSION=libva-1.7.0
18     - VULKAN_SDK_VERSION=sdk-1.1.77.0
19     - LIBEVDEV_VERSION=libevdev-1.5.9
20     - LIBUNWIND_VERSION=libunwind-1.2.1
21     - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
22     - LD_LIBRARY_PATH=$HOME/prefix/lib:$LD_LIBRARY_PATH
23     - PATH=$HOME/prefix/bin:$PATH
24     - OVERRIDE_CC="gcc-4.9"
25     - OVERRIDE_CXX="g++-4.9"
26     - MAKEFLAGS="-j4"
27     - HWC_FLAGS=""
28
29 matrix:
30   include:
31     - env:
32         - LABEL="Static analysis"
33         - BUILD=static
34       addons:
35         apt:
36           packages:
37             - clang-format-3.9
38             - cppcheck
39       install: true
40       script: true
41     - env:
42         - LABEL="Default"
43         - BUILD=make
44       addons:
45         apt:
46           sources:
47             - ubuntu-toolchain-r-test
48           packages:
49             - gcc-4.9
50             - g++-4.9
51             - libelf-dev
52     - env:
53         - LABEL="Disable hotplug"
54         - BUILD=make
55         - HWC_FLAGS="--disable-hotplug-support"
56       addons:
57         apt:
58           sources:
59             - ubuntu-toolchain-r-test
60           packages:
61             - gcc-4.9
62             - g++-4.9
63             - libelf-dev
64     - env:
65         - LABEL="Dummy compositor"
66         - BUILD=make
67         - HWC_FLAGS="--enable-dummy-compositor"
68       addons:
69         apt:
70           sources:
71             - ubuntu-toolchain-r-test
72           packages:
73             - gcc-4.9
74             - g++-4.9
75             - libelf-dev
76     - env:
77         - LABEL="Vulkan compositor"
78         - BUILD=make
79         - HWC_FLAGS="--enable-vulkan"
80       addons:
81         apt:
82           sources:
83             - ubuntu-toolchain-r-test
84           packages:
85             - gcc-4.9
86             - g++-4.9
87             - libelf-dev
88     - env:
89         - LABEL="Weston plugin"
90         - BUILD=weston
91         - HWC_FLAGS=""
92       addons:
93         apt:
94           sources:
95             - ubuntu-toolchain-r-test
96           packages:
97             - gcc-4.9
98             - g++-4.9
99             - libelf-dev
100             - xutils-dev
101             - libxcb*
102             - libx11-xcb-dev
103             - libxkbcommon-dev
104             - x11proto-*-dev
105             - libxdamage*
106             - libxext-dev
107             - libxshmfence-dev
108             - libwacom-dev
109             - libgtk-3-dev
110             - check
111             - libpam0g-dev
112             - python3
113             - python3-pip
114             - libudev-dev
115             - libevdev-dev
116             - libmtdev-dev
117             - mtdev-tools
118
119 before_install:
120   - if test "x$BUILD" = xstatic; then
121       ./travisci/check_patch.py;
122     fi
123
124 install:
125   - |
126     test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC"
127     test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX"
128
129     wget http://xorg.freedesktop.org/releases/individual/lib/$LIBPCIACCESS_VERSION.tar.bz2
130     tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
131     (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
132
133     wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
134     tar -jxvf $LIBDRM_VERSION.tar.bz2
135     (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix && make install)
136
137     # Generate this header since one is missing on the Travis instance
138     mkdir -p $HOME/prefix/include/linux
139     printf "%s\n" \
140          "#ifndef _LINUX_MEMFD_H" \
141          "#define _LINUX_MEMFD_H" \
142          "" \
143          "#define __NR_memfd_create 319" \
144          "#define SYS_memfd_create __NR_memfd_create" \
145          "" \
146          "#define MFD_CLOEXEC             0x0001U" \
147          "#define MFD_ALLOW_SEALING       0x0002U" \
148          "" \
149          "#endif /* _LINUX_MEMFD_H */" > $HOME/prefix/include/linux/memfd.h
150
151     wget http://wayland.freedesktop.org/releases/$LIBWAYLAND_VERSION.tar.xz
152     tar -axvf $LIBWAYLAND_VERSION.tar.xz
153     (cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix \
154      --enable-libraries --without-host-scanner --disable-documentation \
155      --disable-dtd-validation && make install)
156
157     wget http://wayland.freedesktop.org/releases/$WAYLAND_PROTOCOLS_VERSION.tar.xz
158     tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
159     (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && \
160      make install)
161
162     wget https://mesa.freedesktop.org/archive/$MESA_VERSION.tar.gz
163     tar -zxvf $MESA_VERSION.tar.gz
164     (cd $MESA_VERSION && ./configure --prefix=$HOME/prefix --disable-glx \
165      --with-platforms=surfaceless,wayland --without-gallium-drivers \
166      --with-dri-drivers=i965 --with-vulkan-drivers=intel && make install)
167
168     wget http://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
169     tar -jxvf $LIBVA_VERSION.tar.bz2
170     (cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix && make install)
171
172     wget https://github.com/KhronosGroup/Vulkan-Headers/archive/$VULKAN_SDK_VERSION.tar.gz
173     mv $VULKAN_SDK_VERSION.tar.gz Vulkan-Headers-$VULKAN_SDK_VERSION.tar.gz
174     tar -zxvf Vulkan-Headers-$VULKAN_SDK_VERSION.tar.gz
175     (cd Vulkan-Headers-$VULKAN_SDK_VERSION && \
176      cmake -DCMAKE_INSTALL_PREFIX=$HOME/prefix && make install)
177
178     wget https://github.com/KhronosGroup/Vulkan-Loader/archive/$VULKAN_SDK_VERSION.tar.gz
179     mv $VULKAN_SDK_VERSION.tar.gz Vulkan-Loader-$VULKAN_SDK_VERSION.tar.gz
180     tar -zxvf Vulkan-Loader-$VULKAN_SDK_VERSION.tar.gz
181     (cd Vulkan-Loader-$VULKAN_SDK_VERSION && \
182      cmake -DCMAKE_INSTALL_PREFIX=$HOME/prefix -DBUILD_TESTS=OFF \
183      -DBUILD_WSI_MIR_SUPPORT=Off -DBUILD_WSI_WAYLAND_SUPPORT=Off \
184      -DBUILD_WSI_XCB_SUPPORT=Off -DBUILD_WSI_XLIB_SUPPORT=Off && make install)
185
186     wget https://www.freedesktop.org/software/libevdev/$LIBEVDEV_VERSION.tar.xz
187     tar -axvf $LIBEVDEV_VERSION.tar.xz
188     (cd $LIBEVDEV_VERSION && ./configure --prefix=$HOME/prefix && make install)
189
190     wget https://download.savannah.nongnu.org/releases/libunwind/$LIBUNWIND_VERSION.tar.gz
191     tar -xzvf $LIBUNWIND_VERSION.tar.gz
192     (cd $LIBUNWIND_VERSION && ./configure --prefix=$HOME/prefix && make install)
193
194 script:
195   - if test "x$BUILD" = xmake; then
196       ./autogen.sh $HWC_FLAGS && make;
197     fi
198
199   - |
200     if test "x$BUILD" = xweston; then
201       cp travisci/realpath $HOME/prefix/bin
202
203       wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip
204       unzip ninja-linux.zip
205       cp ninja $HOME/prefix/bin
206
207       pip3 install --user pathlib
208       pip3 install --user meson==0.43.0
209
210       export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/prefix/lib/x86_64-linux-gnu/pkgconfig
211       git clone git://anongit.freedesktop.org/git/wayland/libinput libinput
212       (cd libinput && meson --prefix=$HOME/prefix -Dlibwacom=false \
213        -Ddocumentation=false -Ddebug-gui=false -Dtests=false builddir/ && \
214        ninja -C builddir/ && ninja -C builddir/ install)
215
216       export WLD=$HOME/prefix
217       git clone -b iahwc-plugin https://github.com/intel/external-weston.git ../weston
218       cd ../weston
219       #HACK: Weston's paths are hardcoded to ../iahwc/..
220       cp -r ../IA-Hardware-Composer ../iahwc
221       cd -
222       os/linux/weston/build_script.sh --weston-dir=../weston --iahwc-dir=$(pwd) --build
223     fi
224
225 branches:
226   only:
227     - master