Metadata-Version: 2.1
Name: aqtinstall
Version: 0.8b1
Summary: Another unofficial Qt installer
Home-page: http://github.com/miurahr/aqtinstall
Author: Hiroshi Miura
Author-email: miurahr@linux.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: C++
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/x-rst
Requires-Dist: requests
Requires-Dist: wheel
Requires-Dist: py7zr (<0.7,>=0.5.3)
Requires-Dist: packaging
Requires-Dist: importlib-metadata ; python_version < "3.8"
Provides-Extra: dev
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-pep8 ; extra == 'dev'
Requires-Dist: pytest-remotedata ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'

Another Qt installer(aqt)
=========================


.. |pypi| image:: https://badge.fury.io/py/aqtinstall.svg
   :target: http://badge.fury.io/py/aqtinstall
.. |docs| image:: https://readthedocs.org/projects/aqtinstall/badge/?version=latest
   :target: https://aqtinstall.readthedocs.io/en/latest/?badge=latest
.. |pep8| image:: https://travis-ci.org/miurahr/aqtinstall.svg?branch=master
   :target: https://travis-ci.org/miurahr/aqtinstall
.. |macos| image:: https://dev.azure.com/miurahr/github/_apis/build/status/miurahr.aqtinstall?branchName=master&jobName=Mac
   :target: https://dev.azure.com/miurahr/github/_build/latest?definitionId=6&branchName=master
.. |ubuntu| image:: https://dev.azure.com/miurahr/github/_apis/build/status/miurahr.aqtinstall?branchName=master&jobName=Linux
   :target: https://dev.azure.com/miurahr/github/_build/latest?definitionId=6&branchName=master
.. |windows| image:: https://dev.azure.com/miurahr/github/_apis/build/status/miurahr.aqtinstall?branchName=master&jobName=Windows
   :target: https://dev.azure.com/miurahr/github/_build/latest?definitionId=6&branchName=master
.. |ext| image:: https://dev.azure.com/miurahr/github/_apis/build/status/miurahr.aqtinstall?branchName=master&jobName=Linux%20(Specific%20Mirror)
   :target: https://dev.azure.com/miurahr/github/_build/latest?definitionId=6&branchName=master
.. |gha| image:: https://github.com/miurahr/aqtinstall/workflows/Test%20on%20GH%20actions%20environment/badge.svg
   :target: https://github.com/miurahr/aqtinstall/actions?query=workflow%3A%22Test+on+GH+actions+environment%22

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

