3680d3453c
The CONFIG_MODULE_NAME option to qt_internal_add_module is used to specify what the name of a Qt module's pri file should, as well as some of the key names assigned in that file, as well as what should be passed to QT += in qmake projects. When it is not specified, the computed value is the lower case of the CMake target name. E.g. for qt_internal_add_module(Core), the computed CONFIG_MODULE_NAME is 'core'. The qmake variable that determines the above value is the MODULE variable. If it is not explicitly assigned, it's computed from the .pro file name, rather than from the TARGET variable value. Thus there is an inconsistency in how the value is auto-computed in CMake compared to qmake. We had a few special cases in projects that assign a correct CONFIG_MODULE_NAME when the auto-computed value was wrong. Teach pro2cmake to detect these inconsistencies and pass a correct CONFIG_MODULE_NAME value based on the .pro file name. This way we get rid of the special cases as well. Aka if there is no explicit MODULE assignment in the .pro file, and the auto-computed value by CMake is different from the one computed by qmake, explicitly write out a CONFIG_MODULE_NAME value with what qmake would have computed. Task-number: QTBUG-88025 Change-Id: I166b29767e87cd6b0c681fa53238098355a177f9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> |
||
---|---|---|
.. | ||
tests | ||
.gitignore | ||
cmakeconversionrate.py | ||
condition_simplifier_cache.py | ||
condition_simplifier.py | ||
configurejson2cmake.py | ||
generate_module_map.sh | ||
helper.py | ||
json_parser.py | ||
Makefile | ||
Pipfile | ||
pro2cmake.py | ||
pro_conversion_rate.py | ||
qmake_parser.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
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 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.