summaryrefslogtreecommitdiff
path: root/.travis/build-linux-mingw
blob: c88ddca97967dc673b08084e27f425320fbf5bee (plain)
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
#!/bin/sh -eux

# XXX defining CC and cross-compiling confuses OpenSSL's build.
unset CC

sudo mkdir /fakeroot
sudo chmod 755 /fakeroot

cat << EOF > /tmp/mingw.cmake
SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
SET(CMAKE_FIND_ROOT_PATH /fakeroot)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
EOF

# Build and install libcbor.
git clone git://github.com/pjk/libcbor
cd libcbor
git checkout v0.5.0
mkdir build
(cd build && cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/mingw.cmake \
	-DCMAKE_INSTALL_PREFIX=/fakeroot ..)
make -C build
sudo make -C build install
cd ..

# Build and install OpenSSL 1.1.0j.
git clone git://github.com/openssl/openssl
cd openssl
git checkout OpenSSL_1_1_0j
./Configure mingw --prefix=/fakeroot --openssldir=/fakeroot/openssl \
	--cross-compile-prefix=i686-w64-mingw32-
make
sudo make install_sw
cd ..

# Build and install libfido2.
export PKG_CONFIG_PATH=/fakeroot/lib/pkgconfig
mkdir build
(cd build && cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/mingw.cmake \
	-DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/fakeroot ..)
make -C build
sudo make -C build install