qt5base-lts/util/cmake
Alexandru Croitor bb25536a3d CMake: Fix Vulkan to be found when targeting Android
Introduce two new packages WrapVulkanHeaders and WrapVulkan similar to
the OpenSSL wrapper packages.

WrapVulkanHeaders uses FindVulkan and is marked as found if Vulkan
headers are found (that's the only part the Qt build requires).

The WrapVulkan package is currently not used, but is there for
symmetry.

The Vulkan feature is now disabled by default on QNX, because the
QNX toolchain file in the CI does not set
CMAKE_FIND_ROOT_PATH_MODE-like variables and CMake ends up finding
host Vulkan headers causing the build to break.

Pick-to: 6.2
Fixes: QTBUG-92157
Change-Id: I05309821f866456cd42e7f85bf8b76ba099df656
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-07-01 18:57:50 +02:00
..
tests cmake: Remove APPLE prefix from platform names 2020-03-16 17:57:56 +01:00
.gitignore pro2cmake: GitIgnore .pro2cmake_cache 2020-10-16 14:53:02 +03:00
cmakeconversionrate.py Improve styling of util/cmake scripts 2019-09-18 12:00:26 +00:00
condition_simplifier_cache.py Fix message about missing portalocker 2019-10-15 12:23:46 +00:00
condition_simplifier.py cmake: Remove APPLE prefix from platform names 2020-03-16 17:57:56 +01:00
configurejson2cmake.py Do some miscellaneous tidy-up in util/cmake/ 2021-02-15 13:45:25 +01:00
generate_module_map.sh Begin port of qtbase to CMake 2018-11-01 11:48:46 +00:00
helper.py CMake: Fix Vulkan to be found when targeting Android 2021-07-01 18:57:50 +02:00
json_parser.py cmake scripts: more type cleanup 2019-10-09 09:14:19 +00:00
Makefile CMake: pro2cmake: Fix errors reported by flake8 and mypy 2020-07-31 12:55:33 +02:00
Pipfile cmake scripts: add portalocker as dependency for Pipenv 2019-10-10 13:58:26 +00:00
pro2cmake.py Bump version 2021-06-10 09:32:53 +03:00
pro_conversion_rate.py cmake scripts: make pro_conversion_rate.py mypy clean 2019-10-10 14:59:55 +00:00
qmake_parser.py pro2cmake: Ignore also initial comment 2020-10-16 14:53:02 +03:00
README.md Do some miscellaneous tidy-up in util/cmake/ 2021-02-15 13:45:25 +01:00
requirements.txt cmake scripts: format with black 2019-10-11 08:13:54 +00:00
run_pro2cmake.py Fix pro2cmake formatting 2019-11-23 07:07:45 +00:00
special_case_helper.py configurejson2cmake: Generalize special case support 2020-07-13 10:51:15 +02:00

CMake Utils

This directory holds scripts to help the porting process from qmake to cmake for Qt6.

Requirements

  • Python 3.7,
  • pipenv or pip to manage the modules.

Python modules

Since Python has many ways of handling projects, you have a couple of options to install the dependencies of the scripts:

Using pipenv

The dependencies are specified on the Pipfile, so you just need to run pipenv install and that will automatically create a virtual environment that you can activate with a pipenv shell.

Using pip

It's highly recommended to use a virtualenvironment to avoid conflict with other packages that are already installed: pip install virtualenv.

  • Create an environment: virtualenv env,
  • Activate the environment: source env/bin/activate (on Windows: source env\Scripts\activate.bat)
  • Install the requirements: pip install -r requirements.txt

If the pip install command above doesn't work, try:

python3.7 -m pip install -r requirements.txt

Contributing to the scripts

You can verify if the styling of a script is compliant with PEP8, with a couple of exceptions:

Install flake8 (pip install flake8) and run it on the script you want to test:

flake8 <file>.py --ignore=E501,E266,W503
  • E501: Line too long (82>79 characters),
  • E266: Too many leading '#' for block comment,
  • W503: Line break occurred before a binary operator)

You can also modify the file with an automatic formatter, like black (pip install black), and execute it:

black -l 100 <file>.py

Using Qt's maximum line length, 100.