forked from intel/IA-Hardware-Composer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
181 lines (160 loc) · 6.14 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
language: c++
sudo: required
dist: trusty
install:
- sudo apt-get update
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- sudo sh -c "echo \"deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse\" >> /etc/apt/sources.list"
- sudo apt-get update
- sudo apt-get install automake autoconf libtool xutils-dev libpciaccess-dev python-mako bison flex libomxil-bellagio-dev libexpat1-dev llvm-dev gcc-4.9 g++-4.9 python3 python3-pip libudev-dev libmtdev-dev mtdev-tools libevdev-dev libx11-xcb-dev libxkbcommon-dev libxrandr-dev x11proto-*-dev libxcb* libxdamage* libx11-xcb-dev libxext-dev libxshmfence-dev libwacom-dev libgtk-3-dev check libpam0g-dev clang-format-3.9 cppcheck/trusty-backports
- ./travisci/check_patch.py
- sudo pip3 install pathlib
- sudo pip3 install meson==0.43.0
- sudo dpkg -s python-mako
- wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip -O /tmp/ninja.zip
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 50
script:
- export LLVM_CONFIG=/usr/bin/llvm-config
- export HWC_BUILD_DIR=/tmp/
- export WLD=/tmp/hwc-install
- export LD_LIBRARY_PATH=$WLD/lib
- export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/lib/x86_64-linux-gnu/pkgconfig:$WLD/share/pkgconfig
- export PATH=$WLD/bin:$PATH
- export ACLOCAL_PATH=$WLD/share/aclocal
- export ACLOCAL="aclocal -I $ACLOCAL_PATH"
- export DRV_I915=1
- tar -xvf travisci/resources/hwc-install.tar.xz -C $HWC_BUILD_DIR
- mkdir -p $WLD/share/aclocal
#install realpath
- sudo cp $WLD/realpath /usr/bin/
#install ninja
- pushd /tmp
- unzip ninja.zip
- sudo cp ninja /usr/bin/
- popd
#clone and build libvulkan : dependency
- git clone -b sdk-1.1.73 https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers.git /tmp/libvulkan
- pushd /tmp/libvulkan
- ./update_external_sources.sh
- cmake -H. -Bbuild -DCMAKE_INSTALL_PREFIX=$WLD -DBUILD_DEMOS=Off -DBUILD_TESTS=Off -DBUILD_WSI_MIR_SUPPORT=Off -DBUILD_WSI_WAYLAND_SUPPORT=Off -DBUILD_WSI_XCB_SUPPORT=Off -DBUILD_WSI_XLIB_SUPPORT=Off
- cd build
- make -j5 && make install
- popd
#clone and build libdrm : dependency
- git clone https://github.com/intel/external-libdrm /tmp/libdrm
- pushd /tmp/libdrm
- ./autogen.sh --disable-radeon --disable-nouveau --disable-amdgpu --enable-udev --enable-libkms --prefix=$WLD
- make -j5 && make install
- popd
# #clone and build mesa : dependency
- git clone https://github.com/intel/external-mesa /tmp/mesa
- pushd /tmp/mesa
- ./autogen.sh --prefix=$WLD --with-platforms=surfaceless --disable-dri3 --enable-shared-glapi --disable-glx --disable-glx-tls --disable-gbm --without-gallium-drivers --with-dri-drivers=i965 --with-vulkan-drivers=intel
- make CFLAGS=-DSYS_memfd_create=319 CPPFLAGS=--std=c11 -j5 && make install
- popd
# #clone and build minigbm : dependency
- git clone https://github.com/intel/minigbm /tmp/minigbm
- pushd /tmp/minigbm
- export DRV_I915=1
- make CFLAGS=-DDRV_I915=1 -j5
- make install DESTDIR=$WLD LIBDIR=lib/
- popd
#clone and build libva : dependency
- git clone https://github.com/android-ia/libva.git /tmp/libva
- pushd /tmp/libva
- ./autogen.sh --prefix=$WLD
- make -j5 && make install
- popd
#clone and build vaapi : dependency
- git clone https://github.com/android-ia/vaapi.git /tmp/vaapi
- pushd /tmp/vaapi
- ./autogen.sh --prefix=$WLD
- make -j5 && make install
- popd
# finally, build the hardware composer itself
- ./autogen.sh --prefix=$WLD
- make -j5
- make clean
- ./autogen.sh --prefix=$WLD --disable-hotplug-support
- make -j5
- make clean
- ./autogen.sh --prefix=$WLD --enable-dummy-compositor
- make -j5
- make clean
- ./autogen.sh --prefix=$WLD --enable-vulkan
- make -j5
# Test Weston plugin
- export WLD=/tmp/wl-install
- export LD_LIBRARY_PATH=$WLD/lib
- export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/lib/x86_64-linux-gnu/pkgconfig:$WLD/share/pkgconfig
- export PATH=$WLD/bin:$PATH
- export ACLOCAL_PATH=$WLD/share/aclocal
- export ACLOCAL="aclocal -I $ACLOCAL_PATH"
- export DRV_I915=1
- mkdir -p $WLD/share/aclocal
#clone and build libdrm : dependency
- pushd /tmp/libdrm
- git clean -xfd > /dev/null
- ./autogen.sh --disable-radeon --disable-nouveau --disable-amdgpu --enable-udev --enable-libkms --prefix=$WLD
- make -j5 && make install
- popd
- git clone https://anongit.freedesktop.org/git/libevdev.git /tmp/libevdev
- pushd /tmp/libevdev
- ./autogen.sh --prefix=$WLD
- make && make install
- popd
- git clone https://github.com/intel/external-wayland.git /tmp/wayland
- pushd .
- cd /tmp/wayland
- ./autogen.sh --prefix=$WLD --disable-documentation
- make && make install
- popd
- git clone https://github.com/intel/external-wayland-protocols.git /tmp/wayland-protocols
- pushd .
- cd /tmp/wayland-protocols
- ./autogen.sh --prefix=$WLD
- make install
- popd
- git clone git://git.sv.gnu.org/libunwind /tmp/libunwind
- pushd .
- cd /tmp/libunwind
- ./autogen.sh --prefix=$WLD
- make && make install
- popd
- git clone git://anongit.freedesktop.org/git/wayland/libinput /tmp/libinput
- pushd .
- cd /tmp/libinput
- meson --prefix=$WLD -Dlibwacom=false -Ddocumentation=false -Ddebug-gui=false -Dtests=false builddir/
- ninja -C builddir/
- ninja -C builddir/ install
- popd
#Build mesa with gbm and overwrite minigbm
- pushd .
- cd /tmp/mesa
- git clean -xfd > /dev/null
- ./autogen.sh --prefix=$WLD --with-platforms=surfaceless,drm,wayland,x11 --disable-dri3 --enable-shared-glapi --disable-glx --disable-glx-tls --enable-gbm --without-gallium-drivers --with-dri-drivers=i965
- make CFLAGS=-DSYS_memfd_create=319 CPPFLAGS=--std=c11 -j5 && make install
- popd
#clone and build libva : dependency
- pushd /tmp/libva
- git clean -xfd > /dev/null
- ./autogen.sh --prefix=$WLD
- make -j5 && make install
- popd
#clone and build vaapi : dependency
- pushd /tmp/vaapi
- git clean -xfd > /dev/null
- ./autogen.sh --prefix=$WLD
- make -j5 && make install
- popd
#Build weston and weston plugin
- git clone -b iahwc-plugin https://github.com/intel/external-weston.git ../weston
- cd ../weston
#HACK: Weston's paths are hardcoded to ../iahwc/..
- cp -r ../IA-Hardware-Composer ../iahwc
- cd -
- os/linux/weston/build_script.sh --weston-dir=../weston --iahwc-dir=$(pwd) --build
branches:
only:
- master