mirror of
https://github.com/mappu/miqt.git
synced 2025-05-07 20:40:22 +00:00
64 lines
2.4 KiB
Markdown
64 lines
2.4 KiB
Markdown
# miqt-docker
|
|
|
|
This is an optional helper program to quickly run a dockerized MIQT cross-compiler
|
|
environment. Many containers are available targeting different OSes and Qt versions.
|
|
|
|
It also has some built-in commands that can be run either dockerized or natively.
|
|
|
|
## Usage
|
|
|
|
Run `miqt-docker` with no arguments to see full usage instructions and all
|
|
available embedded dockerfiles:
|
|
|
|
```bash
|
|
Usage: miqt-docker ENVIRONMENT COMMAND...
|
|
|
|
COMMAND may be any shell command (e.g. go build); or /bin/bash to get an
|
|
interactive terminal; or one of the following predefined tasks:
|
|
|
|
-build Run 'go build' with usual MIQT flags
|
|
-minify-build Run 'go build' with special minification flags
|
|
-windows-build Run 'go build' with special Windows support
|
|
-android-build Build an Android APK (using the android-qt5 or android-qt6
|
|
container environments)
|
|
|
|
Environment variables:
|
|
DOCKER Override the path to docker
|
|
|
|
Available container environments: (use - as wildcard character)
|
|
[...]
|
|
```
|
|
|
|
You can specify the environment using a short form of the name. For example,
|
|
`win64-static` will be expanded to the regex `/win64.+static/` and pick the
|
|
best available match with the highest version number (`win64-cross-go1.24-qt6.8-static`
|
|
at time of writing).
|
|
This allows you to pin platforms and major versions in build commands while
|
|
automatically upgrading to minor versions.
|
|
|
|
Example build commands:
|
|
|
|
```bash
|
|
miqt-docker macos go build -ldflags '-s -w'
|
|
miqt-docker native -minify-build
|
|
miqt-docker win64-qt6-static -windows-build
|
|
miqt-docker win64-qt6-static /bin/bash
|
|
miqt-docker android-qt6 -android-build
|
|
```
|
|
|
|
## Comparison to manual Docker commands
|
|
|
|
You can create a dockerized MIQT build environment yourself using the Dockerfiles
|
|
in the `docker/` directory. The benefit of miqt-docker is:
|
|
|
|
- Embeds all available MIQT docker containers
|
|
- Use glob matches to automatically pick the highest version container for target
|
|
- Automatically build new docker containers or reuse existing, based on content hash of the Dockerfile
|
|
- Consistently named docker images across multiple projects using MIQT
|
|
- Automatically bind source code volume from current go.mod / go.work / git repository and preserve relative working directory
|
|
- Handles bind-mounting the GOCACHE and GOMODCACHE directories for fast rebuilds
|
|
- Handles using the proper uid+gid on Linux
|
|
- Automatically detect sudo requirement on Linux
|
|
- Convenient predefined tasks
|
|
- Advanced build support for Android
|