Cross Compiling
This page shows how to cross compile from Linux to windows using mxe.
Download MXE
You can follow the tutorial or just clone with git:
git clone https://github.com/mxe/mxe.git
Also make sure you have the mxe dependencies installed.
Compile Required Packages
From the mxe
directory: (You can change -j4 JOBS=4
to fit your machine)
make MXE_TARGETS=x86_64-w64-mingw32.shared.posix MXE_PLUGIN_DIRS=plugins/gcc9 -j4 JOBS=4 qt5 gcc cmake
MXE_PATH="$PWD" # Set a shell variable for later
(TODO: build CPython libraries)
Compile Glaxnimate
Run these from the Glaxnimate source directory (or anywhere if you know how CMake works). It's similar to the build instructions listed in the README but we need to use the tools provided by mxe
git submodule update --init --recursive # Make sure you have all submodules cloned
export PATH="$MXE_PATH/usr/bin/:$PATH"
mkdir build
cd build
x86_64-w64-mingw32.shared.posix-cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/
make -j 4 # This uses 4 cores to compile
This will produce the binary as ./bin/glaxnimate.exe
.
Packaging
Install mxedeployqt
Somewhere in you system (for example ~/src/
):
git clone https://github.com/saidinesh5/mxedeployqt.git
Creating The Package
From the same build directory as when compiling:
make translations
make install DESTDIR=glaxnimate
# Change the command below to the actual mxedeployqt path
~/src/mxedeployqt/mxedeployqt --mxepath "$MXE_PATH" --mxetarget x86_64-w64-mingw32.shared.posix glaxnimate/bin/
zip -r glaxnimate.zip glaxnimate
You now should have glaxnimate.zip
in your build directory.