This is an utility replacing the official graphical Qt installer. 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.
It is required to install 7zip utility in your platform.

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`_

.. _`Qt licensing`: https://www.qt.io/licensing/

.. _`Licenses used in Qt5`: https://doc.qt.io/qt-5/licenses-used-in-qt.html

Install
-------

Same as usual, it can be installed with `pip`

.. code-block:: bash

    $ pip install aqtinstall

Usage
-----

General usage looks like this:

.. code-block:: bash

    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]...]

.. code-block:: bash

    python -m 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]...]

* 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_msvc2017_64`, `win32_msvc2017`, `win64_msvc2015_64`, `win32_msvc2015`, 
      `win64_mingw73`, `win32_mingw73`, `win64_mingw53`, `win32_mingw53`, `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;

.. code-block:: bash

    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.

.. _`archive_site`: https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/tools_ifw/


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:

.. code-block:: bash

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


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

.. code-block:: bash

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


Example: Installing Android (armv7) Qt 5.10.2:

.. code-block:: bash

    aqt install 5.10.2 linux android android_armv7


Example: Install Install FrameWork(IFW):

.. code-block:: bash

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


Example: Install vcredist:

.. code-block:: bash

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


Example: Install OpenSSL:

.. code-block:: bash

    C:\ aqt tool windows tools_openssl 1.1.1-1 qt.tools.openssl.win_x64


Example: Show help message

.. code-block:: bash

    aqt help


Supported CI platform
---------------------

There are no limitation for CI platform but currently it is tested on Azure Pipelines.
If you want to use it with Github actions, please see `install_qt`_ action.


Use cases
---------

* GitHub Actions: `install_qt`_

.. _`install_qt`: https://github.com/jurplel/install-qt-action


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.

.. _`kaidan`: https://git.kaidan.im/lnj/qli-installer

====================
aqtinstall changeLog
====================

All notable changes to this project will be documented in this file.

***************
Current changes
***************

`Unreleased`_
=============

Added
-----

Changed
-------

Fixed
-----

Deprecated
----------

Removed
-------

Security
--------

`v0.8b1`_ (12, Mar. 2020)
=========================

Added
-----

* Support specifing config with environment variable AQT_CONFIG

Fixed
-----

* Fix to use concurrency settings

`v0.8a4`_ (6, Mar., 2020)
=========================

Fixed
-----

* Import-metadata package is required in python version < 3.8 not 3.7.
* Refactoring redirect helper function to improve connection error checks and error message.(#109)

`v0.8a3`_ (5, Mar., 2020)
=========================

Changed
-------

* Improve error messages when command argument is wrong.

Fixed
-----

* Work around for http://download.qt.io/ returns wrong metalink xml data.(#105, #106)


`v0.8a1`_ (28, Feb., 2020)
==========================

Changed
-------

* Allow path search for 7z (#96)
* Simplify multithreading using concurrent.futures.ThreadPoolExecutor().

Fixed
-----

* Detect exception on each download and extraction threads.
* Race condition error happend on py7zr. require py7zr>=0.5.3.(#97)


`v0.7.4`_ (15, Feb., 2020)
==========================

Changed
-------

* requirement of py7zr version become >0.6b2 which fixed a multiprocessing problem.


`v0.7.3`_ (14, Feb., 2020)
==========================

Added
-----

* Github Actions workflows for publishing.

Changed
-------

* Remove run script from source.
  Now it is automatically generated when build.(#85)
* Update requirement py7zr >=0.5

Fixed
-----

* README: fix reStructured text syntax.


`v0.7.2`_ (11, Feb., 2020)
==========================


Changed
-------

* Replace 'multiprocessing.dummy' with 'concurrent.futures'.
    - download with multi-threading(I/O bound)
    - extract with multi-processing(CPU bound)

Fixed
-----

* '-E | --external' option handling which cause path is not str error.



`v0.7.1`_ (13, Jan., 2020)
==========================

Fixed
-----

* Fix installation of extra modules for Qt5.9.


`v0.7`_ (13, Jan., 2020)
==========================

Changed
-------

* Move project metadata to setup.cfg from setup.py.


`v0.7b1`_ (10, Jan., 2020)
==========================

Changed
-------

* Bamp up dependency py7zr >=v0.5b5.
* Use py7zr in default to extract packages.
* Drop --internal command line option.


`v0.7a2`_ (7, Jan., 2020)
==========================

Added
-----

* Add special module name 'all' for extra module option.

Fixed
-----

* CI conditions, update target version.

`v0.7a1`_ (29, Nov., 2019)
==========================

Added
-----

* Introduce helper module.
* Introduce 'settings.ini' file which has a configuration for
  aqt module.

Changed
-------

* Version numbering with setuptools_scm.
* Now don't install extra modules when installing 'wasm_32' arch.
  You should explicitly specify it with '-m' option.

Fixed
-----

* Error when mirror site is not http, but https and ftp.

`v0.6b1`_ (23, Nov., 2019)
==========================

Changed
-------

* Just warn when argument combination check is failed.
* CI: Compress sample project for build test with 7zip.
* CI: Place sample script in ci directory.


`v0.6a2`_ (19, Nov., 2019)
==========================

Added
-----

* Test: Unit test against command line.
* Android target variants.

Changed
-------

* Use logging configuration with logging.ini

Fixed
-----

* qconfig.pri: fix QT_LICHECK line.

Removed
-------

* Logging configuration file logging.yml
* Drop dependency for pyyaml.

`v0.6a1`_ (17, Nov., 2019)
==========================

Added
-----

* More build test with sample project which uses an extra module.(#56)
* Add support for installation of WebAssembly component by specifying
  'wasm_32' as an arch argument.(#53, #55)

Changed
-------

* Optional modules are installed explicitly. Users need to specify extra modules with -m option.(#52, #56)

Fixed
-----

* Dependency for py7zr only for python > 3.5. Now it works with python2.7.

`v0.5`_ (10, Nov., 2019)
========================

Changed
-------

* Introduce combination DB in json form. User and developer now easily add new
  component for installation checking.

Fixed
-----

* requires `py7zr`_ >= 0.4.1 because v0.4 can fails to extract file.


`v0.5b2`_ (8, Oct., 2019)
=========================

Changed
-------

* Change install path from <target>/Qt/Qt<version>/<version> to <target>/<version> (#48).
  - Also update CI test to specify --outputdir <target> that is $(BinariesDirectory)/Qt

`v0.5b1`_ (8, Oct., 2019)
=========================

Added
-----

* Add feature to support installation of Qt Tools
* Add CI test for tool installation

Changed
-------

* CI test target
  - add 5.14.0
  - remove 5.11.3
  - change patch_levels to up-to-date


`v0.4.3`_ (25, Sep, 2019)
=========================

Fixed
-----

* Allow multiple redirection to mirror site.(#41)


`v0.4.2`_ (28, Jul, 2019)
=========================

Changed
-------

* README: update badge layout.
* CI: Improve azure-pipelines configurations by Nelson (#20)
* Check parameter combination allowance and add winrt variant.
* Support installation of mingw runtime package.
* Add '--internal' option to use `py7zr`_ instead of
  external `7zip`_ command for extracting package archives.(WIP)


`v0.4.1`_ (01, Jun, 2019)
=========================

Added
-----

* Option -b | --base to specify mirror site.(#24)

Changed
-------

* CI: add script to generate auzre-pipelines.yml (#27, #28, #29)
* CI: use powershell script for linux, mac and windows. (#26)

Fixed
-----

* Avoid blacklisted mirror site that cause CI fails.(#25)


`v0.4.0`_ (29, May, 2019)
=========================

Added
-----

* cli: output directory option.
* sphinx document.
* test packaging on CI.
* Handler for metalink information and intelligent mirror selection.

Changed
-------

* Change project directory structure.
* cli command name changed from 'aqtinst' to 'aqt' and now you can run 'aqt install'
* Introduce Cli class
* Massive regression test on azure pipelines(#20)
* blacklist against http://mirrors.tuna.tsinghua.edu.cn and http://mirrors.geekpie.club/
  from mirror site.
* Run 7zip command with '-o{directory}' option.

Fixed
-----

* Fix File Not Found Error when making qt.conf against win64_mingw73 and win32_mingw73


`v0.3.1`_ (15, March, 2019)
===========================

Added
-----

* Qmake build test code in CI environment.(#14)

Fixed
-----

* Connect to Qt download server through proxy with authentication.(#17)

Changed
-------

* Change QtInstaller.install() function signature not to take any parameter.
* Replace standard urllib to requests library.(#18)
* Use 7zr external command instead of 7z in Linux and mac OSX envitonment.

Removed
-------

* requirements.txt file.


`v0.3.0`_ (8, March, 2019)
==========================

Added
-----

* Allow execute both 'aqtinst'  and 'python -m aqt' form.

Changed
-------

* Project URL is changed.
* Generate universal wheel support both python2.7 and python 3.x.

Fixed
-----

* Update README wordings.
* Remove dependency for python3 with 'aqtinst' command utility.
* Fix command name in help message.



`v0.2.0`_ (7, March, 2019)
==========================

Added
-----

* Released on pypi.org

Changed
-------

* Install not only basic packages also optional packages.
* Rename project/command to aqt - Another QT installer

Fixed
-----

* Update mkspecs/qconfig.pri to indicate QT_EDITION is OpenSource
* Support Python2

`v0.1.0`_ (5, March, 2019)
==========================

Changed
-------

* Support  multiprocess concurrent download and installation.

`v0.0.2`_ (4, March, 2019)
==========================

Added
=====

* CI test on Azure-pipelines

Changed
=======

* Refactoring code
* Install QtSDK into (cwd)/Qt<version>/<version>/gcc_64/
* Drop dependency for `requests`_ library
* Use standard `argparse`_ for command line argument.

Fixed
=====

* Support windows.
* looking for 7zip in standard directory.

`v0.0.1`_ (2, March, 2019)
==========================

* Fork from https://git.kaidan.im/lnj/qli-installer


.. _py7zr: https://github.com/miurahr/py7zr
.. _7zip: https://www.7-zip.org/
.. _requests: https://pypi.org/project/requests
.. _argparse: https://pypi.org/project/argparse/

.. _Unreleased: https://github.com/miurahr/aqtinstall/compare/v0.8b1...HEAD
.. _v0.8b1: https://github.com/miurahr/aqtinstall/compare/v0.8a4...v0.8b1
.. _v0.8a4: https://github.com/miurahr/aqtinstall/compare/v0.8a3...v0.8a4
.. _v0.8a3: https://github.com/miurahr/aqtinstall/compare/v0.8a1...v0.8a3
.. _v0.8a1: https://github.com/miurahr/aqtinstall/compare/v0.7.4...v0.8a1
.. _v0.7.4: https://github.com/miurahr/aqtinstall/compare/v0.7.3...v0.7.4
.. _v0.7.3: https://github.com/miurahr/aqtinstall/compare/v0.7.2...v0.7.3
.. _v0.7.2: https://github.com/miurahr/aqtinstall/compare/v0.7.1...v0.7.2
.. _v0.7.1: https://github.com/miurahr/aqtinstall/compare/v0.7...v0.7.1
.. _v0.7: https://github.com/miurahr/aqtinstall/compare/v0.7b1...v0.7
.. _v0.7b1: https://github.com/miurahr/aqtinstall/compare/v0.7a2...v0.7b1
.. _v0.7a2: https://github.com/miurahr/aqtinstall/compare/v0.7a1...v0.7a2
.. _v0.7a1: https://github.com/miurahr/aqtinstall/compare/v0.6b1...v0.7a1
.. _v0.6b1: https://github.com/miurahr/aqtinstall/compare/v0.6a2...v0.6b1
.. _v0.6a2: https://github.com/miurahr/aqtinstall/compare/v0.6a1...v0.6a2
.. _v0.6a1: https://github.com/miurahr/aqtinstall/compare/v0.5...v0.6a1
.. _v0.5: https://github.com/miurahr/aqtinstall/compare/v0.5b2...v0.5
.. _v0.5b2: https://github.com/miurahr/aqtinstall/compare/v0.5b1...v0.5b2
.. _v0.5b1: https://github.com/miurahr/aqtinstall/compare/v0.4.3...v0.5b1
.. _v0.4.3: https://github.com/miurahr/aqtinstall/compare/v0.4.2...v0.4.3
.. _v0.4.2: https://github.com/miurahr/aqtinstall/compare/v0.4.1...v0.4.2
.. _v0.4.1: https://github.com/miurahr/aqtinstall/compare/v0.4.0...v0.4.1
.. _v0.4.0: https://github.com/miurahr/aqtinstall/compare/v0.3.1...v0.4.0
.. _v0.3.1: https://github.com/miurahr/aqtinstall/compare/v0.3.0...v0.3.1
.. _v0.3.0: https://github.com/miurahr/aqtinstall/compare/v0.2.0...v0.3.0
.. _v0.2.0: https://github.com/miurahr/aqtinstall/compare/v0.1.0...v0.2.0
.. _v0.1.0: https://github.com/miurahr/aqtinstall/compare/v0.0.2...v0.1.0
.. _v0.0.2: https://github.com/miurahr/aqtinstall/compare/v0.0.1...v0.0.2
.. _v0.0.1: https://github.com/miurahr/aqtinstall/releases/tag/v0.0.1


