Skip to content

mingw-based build environment based on arch-linux. Easy cross-compilation for windows target.

License

Notifications You must be signed in to change notification settings

mdimura/docker-mingw-arch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MinGW-arch

mingw-based build environment based on arch-linux. The image provides an easy to use cross-compilation for windows target. It is also CI-friendly. mingw- versions of Qt5, cmake, Eigen3, boost are included. Dosens of other libraries are available from the package manager.

Table of Contents

  1. Usage
  2. Continuous Integration
  3. Dependencies
  4. Supported tags

Usage

Start the docker container:

sudo docker run -it burningdaylight/mingw-arch:qt /bin/bash

Compile your application (QNapi is used as an example here):

git clone --recursive 'https://github.com/QNapi/qnapi.git'
cd qnapi/
x86_64-w64-mingw32-qmake-qt5
make

Or for CMake:

x86_64-w64-mingw32-cmake ..

To deploy the program, you will need to copy the dlls from /usr/{x86_64-w64-mingw32,i686-w64-mingw32}/{bin,lib/qt/plugins/{imageformats,iconengines,platforms}} (for x64 and x32 builds respectively) to the directory with the .exe file. The list of necessary dlls may vary. If a dll is missing, Windows will usually show an error popup window with the name of the missing dll, when you try to start the program.

That's it!

Continuous Integration

For Gitlab CI the config file could look something like this:

build-win64:
  stage: compile
  image: burningdaylight/mingw-arch:qt
  script:
    - mkdir -p ${CI_BUILD_NAME}
    - cd ${CI_BUILD_NAME}; x86_64-w64-mingw32-qmake-qt5 ..; make
  artifacts:
    paths:
      - "${CI_BUILD_NAME}/src/*/release/*.exe"
      - "${CI_BUILD_NAME}/src/*/release/*.dll"

You can also check out the a full .gitlab-ci.yml file.

Dependencies

If you need some other dependencies, you can install them from AUR.

yay -S --noconfirm mingw-w64-rapidjson

If mingw- version of the needed libarary is not available in AUR, you can add it yourself. The process is really straightforward. You would need to write a PKBUILD file, which is as intuitive as it can get, see mingw-w64-rapidjson, for example.

Supported tags

  • base minimal cross-compilation environment which includes yay to install additional libraries from AUR and a small set of mingw-w64- packages: cmake, gcc, zlib
  • latest, qt full-blown cross-compilation environment, which includes Qt5, boost, openssl, etc.

About

mingw-based build environment based on arch-linux. Easy cross-compilation for windows target.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published