summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Ross-Gowan <rossymiles@gmail.com>2016-05-12 22:00:30 +1000
committerJames Ross-Gowan <rossymiles@gmail.com>2016-05-12 23:34:06 +1000
commitc160e5f31d6253628c4f1eea9d650f816158232d (patch)
treeff9c021ad7e09a6fe75a36e30791c1241d1be632
parentd4712af5af93bc2aea47d15b52dedcc61d9f81f1 (diff)
downloadmpv-c160e5f31d6253628c4f1eea9d650f816158232d.tar.bz2
mpv-c160e5f31d6253628c4f1eea9d650f816158232d.tar.xz
Add Appveyor CI integration for Windows builds
-rwxr-xr-xTOOLS/appveyor-build.sh23
-rwxr-xr-xTOOLS/appveyor-install.sh35
-rw-r--r--appveyor.yml29
3 files changed, 87 insertions, 0 deletions
diff --git a/TOOLS/appveyor-build.sh b/TOOLS/appveyor-build.sh
new file mode 100755
index 0000000000..71ea8c0379
--- /dev/null
+++ b/TOOLS/appveyor-build.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/bash
+set -e
+
+export DEST_OS=win32
+export CC=gcc
+export PKG_CONFIG=/usr/bin/pkg-config
+export PERL=/usr/bin/perl
+export PYTHON=/usr/bin/python3
+
+"$PYTHON" bootstrap.py
+"$PYTHON" waf configure \
+ --check-c-compiler=gcc \
+ --disable-cdda \
+ --enable-egl-angle \
+ --enable-gpl3 \
+ --enable-jpeg \
+ --enable-lcms2 \
+ --enable-libarchive \
+ --enable-libass \
+ --enable-lua \
+ --enable-rubberband \
+ --enable-uchardet
+"$PYTHON" waf build
diff --git a/TOOLS/appveyor-install.sh b/TOOLS/appveyor-install.sh
new file mode 100755
index 0000000000..37d74f5201
--- /dev/null
+++ b/TOOLS/appveyor-install.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/bash
+set -e
+
+case $MSYSTEM in
+MINGW32)
+ export MINGW_PACKAGE_PREFIX=mingw-w64-i686
+ ;;
+MINGW64)
+ export MINGW_PACKAGE_PREFIX=mingw-w64-x86_64
+ ;;
+esac
+
+# Write an empty fonts.conf to speed up fc-cache
+export FONTCONFIG_FILE=/dummy-fonts.conf
+cat >"$FONTCONFIG_FILE" <<EOF
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig></fontconfig>
+EOF
+
+# Install build dependencies for mpv
+pacman -S --noconfirm --needed \
+ $MINGW_PACKAGE_PREFIX-gcc \
+ $MINGW_PACKAGE_PREFIX-angleproject-git \
+ $MINGW_PACKAGE_PREFIX-ffmpeg \
+ $MINGW_PACKAGE_PREFIX-lcms2 \
+ $MINGW_PACKAGE_PREFIX-libarchive \
+ $MINGW_PACKAGE_PREFIX-libass \
+ $MINGW_PACKAGE_PREFIX-libjpeg-turbo \
+ $MINGW_PACKAGE_PREFIX-lua51 \
+ $MINGW_PACKAGE_PREFIX-rubberband \
+ $MINGW_PACKAGE_PREFIX-uchardet-git
+
+# Delete unused packages to reduce space used in the Appveyor cache
+pacman -Sc --noconfirm
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000000..f7ccde56f7
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,29 @@
+branches:
+ only:
+ - master
+ - appveyor
+
+environment:
+ matrix:
+ - MSYSTEM: MINGW64
+ - MSYSTEM: MINGW32
+
+shallow_clone: true
+test: off
+
+install:
+ # Update core packages
+ - C:\msys64\usr\bin\pacman -Syyuu --noconfirm
+ # Update non-core packages
+ - C:\msys64\usr\bin\pacman -Suu --noconfirm
+ # Install required MSYS2 packages
+ - C:\msys64\usr\bin\pacman -S --noconfirm --needed perl python pkg-config
+ # Now MSYS2 is up to date, do the rest of the install from a bash script
+ - C:\msys64\usr\bin\bash -lc "cd \"$APPVEYOR_BUILD_FOLDER\" && exec ./TOOLS/appveyor-install.sh"
+build_script:
+ - C:\msys64\usr\bin\bash -lc "cd \"$APPVEYOR_BUILD_FOLDER\" && exec ./TOOLS/appveyor-build.sh"
+on_failure:
+ - type "%APPVEYOR_BUILD_FOLDER%\build\config.log"
+
+cache:
+ - C:\msys64\var\cache\pacman\pkg