Compare commits
52 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d537594304 | ||
|
cf30470748 | ||
|
ec0efa8b1c | ||
|
55b02717e6 | ||
|
46c2384383 | ||
|
e17f6a13b3 | ||
|
50433cf809 | ||
|
7d9bfe1840 | ||
|
705f98f1eb | ||
|
d13778f06c | ||
|
660e3995d4 | ||
|
54902bd4da | ||
|
e1408af504 | ||
|
8594403ed1 | ||
|
a8238c2b9b | ||
|
3e2ed3a387 | ||
|
20473a647f | ||
|
b4f1ce9940 | ||
|
a48e53c6d1 | ||
|
d6e4e7ff16 | ||
|
66014b5b7a | ||
|
d154a98283 | ||
|
50bff74af5 | ||
|
5ac00a5145 | ||
|
1c7f3bbe1f | ||
|
22d2da9147 | ||
|
aa80c0d7c0 | ||
|
6c8cac16f4 | ||
|
8ed0a5d2fe | ||
|
5796195306 | ||
|
8531c03ea5 | ||
|
b07890cd8d | ||
|
432a6017e3 | ||
|
58f3b8d0e6 | ||
|
29239910e6 | ||
|
63c53f8d1f | ||
|
eeaf05faae | ||
|
84c1c341ba | ||
|
d5f815ef59 | ||
|
41709733d1 | ||
|
cd63907c0c | ||
|
93bab861ed | ||
|
dcb85589bf | ||
|
9318b96b13 | ||
|
9a8afae68f | ||
|
3d500b8622 | ||
|
b6c937a0de | ||
|
96b17bbf95 | ||
|
1928efad36 | ||
|
167b154ec7 | ||
|
189b8a2e9b | ||
|
8cf77e38eb |
30
.github/workflows/ci.yml
vendored
Normal file
30
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
name: 'Citra Docker Image CI'
|
||||
on:
|
||||
push:
|
||||
branches: ["*"]
|
||||
pull_request:
|
||||
branches: ["master"]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
image: ["linux-appimage", "linux-fresh"]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: docker/setup-buildx-action@v2
|
||||
name: Setup Docker BuildX system
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
if: (github.ref == 'refs/heads/master') && (github.repository == 'citra-emu/build-environments')
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- uses: docker/build-push-action@v4
|
||||
name: Build image
|
||||
with:
|
||||
push: ${{ (github.ref == 'refs/heads/master') && (github.repository == 'citra-emu/build-environments') }}
|
||||
context: ${{ matrix.image }}
|
||||
tags: citraemu/build-environments:${{ matrix.image }}
|
76
linux-appimage/Dockerfile
Normal file
76
linux-appimage/Dockerfile
Normal file
@ -0,0 +1,76 @@
|
||||
FROM ubuntu:20.04
|
||||
LABEL maintainer="citraemu"
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Create a user account citra (UID 1027) that the container will run as
|
||||
RUN useradd -m -u 1027 -s /bin/bash citra
|
||||
|
||||
# Update system, install PPAs and install packages for building Citra.
|
||||
RUN apt-get update && apt-get full-upgrade -y
|
||||
RUN apt-get install -y software-properties-common lsb-release
|
||||
RUN add-apt-repository -y ppa:savoury1/build-tools
|
||||
RUN add-apt-repository -y ppa:savoury1/display
|
||||
RUN add-apt-repository -y ppa:savoury1/ffmpeg4
|
||||
RUN add-apt-repository -y ppa:savoury1/gcc-defaults-11
|
||||
RUN add-apt-repository -y ppa:savoury1/llvm-defaults-13
|
||||
RUN add-apt-repository -y ppa:savoury1/qt-6-2
|
||||
RUN add-apt-repository -y ppa:theofficialgman/gpu-tools
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y
|
||||
RUN apt-get install -y \
|
||||
build-essential \
|
||||
libsdl2-dev \
|
||||
libssl-dev \
|
||||
gcc-11 \
|
||||
g++-11 \
|
||||
cpp-11 \
|
||||
# Qt 6
|
||||
qt6-base-dev \
|
||||
qt6-base-private-dev \
|
||||
qt6-multimedia-dev \
|
||||
qt6-l10n-tools \
|
||||
qt6-tools-dev \
|
||||
qt6-tools-dev-tools \
|
||||
qt6-gtk-platformtheme \
|
||||
qt6-documentation-tools \
|
||||
qt6-wayland \
|
||||
# FFmpeg
|
||||
ffmpeg \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavformat-dev \
|
||||
libswresample-dev \
|
||||
libswscale-dev \
|
||||
# Tools
|
||||
cmake \
|
||||
p7zip-full \
|
||||
wget \
|
||||
unzip \
|
||||
git \
|
||||
ccache \
|
||||
ninja-build \
|
||||
glslang-dev \
|
||||
glslang-tools \
|
||||
file \
|
||||
# qt6gtk2 dependencies
|
||||
gtk2.0
|
||||
|
||||
# Install LLVM 15
|
||||
RUN wget https://apt.llvm.org/llvm.sh
|
||||
RUN chmod +x llvm.sh
|
||||
RUN ./llvm.sh 15 all
|
||||
RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-15 150
|
||||
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-15 150
|
||||
|
||||
# Compile and install qt6gtk2
|
||||
RUN git clone --recursive https://github.com/trialuser02/qt6gtk2
|
||||
RUN cd qt6gtk2 && qmake6 && make && make install
|
||||
|
||||
# Download tools for building AppImages
|
||||
RUN wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
||||
RUN wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
||||
RUN wget https://github.com/linuxdeploy/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt-x86_64.sh
|
||||
RUN chmod a+x linuxdeploy-x86_64.AppImage
|
||||
RUN chmod a+x linuxdeploy-plugin-qt-x86_64.AppImage
|
||||
RUN chmod a+x linuxdeploy-plugin-checkrt-x86_64.sh
|
@ -1,5 +0,0 @@
|
||||
FROM ubuntu:20.04
|
||||
LABEL maintainer="citraemu"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get -y full-upgrade
|
||||
RUN apt-get install -y git clang-format-6.0 p7zip-full
|
@ -1,7 +0,0 @@
|
||||
FROM ubuntu:20.04
|
||||
LABEL maintainer="citraemu"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get -y full-upgrade
|
||||
RUN apt-get install -y p7zip-full wget git flatpak flatpak-builder ca-certificates sshfs curl fuse dnsutils gnupg2 sudo
|
||||
RUN flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
RUN flatpak install -y flathub org.kde.Platform//5.13 org.kde.Sdk//5.13
|
@ -1,5 +1,47 @@
|
||||
FROM ubuntu:20.04
|
||||
FROM ubuntu:23.04
|
||||
LABEL maintainer="citraemu"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Create a user account citra (UID 1027) that the container will run as
|
||||
RUN useradd -m -u 1027 -s /bin/bash citra
|
||||
|
||||
RUN apt-get update && apt-get -y full-upgrade
|
||||
RUN apt-get install -y p7zip-full build-essential libsdl2-dev qtbase5-dev libqt5opengl5-dev qtmultimedia5-dev qttools5-dev qttools5-dev-tools libavcodec-dev libavfilter-dev libavformat-dev libswscale-dev wget git ccache cmake ninja-build
|
||||
RUN apt-get install -y \
|
||||
# Tools
|
||||
build-essential \
|
||||
ccache \
|
||||
clang \
|
||||
clang-format-15 \
|
||||
cmake \
|
||||
curl \
|
||||
git \
|
||||
lld \
|
||||
llvm \
|
||||
ninja-build \
|
||||
p7zip-full \
|
||||
python3-pip \
|
||||
software-properties-common \
|
||||
unzip \
|
||||
wget \
|
||||
zip \
|
||||
# Qt 6
|
||||
qt6-base-dev \
|
||||
qt6-base-private-dev \
|
||||
libqt6opengl6-dev \
|
||||
qt6-multimedia-dev \
|
||||
qt6-l10n-tools \
|
||||
qt6-tools-dev \
|
||||
qt6-tools-dev-tools \
|
||||
libgl-dev \
|
||||
# glslang
|
||||
glslang-dev \
|
||||
glslang-tools \
|
||||
# Other libraries
|
||||
libsdl2-dev
|
||||
|
||||
# Install Transifex client
|
||||
RUN curl -O -L https://github.com/transifex/cli/releases/latest/download/tx-linux-amd64.tar.gz && \
|
||||
tar xf tx-linux-amd64.tar.gz tx && \
|
||||
mv tx /usr/bin/tx && \
|
||||
rm tx-linux-amd64.tar.gz
|
||||
|
||||
|
@ -1,19 +0,0 @@
|
||||
FROM ubuntu:20.04
|
||||
LABEL maintainer="citraemu"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN mkdir -p /tmp/pkgs
|
||||
COPY install_package.py /tmp/pkgs
|
||||
RUN apt-get update && apt-get install -y p7zip-full build-essential wget git python-launchpadlib ccache ninja-build
|
||||
RUN cd /tmp/pkgs && python2 install_package.py \
|
||||
libsdl2-dev 2.0.7+dfsg1-3ubuntu1 bionic \
|
||||
qtbase5-dev 5.9.3+dfsg-0ubuntu2 bionic \
|
||||
libqt5opengl5-dev 5.9.3+dfsg-0ubuntu2 bionic \
|
||||
qt5-qmltooling-plugins 5.9.3-0ubuntu1 bionic \
|
||||
qtdeclarative5-dev 5.9.3-0ubuntu1 bionic \
|
||||
qtmultimedia5-dev 5.9.3-0ubuntu3 bionic \
|
||||
libicu57 57.1-6ubuntu0.2 bionic \
|
||||
cmake 3.10.2-1ubuntu2 bionic \
|
||||
libavcodec-dev 7:3.4.4-0ubuntu0.18.04.1 bionic \
|
||||
libavformat-dev 7:3.4.4-0ubuntu0.18.04.1 bionic \
|
||||
libswscale-dev 7:3.4.4-0ubuntu0.18.04.1 bionic
|
||||
RUN rm -rf /tmp/pkgs
|
@ -1,52 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
import re
|
||||
import subprocess
|
||||
from launchpadlib.launchpad import Launchpad
|
||||
|
||||
if sys.version_info[0] > 2:
|
||||
xrange = range
|
||||
|
||||
cachedir = '/.launchpadlib/cache/'
|
||||
launchpad = Launchpad.login_anonymously(
|
||||
'grab build info', 'production', cachedir, version='devel')
|
||||
|
||||
processed_packages = []
|
||||
deb_file_list = []
|
||||
|
||||
|
||||
def get_url(pkg, distro):
|
||||
build_ref = launchpad.archives.getByReference(reference='ubuntu').getPublishedBinaries(
|
||||
binary_name=pkg[0], distro_arch_series='https://api.launchpad.net/devel/ubuntu/' + distro + '/amd64', version=pkg[1], exact_match=True, order_by_date=True).entries[0]
|
||||
build_link = build_ref['build_link']
|
||||
deb_name = '{}_{}_{}.deb'.format(pkg[0], pkg[1].split(':', 1)[-1], 'amd64' if build_ref['architecture_specific'] else 'all')
|
||||
deb_link = build_link + '/+files/' + deb_name
|
||||
return [deb_link, deb_name]
|
||||
|
||||
|
||||
def list_dependencies(deb_file):
|
||||
t = subprocess.check_output(
|
||||
['bash', '-c', '(dpkg -I {} | grep -oP "^ Depends\: \K.*$") || true'.format(deb_file)])
|
||||
deps = [i.split('|')[0].strip() for i in t.split(',')]
|
||||
equals_re = re.compile(r'^(.*) \(= (.*)\)$')
|
||||
return [equals_re.sub(r'\1=\2', i).split('=') for i in filter(equals_re.match, deps)]
|
||||
|
||||
|
||||
def get_package(pkg, distro):
|
||||
if pkg in processed_packages:
|
||||
return
|
||||
print('Getting {}...'.format(pkg[0]))
|
||||
url = get_url(pkg, distro)
|
||||
subprocess.check_call(['wget', '--quiet', url[0], '-O', url[1]])
|
||||
for dep in list_dependencies(url[1]):
|
||||
get_package(dep, distro)
|
||||
processed_packages.append(pkg)
|
||||
deb_file_list.append('./' + url[1])
|
||||
|
||||
|
||||
for i in xrange(1, len(sys.argv), 3):
|
||||
get_package([sys.argv[i], sys.argv[i + 1]], sys.argv[i + 2])
|
||||
|
||||
subprocess.check_call(
|
||||
['apt-get', 'install', '-y', '--force-yes'] + deb_file_list)
|
@ -1,13 +0,0 @@
|
||||
FROM ubuntu:20.04
|
||||
LABEL maintainer="citraemu"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN mkdir -p /tmp/pkgs
|
||||
RUN apt-get update && apt-get install -y gpg wget git python3-pip ccache p7zip-full g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 mingw-w64-tools cmake ninja-build
|
||||
# workaround broken headers in Ubuntu MinGW package
|
||||
COPY errno.h /usr/x86_64-w64-mingw32/include/
|
||||
# add mingw-w64 auxiliary ppa repository
|
||||
RUN echo 'deb http://ppa.launchpad.net/tobydox/mingw-w64/ubuntu bionic main ' > /etc/apt/sources.list.d/extras.list
|
||||
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv '72931B477E22FEFD47F8DECE02FE5F12ADDE29B2' && apt-get update
|
||||
RUN apt-get install -y qt5base-mingw-w64 qt5tools-mingw-w64 libsamplerate-mingw-w64 qt5multimedia-mingw-w64
|
||||
COPY mingw-setup.sh /tmp/pkgs
|
||||
RUN cd /tmp/pkgs && bash -e mingw-setup.sh
|
@ -1,241 +0,0 @@
|
||||
/**
|
||||
* This file has no copyright assigned and is placed in the Public Domain.
|
||||
* This file is part of the mingw-w64 runtime package.
|
||||
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||
*/
|
||||
#ifndef _INC_ERRNO
|
||||
#define _INC_ERRNO
|
||||
|
||||
#include <crtdefs.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef _CRT_ERRNO_DEFINED
|
||||
#define _CRT_ERRNO_DEFINED
|
||||
_CRTIMP extern int *__cdecl _errno(void);
|
||||
#define errno (*_errno())
|
||||
|
||||
errno_t __cdecl _set_errno(int _Value);
|
||||
errno_t __cdecl _get_errno(int *_Value);
|
||||
#endif /* _CRT_ERRNO_DEFINED */
|
||||
|
||||
#define EPERM 1
|
||||
#define ENOENT 2
|
||||
#define ENOFILE ENOENT
|
||||
#define ESRCH 3
|
||||
#define EINTR 4
|
||||
#define EIO 5
|
||||
#define ENXIO 6
|
||||
#define E2BIG 7
|
||||
#define ENOEXEC 8
|
||||
#define EBADF 9
|
||||
#define ECHILD 10
|
||||
#define EAGAIN 11
|
||||
#define ENOMEM 12
|
||||
#define EACCES 13
|
||||
#define EFAULT 14
|
||||
#define EBUSY 16
|
||||
#define EEXIST 17
|
||||
#define EXDEV 18
|
||||
#define ENODEV 19
|
||||
#define ENOTDIR 20
|
||||
#define EISDIR 21
|
||||
#define ENFILE 23
|
||||
#define EMFILE 24
|
||||
#define ENOTTY 25
|
||||
#define EFBIG 27
|
||||
#define ENOSPC 28
|
||||
#define ESPIPE 29
|
||||
#define EROFS 30
|
||||
#define EMLINK 31
|
||||
#define EPIPE 32
|
||||
#define EDOM 33
|
||||
#define EDEADLK 36
|
||||
#define ENAMETOOLONG 38
|
||||
#define ENOLCK 39
|
||||
#define ENOSYS 40
|
||||
#define ENOTEMPTY 41
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
#if !defined(_SECURECRT_ERRCODE_VALUES_DEFINED)
|
||||
#define _SECURECRT_ERRCODE_VALUES_DEFINED
|
||||
#define EINVAL 22
|
||||
#define ERANGE 34
|
||||
#define EILSEQ 42
|
||||
#define STRUNCATE 80
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define EDEADLOCK EDEADLK
|
||||
|
||||
/* Posix thread extensions. */
|
||||
|
||||
#ifndef ENOTSUP
|
||||
#define ENOTSUP 129
|
||||
#endif
|
||||
|
||||
/* Extension defined as by report VC 10+ defines error-numbers. */
|
||||
|
||||
#ifndef EAFNOSUPPORT
|
||||
#define EAFNOSUPPORT 102
|
||||
#endif
|
||||
|
||||
#ifndef EADDRINUSE
|
||||
#define EADDRINUSE 100
|
||||
#endif
|
||||
|
||||
#ifndef EADDRNOTAVAIL
|
||||
#define EADDRNOTAVAIL 101
|
||||
#endif
|
||||
|
||||
#ifndef EISCONN
|
||||
#define EISCONN 113
|
||||
#endif
|
||||
|
||||
#ifndef ENOBUFS
|
||||
#define ENOBUFS 119
|
||||
#endif
|
||||
|
||||
#ifndef ECONNABORTED
|
||||
#define ECONNABORTED 106
|
||||
#endif
|
||||
|
||||
#ifndef EALREADY
|
||||
#define EALREADY 103
|
||||
#endif
|
||||
|
||||
#ifndef ECONNREFUSED
|
||||
#define ECONNREFUSED 107
|
||||
#endif
|
||||
|
||||
#ifndef ECONNRESET
|
||||
#define ECONNRESET 108
|
||||
#endif
|
||||
|
||||
#ifndef EDESTADDRREQ
|
||||
#define EDESTADDRREQ 109
|
||||
#endif
|
||||
|
||||
#ifndef EHOSTUNREACH
|
||||
#define EHOSTUNREACH 110
|
||||
#endif
|
||||
|
||||
#ifndef EMSGSIZE
|
||||
#define EMSGSIZE 115
|
||||
#endif
|
||||
|
||||
#ifndef ENETDOWN
|
||||
#define ENETDOWN 116
|
||||
#endif
|
||||
|
||||
#ifndef ENETRESET
|
||||
#define ENETRESET 117
|
||||
#endif
|
||||
|
||||
#ifndef ENETUNREACH
|
||||
#define ENETUNREACH 118
|
||||
#endif
|
||||
|
||||
#ifndef ENOPROTOOPT
|
||||
#define ENOPROTOOPT 123
|
||||
#endif
|
||||
|
||||
#ifndef ENOTSOCK
|
||||
#define ENOTSOCK 128
|
||||
#endif
|
||||
|
||||
#ifndef ENOTCONN
|
||||
#define ENOTCONN 126
|
||||
#endif
|
||||
|
||||
#ifndef ECANCELED
|
||||
#define ECANCELED 105
|
||||
#endif
|
||||
|
||||
#ifndef EINPROGRESS
|
||||
#define EINPROGRESS 112
|
||||
#endif
|
||||
|
||||
#ifndef EOPNOTSUPP
|
||||
#define EOPNOTSUPP 130
|
||||
#endif
|
||||
|
||||
#ifndef EWOULDBLOCK
|
||||
#define EWOULDBLOCK 140
|
||||
#endif
|
||||
|
||||
#ifndef EOWNERDEAD
|
||||
#define EOWNERDEAD 133
|
||||
#endif
|
||||
|
||||
#ifndef EPROTO
|
||||
#define EPROTO 134
|
||||
#endif
|
||||
|
||||
#ifndef EPROTONOSUPPORT
|
||||
#define EPROTONOSUPPORT 135
|
||||
#endif
|
||||
|
||||
#ifndef EBADMSG
|
||||
#define EBADMSG 104
|
||||
#endif
|
||||
|
||||
#ifndef EIDRM
|
||||
#define EIDRM 111
|
||||
#endif
|
||||
|
||||
#ifndef ENODATA
|
||||
#define ENODATA 120
|
||||
#endif
|
||||
|
||||
#ifndef ENOLINK
|
||||
#define ENOLINK 121
|
||||
#endif
|
||||
|
||||
#ifndef ENOMSG
|
||||
#define ENOMSG 122
|
||||
#endif
|
||||
|
||||
#ifndef ENOSR
|
||||
#define ENOSR 124
|
||||
#endif
|
||||
|
||||
#ifndef ENOSTR
|
||||
#define ENOSTR 125
|
||||
#endif
|
||||
|
||||
#ifndef ENOTRECOVERABLE
|
||||
#define ENOTRECOVERABLE 127
|
||||
#endif
|
||||
|
||||
#ifndef ETIME
|
||||
#define ETIME 137
|
||||
#endif
|
||||
|
||||
#ifndef ETXTBSY
|
||||
#define ETXTBSY 139
|
||||
#endif
|
||||
|
||||
/* Defined as WSAETIMEDOUT. */
|
||||
#ifndef ETIMEDOUT
|
||||
#define ETIMEDOUT 138
|
||||
#endif
|
||||
|
||||
#ifndef ELOOP
|
||||
#define ELOOP 114
|
||||
#endif
|
||||
|
||||
#ifndef EPROTOTYPE
|
||||
#define EPROTOTYPE 136
|
||||
#endif
|
||||
|
||||
#ifndef EOVERFLOW
|
||||
#define EOVERFLOW 132
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
@ -1,36 +0,0 @@
|
||||
#!/usr/bin/bash -e
|
||||
# install pefile
|
||||
pip3 install pefile
|
||||
|
||||
MINGW_URL='https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z/download'
|
||||
TARGET_DIR='mingw64/x86_64-w64-mingw32/lib/'
|
||||
|
||||
echo 'Downloading MinGW replacement binaries...'
|
||||
wget -q "${MINGW_URL}" -O 'mingw.7z'
|
||||
7z x 'mingw.7z' "${TARGET_DIR}"lib{mf,mfplat,mfuuid}.a
|
||||
cp -rv "${TARGET_DIR}"/* '/usr/x86_64-w64-mingw32/lib/'
|
||||
|
||||
# SDL2
|
||||
SDL2_VER='2.0.12'
|
||||
wget "https://www.libsdl.org/release/SDL2-devel-${SDL2_VER}-mingw.tar.gz"
|
||||
tar -zxf "SDL2-devel-${SDL2_VER}-mingw.tar.gz"
|
||||
cd SDL2-${SDL2_VER}/
|
||||
make install-package arch=x86_64-w64-mingw32 prefix=/usr/x86_64-w64-mingw32;
|
||||
cd ..
|
||||
|
||||
# ffmpeg
|
||||
FFMPEG_VER='4.1'
|
||||
for i in 'shared' 'dev'; do
|
||||
echo "Downloading ffmpeg (${i})..."
|
||||
wget -q -c "https://ffmpeg.zeranoe.com/builds/win64/${i}/ffmpeg-${FFMPEG_VER}-win64-${i}.zip"
|
||||
7z x "ffmpeg-${FFMPEG_VER}-win64-${i}.zip" > /dev/null
|
||||
done
|
||||
|
||||
echo "Copying ffmpeg ${FFMPEG_VER} files to sysroot..."
|
||||
cp -v "ffmpeg-${FFMPEG_VER}-win64-shared"/bin/*.dll /usr/x86_64-w64-mingw32/lib/
|
||||
cp -vr "ffmpeg-${FFMPEG_VER}-win64-dev"/include /usr/x86_64-w64-mingw32/
|
||||
cp -v "ffmpeg-${FFMPEG_VER}-win64-dev"/lib/*.{a,def} /usr/x86_64-w64-mingw32/lib/
|
||||
|
||||
# remove the directory
|
||||
ABS_PATH="$(readlink -f $0)"
|
||||
rm -rf "$(dirname ${ABS_PATH})"
|
@ -1,6 +0,0 @@
|
||||
FROM debian:buster-slim
|
||||
LABEL maintainer="citraemu"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get -y full-upgrade
|
||||
RUN apt-get install -y p7zip-full libqt5opengl5-dev qtmultimedia5-dev qttools5-dev qttools5-dev-tools python3-pip cmake
|
||||
RUN pip3 install transifex-client
|
Loading…
x
Reference in New Issue
Block a user