summaryrefslogtreecommitdiff
path: root/mkspecs
Commit message (Collapse)AuthorAgeFilesLines
* Remove QMake project filesDominik Holland2021-06-023-44/+0
| | | | | | | | | This includes removal of the corresponding .prev_CMakeLists.txt files. Keep the pro files in the ivigenerator autotests. Task-number: QTBUG-88742 Change-Id: Idbf40dc5f6469dbea37126ea9b46a6d521f43139 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ivigenerator: Remove the coin test workaround in the ivigenerator.prfDominik Holland2021-05-101-2/+1
| | | | | Change-Id: I0d9b57f7b14f5d405147ed8f2304e641f717bc9e Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* cmake: Start of cmake port using run_pro2cmake.py and friendsDominik Holland2021-03-262-0/+7
| | | | | | | | Some special cases are already addressed. Task-number: AUTOSUITE-1633 Change-Id: I5409522c1c5eb76b8aac3e7e332d1e1cc27e594f Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Fix build issuesTopi Reinio2020-08-271-1/+1
| | | | | | | | | | '$PYTHONHOME' in ivigenerator.prf expanded to 'YTHONHOME'. Running generate.py failed with ImportError: No module named 'tarfile' Change-Id: I22517605b42eb23f46d9b1694b9ce5a516528327 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* ivigenerator: Fix python module pathv5.15.0_QtASDominik Holland2020-06-191-0/+2
| | | | | | | | | | With the newer python versions we need to set the VIRTUAL_ENV in addition to the PYTHONHOME environment variable to make sure the "site-packages" is included in the module search path and to use the correct python lib location. Change-Id: Id6ce17ec91843534d6b3ebc49de7fcb2e889759a Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* Host and use our own copy of "virtualenv --relocatable"Dominik Holland2020-02-191-0/+3
| | | | | | | | | | | | | | | | | | With virtualenv 20, the --relocatable flag got removed and causes build failures in QtIvi. As we still need this functionality for making our virtualenv work after 'make install', we copied the legacy code and converted it into a standalone python script which does the job for now. With virtualenv 20 the complete deploy mechanism changed and is now based on top on venv. To make the new environment relocatable we need to copy additional files as well as read the pyvenv.cfg instead of the old-prefix.txt Change-Id: Ib77bbd2a1c959693bf1ae6ca478086ce2c848036 Fixes: AUTOSUITE-1482 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ivigenerator: Improve build-system integrationDominik Holland2019-10-301-7/+16
| | | | | | | | | | | | | Use build-stamps for the ivigenerator run, instead of relying on the generated .pri file. Previously it could have happened that the ivigenerator stoped with an error, but already generated the .pri file. This caused 'make' to stop the build process, but on the next run the ivigenerator wasn't started again as its dependency (the .pri file) was in place and there was no need to generate again. Change-Id: I1e16bde603045625b913303c5cbe549999736abb Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ivigenerator: Move all templates into a separate 'templates' folderDominik Holland2019-10-301-2/+2
| | | | | | | | | | | | | | | | Currently all builtin templates are hardcoded in generate.py and the templates are next to the generate.py, including a rather ugly 'template_' prefix in the folder name and yaml file. To make this more clean, all templates are moved into a 'templates' folder and renamed to remove the prefix. The templates are also not hardcoded anymore in generate.py and instead the 'templates' folder is scanned for them. This also makes it possible for the user to install their own templates into the same folder and make them behave like builtin templates. Change-Id: I27d581df8f4850db6918c5b350ce41c4a35175f4 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ivigenerator: Add support to import other modulesDominik Holland2019-10-291-2/+8
| | | | | | | | | | | | | | | | | | | | When importing another module from within a QFace file, the generator now searches within the QFace import path. If this module is found, the information is then used to generate code that includes types from this module. The QFace import path can be set in the autogenerator similar to qmlscene by using the -I option; in qmake it can be set using QFACE_IMPORT_PATH. The generator makes sure to generate correct code, but the developer still needs to setup the .pro files correctly to add the imported module to the INCLUDEPATH and also link to the generated library. Fixes: AUTOSUITE-1158 Change-Id: I0e9fa714d4c893a4bf17c5f7db34c62d84932c94 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
* ivigenerator: Add support for custom templatesDominik Holland2019-08-011-0/+2
| | | | | | | | | | | | The support for this was already partially available, but some checks in the prf file as well as a limitation in generate.py prevented this to be usable. Also add a autotest for this to keep supporting it in the future Change-Id: Iee0b7593d788d4ee30d3483ceaa141439f93a2c4 Fixes: AUTOSUITE-1162 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Use qmake system_path/quote instead of shell_path/quoteDominik Holland2019-05-141-6/+6
| | | | | | | | | | | | On windows we might run inside a mingw-shell but call normal windows applications like python3. These applications work with the system_path. Using system_path should be fine in most cases as special shells usually also accept system_path. Task-number: COIN-239 Change-Id: Ibf45497a2e340bbba5ffc2cb4a6080ae858396c7 Reviewed-by: Simo Fält <simo.falt@qt.io>
* ivigenerator: Improve the qmake integrationDominik Holland2019-02-261-1/+2
| | | | | | | | Run the generator again when generate.py or files in the common template folder change. Change-Id: Ib153745f18cbc93d47926e32ba358e9897617a61 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Windows: allow for python.exe in paths with spacesv5.12.0_QtASRobert Griebl2018-12-191-1/+1
| | | | | Change-Id: Icac6ada1549630ec1467f8262e2f402b6303d8df Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Add a option to use the system python instead of creating a virtualenvDominik Holland2018-09-141-7/+18
| | | | | | | | | | | If the qface module is available in the same version as we would set it up in the virtualenv ourselfs we now skip creating a virtualenv This is useful for yocto deployment as we can use the packaged python3 binaries and by this better support creating SDKs Change-Id: I9b114c9cc7241e4af976f35153b97e3d799466e9 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Add support for additional annotation filesDominik Holland2018-05-181-1/+9
| | | | | | | | | | | | | | The ivigenerator as well as its qmake integration now support to pass additional annotation files. This can be useful when annotations only need to be applied for a specific part, e.g. the backend plugin. This change also makes use of the feature in the autotests which now use a no-private.yaml annotation file for testing the same qface file as we use for our normal generation tests. Task-number: QTAUTO-848 Change-Id: Ib626775d2339ebf2002bc689da8303e7caf6edfa Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Report a qmake error when a invalid QFACE_FORMAT is usedDominik Holland2018-05-071-0/+2
| | | | | | | | Reporting an error already in the qmake step is better than reading the exception from the ivigenerator Change-Id: Iba2f2c6222f76becd1131687feaa9cc2a689fa25 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Fix problems when building for test coverageDominik Holland2018-04-231-12/+10
| | | | | | | | | | | | | The coverage target needs to be available in all Makefiles not just in debug configurations Use qtLibraryTarget for all plugins in the servicemanager autotest. This will automatically add the needed postfixes for debug and release plugins Change-Id: I887e27ce1cc514d74cbaef97b02eeb935939a7cf Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Generate correct public headers when building a qt moduleDominik Holland2018-04-122-1/+5
| | | | | | | | | | When building a qt module all public headers need to use the module name in their include statements. This is done by using the QFACE_MODULE_NAME qmake variable, which is now mandatory when generating a qt module from a qface file Change-Id: I31232a48a3c978552a27f1d82f3eacba480427b2 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Add a easy way to do a test-coverage runDominik Holland2018-02-071-0/+18
| | | | | | | | This is inspired by QtApplicationManagers version, but adapted for qtivi and it's autogeneration. Change-Id: I8880e277646f66b976787739e56206044577560a Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Improve the qmake ivigenerator integrationDominik Holland2018-01-101-1/+2
| | | | | | | | | | | | | | | | Add a Makefile dependency towards the qface file to call the ivigenerator again once that has changed. Also introduce a '--force' flag to the ivigenerator which is used by qmake/make to ensure the output is always written when the ivigenerator is called. Otherwise the qface library is smart and will only change the files which actually needs to be changed. This is needed as 'make' is using timestamps to detect what needs to be recompiled and calls ivigenerator until the generated pri file is newer as its dependencies. Change-Id: I873d0e7e91febed4484468554bc320bb8cc66809 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Install the ivigenerator qmake features also when using system-ivigeneratorDominik Holland2017-12-201-1/+5
| | | | | | | | | | | This is needed for yocto to make sure the feature files are installed in the native part as well as on the target sysroot part. Other than in the normal qmake cross-compiling approach, yocto is always using the mkspec folder in the target sysroot. Change-Id: I44c393fbb327513a27c6d206172f837291057276 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Build the ivivehiclefunction-controller after ivicoreDominik Holland2017-11-211-0/+1
| | | | | | | | We depend on the qmake features from ivicore and can't start using them before the ivicore build is complete. Change-Id: Ic8018355315c5550cc9dbf24501cba9e0145c94d Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Use the same sleep 1 trick on all platformsDominik Holland2017-11-081-2/+5
| | | | | | | | This is needed to give make a chance to detect that the timestamp of a target has changed. Change-Id: Ibe07f50168adabd1917f21d0718a7705c8670b77 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Fix the deploy-virtualenv.sh to create usable virtualenvsDominik Holland2017-10-271-2/+6
| | | | | | | | | | | | | On some systems libpython needs to be copied into the virtualenv to make the python executable work. As we can't change the rpath easily we need to use LD_LIBRARY_PATH in the qmake integration to make the system find the correct lib. The script now also copies the needed libcrypto.so and libssl.so from the system to the virtualenv as they are needed by the hashlib module Change-Id: Ib7911f6d69c743892397581f91991ef415321aa3 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Enable building on Windows for MSVC, MingW and AndroidRobert Griebl2017-10-161-2/+2
| | | | | Change-Id: I9563fea0619b540f8e4dd929bf72a3c4178066bb Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Fix build for cross-compiling to android from windowsDominik Holland2017-10-091-5/+5
| | | | | | | | The ivigenerator qmake feature needs to check the host architecture instead of the target architecture. Change-Id: I8f2357c84dadf237408a8c472f4604a04c265eea Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Restore macOS supportMike Krus2017-10-031-1/+2
| | | | | | | | | Adding a delay before generating the code appears to introduce enough difference to avoid race conditions between makefile and generate code timestamps Change-Id: I7ba3361492053b65ddd89b41ee46c32cec96f8ab Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Integrate qtsimulator support for the control_panelDominik Holland2017-09-191-7/+6
| | | | | | | | | | | | | | | | | | | | | | The control_panel acts as a server and the backend connects to it. Once a connection is established the control_panel will push it's initial values to the backend and from there all properties and signals are synchronized. Currently only one connection is supported. The qtsimulator support is detected during configure time and based on that the new "simulator" feature is enabled. The ivigenerator now has a configuration file, which is used to define which features it supports. This is used to be able to generate qtsimulator support into the simulation backends only if the qtsimulator is available and the feature is enabled. Task-number: QTAUTO-441 Task-number: QTAUTO-442 Change-Id: I5045d21f92176fed7d9025850b70f4759c9232c2 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: respect -system-ivigeneratorSamuli Piippo2017-09-121-2/+3
| | | | | | | | Don't use the internal ivigenerator when -system-ivigenerator option is enabled, as is done in yocto builds. Change-Id: Ic22c2bba0214041618ef4c157056a3638235ec97 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Use a better detection for the special qtci environmentDominik Holland2017-08-182-8/+11
| | | | | | | | | | | | | | Coin is doing a two stage build, which leads to problems for the virtualenv generation. Before we used the installed version when available, but this is problematic in the developer workflow when an existing qtivi installation already exists, as the installed (old) version is used instead of the new one. The QTEST_ENVIRONMENT environment variable is now used to detect whether we are in the special CI environment. Change-Id: I9d3d5d7f84c9f5e059897865c8cf7b30f8d84fda Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add qface file to projectMike Krus2017-07-201-0/+1
| | | | | | | Makes it visible in creator Change-Id: Ife928c247071cf698d6d1f4821500281a7b9ebc8 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Handle building modules properlyDominik Holland2017-07-172-4/+47
| | | | | | | | | | | | | | | | | | | | | | | | Extra steps are needed for syncqt to find the headers. After the generation of the frontend files, the headers are copied in the src folder in qtbase. When building a module, rather than using CONFIG += ivigenerator, simply define the required qface and module related variables and load(ivigenerator_qt_module) This also handles the QFACE_MODULE_NAME variable: the generator has a --module option which optionaly indicates the name of the Qt Module that is generated by the project. This is needed by the backend templates to know which include paths to use to find the frontend base interface class. This also changes the generated files so that the generated .pri has the same base name (in lower case) as the input qface file. And updates the generator version to 2.0 Change-Id: I9d2716255affcb5c6f319a6f23202ae3bb6c115c Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* qtivicore: Introduce some more configuration optionsDominik Holland2017-07-171-2/+3
| | | | | | | | | | | | | | | | | | | two more command-line options are introduced. These are needed to make yocto builds work and also only build whats really needed. --host-tools-only: This option will only build the host-tools (currently only the ivigenerator) --no/qt/system-ivigenerator: This will enable or disable the ivigenerator build. If the system option is used the ivigenerator is considered to be already part of Qt and is not build again. Instead the system ivigenerator is used for the code generation inside the module Change-Id: I68d9e7dec2c3a49552122f47b574211698031b55 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Always use shell_path for commands in MakefilesDominik Holland2017-07-171-1/+1
| | | | | Change-Id: I26df62d4e1342585cf02b1c23ead369a8b98d42a Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Use the new configure system for detecting python3 and the packagesDominik Holland2017-07-041-1/+2
| | | | | | | | | | | | | | The python3 excutable and the version checking is now done in a special test function inside configure.pri. For python3 packages a separate test function has been written, which checks whether the requested packages are installed. The configuration summary prints the used python executable as well as its version. Task-number: QTAUTO-458 Change-Id: I1280ba0acaf3393dcb83132aaa19572a75d97d22 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Fix building the examples on a clean buildDominik Holland2017-06-271-1/+4
| | | | | Change-Id: I342820170d8315fada89a5d7abc264e82a5f5ae3 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Make the virtualenv relocatableDominik Holland2017-06-211-3/+3
| | | | | | | | | | | | | | | | The '-e' flag doesn't install qface into the virtualenv, but creates a link to the source instead. Removing it, installs qface as expected. The virtualenv needs to be make relocatable after it was created, otherwise it will stop working after copying it during 'make install' Instead of relying on the activate scripts of the virtualenv we set the correct PATH by our own, as the active script is not updated by the "virtual --relocatable" call Task-number: QTAUTO-289 Change-Id: I6182eb2707aefb7785b1e4d0899294629b5fcf7a Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Fix build error in the COIN setupDominik Holland2017-06-201-5/+10
| | | | | | | | | On the CI, building the test is separated from building the tests, because of that we can only use our internal virtualenv from the build folder if it exists, if not we fallback to the installed version Change-Id: Ibcdf2d58f0e99f59092ef20ac6fc9e4742cb782c Reviewed-by: Mike Krus <mike.krus@kdab.com>
* ivigenerator: Use the en_US.UTF-8 locale on unix systemsDominik Holland2017-06-141-1/+1
| | | | | Change-Id: I6b439737851baa38d41471d7f994bfd9d024904c Reviewed-by: Lukáš Tinkl <ltinkl@luxoft.com>
* ivigenerator: Use the correct naming convention for the generated priDominik Holland2017-06-141-1/+3
| | | | | | | All '.' are replaced with '-' in the generated pri file. Change-Id: I35b8f4b42c6cf0e208f4dbaea201ce222a781e94 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Delete the autogenerated files with the 'clean' targetDominik Holland2017-06-131-0/+15
| | | | | Change-Id: I5fed748cf02152d155dce8b161962b8bca36ee15 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* ivigenerator: Fix the qmake integration on windowsDominik Holland2017-06-091-0/+26
| | | | | | | | | | | | | | | | We need to depend on debug_and_release for windows and return an error if it has been disabled. This is needed as NMAKE doesn't support the Makefile target and it's own reevaluation, which is needed for the normal qmake integration to work. The workaround is based on the fact that sub Makefiles are generated and we can run the generator and qmake before NMAKE is reading them. Change-Id: I68282bbe25899b5f67be7822e6fca419a34c4318 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* ivigenerator: Fix the generator to work with debug_and_releaseDominik Holland2017-06-091-10/+11
| | | | | | | | | | extra compilers are only added to the config specific Makefiles when building with debug_and_release. Changing them to extra targets make them appear in the meta makefile. Change-Id: I85b72f6082bd42bfcfadd8afad8b5bb0f5e18d51 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* ivigenerator: Enforce the correct locale when calling the generatorDominik Holland2017-06-091-0/+4
| | | | | | Task-number: QTAUTO-460 Change-Id: I63187fa0937ad29215bf830e35ceb87aaaef44d1 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* ivigenerator: virtualenv fixes for windows and refactoringDominik Holland2017-06-021-1/+1
| | | | | | | | | | | | | | | | Inside the virtualenv we only need to call 'python' and 'pip'. There is no need to add a suffix on windows or use the full path. Removed the check for pip in PATH as we only need to have it packaged in the virtualenv, so we are just checking whether the module works in the python installation and hope it also works in the created virtualenv. Added more clear errors in case python is not found or the submodules are not cloned. Change-Id: If6473785edc4e57c9eb62934cc18daf692b04476 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Fix the Makefile errors when running inside QtCreatorDominik Holland2017-06-021-0/+10
| | | | | | | | | | | The qmake_all step is already trying to call the generator even though it is not build yet. To fix the problem a dependency to a dummy file is created, which is touched once the generator is ready to be used. This will cause a rerun of the qmake for all project files which use the ivigenerator feature. Change-Id: I5a421597457dccc29ab48811a9d0588c04c5cf2b Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Add more dependencies to the compiler stepDominik Holland2017-05-291-5/+18
| | | | | | | | | Added all template_files, the generator itself and the yaml file as a compiler step dependency Task-number: QTAUTO-449 Change-Id: I532133a57c73406561921e37c12da2d0bc2da9fc Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Change the qface-ivi-climate example to use the ivigenerator qmake integrationDominik Holland2017-05-291-1/+3
| | | | | | | | Moved the example into a core folder to indicate that this is part of the qtivi core module and keep the structure of the other examples. Change-Id: Ief69e0446125f5dc975d15ebeba746c69820b7c8 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* If QFACE_MODULE_NAME is not provided use the name of the qface fileDominik Holland2017-05-291-2/+11
| | | | | | | Also if a yaml file exists, add this to the OTHER_FILES section Change-Id: I030cdab8b565536b2f0750bba2fd650d00af592a Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix ivivgenerator.prf to work without the need to install itDominik Holland2017-05-291-4/+10
| | | | | | | | | To be able to run the generator in the qtivi repository itself, we need to use the generator from the source directory as it might not have been install yet. Change-Id: Idafd60d41926c0a5814600d875a4119321abd96e Reviewed-by: Mike Krus <mike.krus@kdab.com>