-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8176 from elpaso/mxe-reborn-docker
mxe: couldn't be easier now
- Loading branch information
Showing
6 changed files
with
118 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,40 @@ | ||
|
||
== Building on Linux with mxe == | ||
|
||
With this approach you can build a windows binary on Linux using mxe MXE (M cross environment). | ||
You can find the build script and a README file in the ms-windows/mxe directory. | ||
With this approach you can cross build a Windows binary on Linux using MXE (M cross environment). | ||
You can find the build script and a README.md file in the ms-windows/mxe directory. | ||
|
||
For now, Python buildings cannot be built with mxe. | ||
|
||
=== Initial setup === | ||
=== Building with Docker === | ||
|
||
This is the simplest way, but you need to have Docker installed | ||
on your system. | ||
|
||
You can use a Docker image to cross build QGIS by calling | ||
the script ms-windows/mxe/build.sh from the root directory of QGIS repository. | ||
|
||
=== Building without Docker ==== | ||
|
||
This requires to install mxe toolchain on your system and build | ||
all dependencies by yourself. | ||
|
||
==== Initial setup ==== | ||
|
||
Please follow the instructions on mxe website to setup your building toolchain http://mxe.cc/, | ||
take note of the path where you have installed mxe. | ||
|
||
=== Building the dependencies === | ||
==== Building the dependencies ==== | ||
|
||
Please see the README under ms-windows/mxe for a list of the dependencies that need to be | ||
built in mxe before attempting to build QGIS. | ||
Please see README.md under ms-windows/mxe for detailed instructions and for the | ||
list of dependencies that need to be built in mxe before attempting to build QGIS. | ||
|
||
=== Cross-Building QGIS === | ||
==== Cross-Building QGIS ==== | ||
|
||
Edit the build-mxe.sh script and change the path where your mxe installation is located, you | ||
can also change the build and release directory. | ||
Edit the build-mxe.sh script and optionally adjust the path where your mxe installation is located, you | ||
can also change the build and release directories. | ||
|
||
=== Testing QGIS === | ||
|
||
Copy and unzip the release package on a Windows machine and launch it! | ||
Copy and unzip on the Windows machine package produced by the build and launch the qgis binary: no installation | ||
is required. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# MXE cross build | ||
|
||
Scripts to cross build a windows QGIS binary from Linux using MXE: | ||
(M cross environment) http://mxe.cc/ | ||
|
||
The product is a zip file that contains a Windows build of QGIS, | ||
ready to be unzipped on a Windows machine, it does not require | ||
installation, just run the `qgis` binary. | ||
|
||
Unfortunately it has some... | ||
|
||
## Limitations | ||
|
||
- No Python support | ||
- No OpenCL support | ||
- No support for the new native Windows overrides (notifications etc.) | ||
|
||
## The easy way (requires docker) | ||
|
||
From the main directory of QGIS repo issue the following command: | ||
|
||
``` | ||
ms-windows/mxe/build.sh | ||
``` | ||
|
||
## The hard way | ||
|
||
Follow the instructions on the website to prepare the mxe environment, you | ||
will need to build all required dependencies for QGIS (or see `mxe.Dockerfile` to get an idea). | ||
|
||
The following command will select the posix threads enabled target and install | ||
the dependencies required by QGIS: | ||
|
||
``` | ||
make MXE_TARGETS=i686-w64-mingw32.shared.posix -j 16 \ | ||
qca \ | ||
qtlocation \ | ||
qscintilla2 \ | ||
qwt \ | ||
gdal \ | ||
qtkeychain \ | ||
qtserialport \ | ||
qtwebkit \ | ||
qtwinextras \ | ||
libzip \ | ||
gsl \ | ||
libspatialindex | ||
``` | ||
|
||
When done, you can check and edit the `build-mxe.sh` script and set the `MXE` path to your mxe installation directory, `MXE` can also be passed as an environment variable. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/bin/bash | ||
|
||
# Location of current script | ||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | ||
|
||
docker run \ | ||
-v $(pwd):$(pwd) \ | ||
-w $(pwd) --rm \ | ||
--user $(id -u):$(id -g) \ | ||
-it elpaso/mxe-qt5-builder \ | ||
${DIR}/build-mxe.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
FROM buildpack-deps:stretch | ||
|
||
RUN apt-get update | ||
RUN apt-get install -y --no-install-recommends autopoint bison flex gperf libtool ruby scons unzip p7zip-full intltool libtool libtool-bin nsis zip | ||
|
||
WORKDIR /mxe | ||
|
||
RUN git clone https://github.com/mxe/mxe . || git pull origin master | ||
RUN make MXE_TARGETS=i686-w64-mingw32.shared.posix -j 16 \ | ||
qca \ | ||
qtlocation \ | ||
qscintilla2 \ | ||
qwt \ | ||
gdal \ | ||
qtkeychain \ | ||
qtserialport \ | ||
qtwebkit \ | ||
qtwinextras \ | ||
libzip \ | ||
gsl \ | ||
libspatialindex | ||
|
||
RUN chmod -R a+rw /mxe/usr/i686-w64-mingw32.shared.posix |