Giter VIP home page Giter VIP logo

aqtinstall's Introduction

Another Qt installer(aqt)

Jobs Mac Linux Windows Mirror Release Status
Status macos ubuntu windows ext gha pypi pep8 docs

This is an utility alternative to the official graphical Qt installer, for using in CI environment where an inteactive UI is not usable such as Github Actions, Tavis-CI, CircleCI, Azure-Pipelines, AppVeyor and others.

It can automatically download prebuilt Qt binaries for any target (you're not bound to Linux binaries on Linux; you could also download iOS binaries). It's working with Python > 3.5 on Linux, OS X and Windows.

License and copyright

This program is distributed under MIT license.

Qt SDK and its related files are under its licenses. When using aqtinstall, you are considered to agree upon Qt licenses. aqtinstall installs Qt SDK as of a (L)GPL Free Software.

For details see Qt licensing and Licenses used in Qt5

Install

Same as usual, it can be installed with pip

$ pip install aqtinstall

Usage

General usage looks like this:

aqt [-h][--help][-O | --outputdir <directory>][-b | --base <mirror url>][-E | --external <7zip command>] \
    install <qt-version> <host> <target> [<arch>] [-m all | -m [extra module] [extra module]...]

You can also call with python -m aqt syntax as well as command script aqt.

  • The Qt version is formatted like this: 5.11.3
  • Host is one of: linux, mac, windows
  • Target is one of: desktop, android, ios (iOS only works with mac host)
  • For some platforms you also need to specify an arch:
    • For windows, choose one of:
      • win64_msvc2019_64, win32_msvc2019,
      • win64_msvc2017_64, win32_msvc2017,
      • win64_msvc2015_64, win32_msvc2015,
      • win64_mingw81, win32_mingw81,
      • win64_mingw73, win32_mingw73,
      • win64_mingw53, win32_mingw53,
      • win64_msvc2019_winrt_x64, win64_msvc2019_winrt_x86, win64_msvc2019_winrt_armv7
      • win64_msvc2017_winrt_x64, win64_msvc2017_winrt_x86, win64_msvc2017_winrt_armv7
    • For android and Qt 5.13 or below, choose one of: android_x86_64, android_arm64_v8a, android_x86, android_armv7
  • You can specify external 7zip command path instead of built-in extractor.
  • When specify all for extra modules option '-m' all extra modules are installed.

Installing tool and utility(Experimental)

You can install tools and utilities using following syntax;

python -m aqt [-h][--help][-O | --outputdir <directory>][-b | --base <mirror url>][-E | --external <7zip command>] \
    tool <host> <tool_name> <tool-version> <arch>
  • tool_name is one of tools_ifw, tools_vcredist, and tools_openssl.
  • arch is full qualified tool name such as qt.tools.ifw.31 which values can be seen on Qt archive_site This is a quite experimental feature, may not work and please use it with your understanding of what you are doing.
  • It does not recognize 'installscript.qs'. When using tools which depends on a qt script, you should do something by yourself.

Target directory

aqt can take option '--outputdir' or '-O' that specify a target directory.

The Qt packages are installed under current directory as such Qt/<ver>/gcc_64/ If you want to install it in C:Qt as same as standard gui installer default, run such as follows:

C:\> mkdir Qt
C:\> aqt install --outputdir c:\Qt 5.11.3 windows desktop win64_msvc2019_64

Command examples

Example: Installing Qt SDK 5.12.0 for Linux with QtCharts and QtNetworkAuth:

pip install aqtinstall
sudo aqt install --outputdir /opt 5.12.0 linux desktop -m qtcharts qtnetworkauth

Example: Installing Android (armv7) Qt 5.10.2:

aqt install 5.10.2 linux android android_armv7

Example: Install examples, doc and source:

C:\ aqt examples 5.15.0 windows desktop -m qtcharts qtnetworkauth
C:\ aqt doc 5.15.0 windows desktop -m qtcharts qtnetworkauth
C:\ aqt src 5.15.0 windows desktop

Example: Install Web Assembly

aqt install 5.15.0 linux desktop wasm_32

Example: Install an Install FrameWork(IFW):

aqt tool linux tools_ifw 3.1.1 qt.tools.ifw.31

Example: Install vcredist:

C:\ aqt tool windows tools_vcredist 2019-02-13-1 qt.tools.vcredist_msvc2019_x64
C:\ .\Qt\Tools\vcredist\vcredist_msvc2019_x64.exe /norestart /q

Example: Install MinGW on Windows

C:\ aqt tool -O c:\Qt windows tools_mingw 8.1.0-1-202004170606 qt.tools.win64_mingw810w
c:\ set PATH=C:\Qt\Tools\mingw810_64\bin

Example: Show help message

aqt help

Environment Variables

It is users task to set some environment variables to fit your platform such as

export PATH=/path/to/qt/x.x.x/clang_64/bin/:$PATH
export QT_PLUGIN_PATH=/path/to/qt/x.x.x/clang_64/plugins/
export QML_IMPORT_PATH=/path/to/qt/x.x.x/clang_64/qml/
export QML2_IMPORT_PATH=/path/to/qt/x.x.x/clang_64/qml/

aqtinstall never do it for you because not to break multiple installation versions.

Supported CI platforms

There are no limitation for CI platform but currently it is tested on Azure Pipelines and Github actions. If you want to use it with Github actions, install_qt action will help you.

Use cases

Media and articles

History

This program is originally shown in Kaidan project as a name qli-installer. A project aqtinstall extend the original to run with standard python features with Linux, Mac and Windows, to be tested on CI platform, and to improve performance with a concurrent downloading.

aqtinstall's People

Contributors

altendky avatar graingert avatar lnjx avatar martindelille avatar miurahr avatar mizux avatar nelsonjchen avatar skycoder42 avatar ypnos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.