3b7aa8aee8
In some cases after cleaning and simplifying the conditions you can end up with the following line: ((())) Python interprets that as an empty tuple: >>> a = ((())) >>> a () and then the simplify_condition (sympy) method fails to continue with an error: File ".../util/cmake/pro2cmake.py", line 1993, in simplify_condition condition_expr = simplify_logic(condition) File ".../sympy/logic/boolalg.py", line 2292, in simplify_logic expr = expr.xreplace(dict(zip(variables, s))) AttributeError: 'tuple' object has no attribute 'xreplace' You can see this behavior with the file: qtmultimedia/tests/auto/unit/multimediaqml.pro Change-Id: Ied4285b67f1e567660be49f6610311199bc48a22 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot |
||
---|---|---|
.. | ||
tests | ||
cmakeconversionrate.py | ||
configurejson2cmake.py | ||
generate_module_map.sh | ||
helper.py | ||
json_parser.py | ||
Pipfile | ||
pro2cmake.py | ||
pro_conversion_rate.py | ||
README.md | ||
requirements.txt | ||
run_pro2cmake.py | ||
special_case_helper.py |
CMake Utils
This directory holds scripts to help the porting process from qmake
to cmake
for Qt6.
Requirements
- Python 3.7,
pipenv
orpip
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.