Previously pro2cmake assumed that all .pro were internal Qt projects like qtbase/src/corelib.pro and generated private api calls like qt_internal_add_module(). Public CMake API calls (like qt_add_executable) were only generated if an --is-example command line flag was passed to the script or if the .pro file was located under the examples subfolder of a qt repo source directory (indicated by the presence of a .qmake.conf file). Change the logic to always generate public CMake API code by default, unless a .cmake.conf/.qmake.conf file is encountered with a valid repo module version inside, in which case apply the old heuristic of checking for the ./examples subfolder. The intention is to have a sensible default so that Qt users can use the script to more easily migrate their qmake projects without having to explicitly specify the --is-example flag. Pick-to: 6.2 Task-number: QTBUG-96799 Change-Id: I38f4f1b349a5b9688cf7bc5914d4fde72e660a98 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> |
||
|---|---|---|
| .. | ||
| tests | ||
| .gitignore | ||
| Makefile | ||
| Pipfile | ||
| README.md | ||
| cmakeconversionrate.py | ||
| condition_simplifier.py | ||
| condition_simplifier_cache.py | ||
| configurejson2cmake.py | ||
| generate_module_map.sh | ||
| helper.py | ||
| json_parser.py | ||
| pro2cmake.py | ||
| pro_conversion_rate.py | ||
| qmake_parser.py | ||
| requirements.txt | ||
| run_pro2cmake.py | ||
| special_case_helper.py | ||
README.md
CMake Utils
This directory holds scripts to help the porting process from qmake to cmake for Qt6.
Requirements
- Python 3.7,
pipenvorpipto 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.