aboutsummaryrefslogtreecommitdiff
path: root/scripts/windows
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/windows')
-rw-r--r--scripts/windows/Dockerfile17
-rw-r--r--scripts/windows/Dockerfile-mxe44
-rw-r--r--scripts/windows/how-to-push.md19
3 files changed, 80 insertions, 0 deletions
diff --git a/scripts/windows/Dockerfile b/scripts/windows/Dockerfile
new file mode 100644
index 00000000..90d6c27e
--- /dev/null
+++ b/scripts/windows/Dockerfile
@@ -0,0 +1,17 @@
+FROM oldmud0/mxe-qt:5.12.1-win32-static-posix
+#FROM fffaraz/qt:windows
+
+ENV TARGET_SPEC i686-w64-mingw32.static.posix
+
+# Build Discord RPC statically
+RUN git clone https://github.com/discordapp/discord-rpc
+WORKDIR discord-rpc/build
+RUN /opt/mxe/usr/bin/${TARGET_SPEC}-cmake .. -DCMAKE_INSTALL_PREFIX=/opt/mxe/usr/${TARGET_SPEC}
+RUN /opt/mxe/usr/bin/${TARGET_SPEC}-cmake --build . --config Release --target install
+WORKDIR ../..
+
+# Build QtApng statically
+RUN git clone https://github.com/Skycoder42/QtApng
+WORKDIR QtApng
+RUN /opt/mxe/usr/${TARGET_SPEC}/qt5/bin/qmake && make qmake_all && make && make install
+WORKDIR ..
diff --git a/scripts/windows/Dockerfile-mxe b/scripts/windows/Dockerfile-mxe
new file mode 100644
index 00000000..e6caec57
--- /dev/null
+++ b/scripts/windows/Dockerfile-mxe
@@ -0,0 +1,44 @@
+FROM ubuntu:18.04
+
+RUN apt-get update
+RUN apt-get install -y \
+ autoconf \
+ automake \
+ autopoint \
+ bash \
+ bison \
+ bzip2 \
+ flex \
+ g++ \
+ g++-multilib \
+ gettext \
+ git \
+ gperf \
+ intltool \
+ libc6-dev-i386 \
+ libgdk-pixbuf2.0-dev \
+ libltdl-dev \
+ libssl-dev \
+ libtool-bin \
+ libxml-parser-perl \
+ lzip \
+ make \
+ openssl \
+ p7zip-full \
+ patch \
+ perl \
+ pkg-config \
+ python \
+ ruby \
+ sed \
+ unzip \
+ wget \
+ xz-utils
+
+RUN git clone https://github.com/mxe/mxe.git
+RUN mv mxe /opt/mxe
+WORKDIR /opt/mxe
+RUN make -j4 MXE_TARGETS="i686-w64-mingw32.static.posix" qtbase qtmultimedia
+ENV PATH=/opt/mxe/usr/bin:$PATH
+
+WORKDIR /
diff --git a/scripts/windows/how-to-push.md b/scripts/windows/how-to-push.md
new file mode 100644
index 00000000..8c1c18d6
--- /dev/null
+++ b/scripts/windows/how-to-push.md
@@ -0,0 +1,19 @@
+When you want to build a new version of Qt:
+```docker
+docker build -t mxe-windows-static . -f Dockerfile-mxe
+docker tag mxe-windows-static oldmud0/mxe-qt:5.12.1-win32-static-posix
+docker push oldmud0/mxe-qt:5.12.1-win32-static-posix
+```
+
+Remember to log into Docker Hub before attempting to push.
+
+When you want to build a new version of any dependency required for building AO:
+```docker
+docker build -t mxe-windows-static-ao . -f Dockerfile
+docker tag mxe-windows-static-ao registry.gitlab.com/attorneyonline/ao2-client/builder-windows-i686
+docker push registry.gitlab.com/attorneyonline/ao2-client/builder-windows-i686
+```
+
+Remember to create an access token in GitLab before attempting to push.
+
+GitLab CI depends on `builder-windows-i686` image to be present in the repository's registry in order for the Windows build to succeed.