qt5base-lts/util/cmake
Alexandru Croitor d71609610a pro2cmake: Handle generation of config.tests
Handle conversion of config.tests that are used as out-of-line tests
in configure.json.

The script should able to handle conversion of simple config tests
including nested scopes.
One thing that will probably be needed in the future is handling of
pkconfig which is used in qtwebengine config.tests.

There is also a hardcoded list of config tests which should not be
automatically converted by pro2cmake, either because they were hand
written, or because it doesn't make sense to convert them for now.

Incidentally, we should fix example conversion to also handle nested
scopes, similarly to how it's done for config.tests.

Change-Id: I862e67c4d19d5ed8cb7fc7c9f9aaf6e3d503aa03
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-09-22 10:27:30 +00:00
..
tests Add support for converting qtTargetLibrary() value assignments 2019-08-08 13:03:28 +00:00
cmakeconversionrate.py Improve styling of util/cmake scripts 2019-09-18 12:00:26 +00:00
configurejson2cmake.py configurejson2cmake: handle out-of-line config tests 2019-09-22 10:27:22 +00:00
generate_module_map.sh
helper.py Adapt string formatting in util/cmake 2019-09-21 15:48:40 +00:00
json_parser.py Improve styling of util/cmake scripts 2019-09-18 12:00:26 +00:00
Pipfile
pro2cmake.py pro2cmake: Handle generation of config.tests 2019-09-22 10:27:30 +00:00
pro_conversion_rate.py Adapt string formatting in util/cmake 2019-09-21 15:48:40 +00:00
README.md Improve styling of util/cmake scripts 2019-09-18 12:00:26 +00:00
requirements.txt Improve styling of util/cmake scripts 2019-09-18 12:00:26 +00:00
run_pro2cmake.py Add option to generate pro2cmake on failed ones 2019-09-18 14:02:22 +00:00
special_case_helper.py Improve styling of util/cmake scripts 2019-09-18 12:00:26 +00: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

Contributing to the scripts

You can verify if the styling of a script complaint 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.