diff --git a/appveyor.bat b/appveyor.bat new file mode 100644 index 0000000000..4fa41273b2 --- /dev/null +++ b/appveyor.bat @@ -0,0 +1,38 @@ +rem Matrix-driven Appveyor CI script for xqemu, borrowed from https://github.com/mypaint/libmypaint +rem Currently only does MSYS2 builds. +rem https://www.appveyor.com/docs/installed-software#mingw-msys-cygwin +rem Needs the following vars: +rem MSYS2_ARCH: x86_64 or i686 +rem MSYSTEM: MINGW64 or MINGW32 + +rem Set the paths appropriately +PATH C:\msys64\%MSYSTEM%\bin;C:\msys64\usr\bin;%PATH% + +rem Upgrade the MSYS2 platform +bash -lc "pacman --noconfirm --sync --refresh --refresh pacman" +bash -lc "pacman --noconfirm --sync --refresh --refresh --sysupgrade --sysupgrade" + +rem Install required tools +bash -xlc "pacman --noconfirm -S --needed base-devel" + +rem Install the relevant native dependencies +bash -xlc "pacman --noconfirm -S --needed git" +bash -xlc "pacman --noconfirm -S --needed python2" +bash -xlc "pacman --noconfirm -S --needed make" +bash -xlc "pacman --noconfirm -S --needed autoconf" +bash -xlc "pacman --noconfirm -S --needed automake-wrapper" +bash -xlc "pacman --noconfirm -S --needed mingw-w64-x86_64-libtool" +bash -xlc "pacman --noconfirm -S --needed mingw-w64-x86_64-pkg-config" +bash -xlc "pacman --noconfirm -S --needed mingw-w64-x86_64-glib2" +bash -xlc "pacman --noconfirm -S --needed mingw-w64-x86_64-glew" +bash -xlc "pacman --noconfirm -S --needed mingw-w64-x86_64-SDL2" +bash -xlc "pacman --noconfirm -S --needed mingw-w64-x86_64-pixman" + +rem Invoke subsequent bash in the build tree +cd %APPVEYOR_BUILD_FOLDER% +set CHERE_INVOKING=yes + +rem Build/test scripting +bash -xlc "set pwd" +bash -xlc "env" +bash -xlc "./build_windows.sh" diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000000..1240f58b90 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,16 @@ +environment: + matrix: + - MSYS2_ARCH: x86_64 + MSYSTEM: MINGW64 + # - MSYS2_ARCH: i686 + # MSYSTEM: MINGW32 + +build_script: + - '%APPVEYOR_BUILD_FOLDER%\appveyor.bat' + +deploy: off + +artifacts: + - path: dist + name: xqemu + type: zip diff --git a/get_deps.py b/get_deps.py new file mode 100755 index 0000000000..8ee9a516a2 --- /dev/null +++ b/get_deps.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +""" +This script is used to collect all available DLLs +""" +from __future__ import print_function +import os +import os.path +import platform +import subprocess +import shutil +import sys +import argparse + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('prog') + ap.add_argument('dest') + args = ap.parse_args() + + if not os.path.exists(args.dest): + os.mkdir(args.dest) + elif not os.path.isdir(args.dest): + print('File exists with destination name') + sys.exit(1) + + sout = subprocess.check_output(['ldd', args.prog]) + for line in sout.splitlines(): + line = line.strip().split() + dll_name, dll_path, dll_load_addr = line[0], line[2], line[3] + if dll_name.startswith('???'): + print('Unknown DLL?') + continue + if dll_path.lower().startswith('/c/windows') or dll_path.lower().startswith('c:/windows'): + print('Skipping system DLL %s' % dll_path) + continue + print('Copying %s...' % dll_path) + shutil.copyfile(dll_path, os.path.join(args.dest, dll_name)) + +if __name__ == '__main__': + main()