summaryrefslogtreecommitdiffstats
path: root/qmake/qmakelibraryinfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use SPDX license identifiersLucie Gérard2022-05-161-39/+3
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Fix qmake/qtpaths -query for static relocatable buildsJoerg Bornemann2022-05-091-2/+7
| | | | | | | | | | | | | | | The install prefix was determined incorrectly for static relocatable builds. The reason was that for those builds, QLibraryInfo::path() returns the application directory, which is <prefix>/bin for qmake and qtpaths. Fix this by removing the bin directory part from the installation prefix that QLibraryInfo returns if qmake/qtpaths are used. Fixes: QTBUG-102877 Change-Id: I2e9ff96ded0ee2a7802b265741a3cfbe2bf0a4ba Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix wrong QT_HOST_* values when qt.conf is presentJoerg Bornemann2022-01-121-2/+2
| | | | | | | | | | | | | | | | When a qt.conf was present, QT_HOST_* variables got a wrong default value. For example, QT_HOST_BINS would end with /bin/bin. We must not provide the defaults via QSettings::value(_, defaultValue). The assignment of the default value is done in QMakeLibraryInfo::rawLocation() separately after retrieving the value. This amends commit 04ec14105ec41a67fe4d53a1962c9d68c5fd8715. Pick-to: 6.3 Fixes: QTBUG-99656 Change-Id: I43431664e93ab40417a5432b03e7eb38ae21bad8 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Change qt.conf key Qml2Imports to QmlImportsJoerg Bornemann2021-11-191-13/+14
| | | | | | | | | | | | | [ChangeLog][qt.conf] The key Paths/Qml2Imports has been renamed to Paths/QmlImports. For backwards-compatibility, Paths/Qml2Imports is still accepted and acts as default value for when Paths/QmlImports is not present. Fixes: QTBUG-98335 Change-Id: If7ffedd281eb8a87e8ab1a2b69a823e615c33541 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix QT_HOST_DATA for builds setting INSTALL_MKSPECSDIRJoerg Bornemann2021-06-231-1/+6
| | | | | | | | | | | | | | | | | | | | In a Qt build that was configured with INSTALL_MKSPECSDIR set to something different than INSTALL_DATADIR, the qmake property QT_HOST_DATA was wrong. Consequently, mkspecs could not be loaded, rendering qmake dysfunctional. The reason was that we considered every QT_HOST_xxx property to have the same value as QT_INSTALL_xxx in a non-cross build. This is not true for QT_HOST_DATA, because users might want to set INSTALL_DATADIR to "foo" but INSTALL_MKSPECSDIR to "bar/mkspecs". Move the unused determination of the host data dir to the QtLibraryInfo lib and handle QT_HOST_DATA specially. Fixes: QTBUG-94591 Pick-to: 6.2 Change-Id: I2c44cda8405ff1d14391254fcd1d9b1361cb5855 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Follow the generic logic of QLibraryInfo when computing QT_HOST_PREFIXAlexey Edelev2021-05-181-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | After the discussion we concluded that QT_HOST_PREFIX should not completely replicate the QT_INSTALL_PREFIX behavior. So this patch implements the following logic if qt.conf is provided: 1. Prefix is not set a. If HostPrefix is not specified, then QT_HOST_PREFIX will be set to the folder containing qt.conf. b. If HostPrefix is specified and is relative, then QT_HOST_PREFIX will be relative to the folder containing qt.conf. 2. Prefix is set a. If HostPrefix is not specified, then QT_HOST_PREFIX will have the Prefix value. b. If HostPrefix is specified and is relative, then QT_HOST_PREFIX will be relative to the folder containing the qt.conf. The logic might change in a future commit to use the current application directory instead of qt.conf path, since the use of qt.conf is dictated by the bootstrap library and this is no longer the case. Fixes: QTBUG-93707 Change-Id: I5460c97c45924bb8e0c95493afdb9585994c5f28 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix warning when building qmake with MSVCJoerg Bornemann2021-03-221-0/+1
| | | | | | | | Fix the C4715 warning for 'hostToTargetPathEnum' by marking the qFatal() branch as unreachable. Change-Id: Id065daaffd865e85985b1a8e0ac2eba4a2ff0b1c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Unify QLibraryInfo settingsAlexey Edelev2021-03-171-60/+27
| | | | | | | | | | | Exporting QLibraryInfo internals allows to reuse settings in qmake/qtpath without having to keep its own instance. Also there is no need to check setting groups in QLibraryInfo except the 'Paths' group, since this logic belongs to qmake/qtpaths only. Change-Id: If762defba025ad7f7489f8a86ef5768a8628bd2f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove all qmake-related data from q[make]config.cppJoerg Bornemann2021-03-111-2/+0
| | | | | | | | | | | | Now that we're not actually using qmakeconfig.cpp anymore, we can remove it together with all qmake-related information that was written into qconfig.cpp. This also moves the qtConfEntries array back to qlibraryinfo.cpp. Change-Id: I5e57d8c55613332cc3e57b11df4398d46aed259b Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Do not read from qmakeconfig.cppJoerg Bornemann2021-03-111-19/+23
| | | | | Change-Id: I6a46c2e817f8dc3f580774aba2db8bfb01f5a403 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Read QLibraryInfo paths directly from QLibraryInfo and not from qmakeconfig.cppJoerg Bornemann2021-03-111-13/+11
| | | | | | Change-Id: I1db1c871ec6b4e572bd36df6aff7a5be8a4a706c Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Pass target and host mkspec as defines to QMakeLibraryInfoJoerg Bornemann2021-03-111-0/+8
| | | | | | Change-Id: If07055286496c507310c0dbb3a06f1a42d643596 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Do not write Sysroot and SysrootifyPrefix into qmakeconfig.cppJoerg Bornemann2021-03-111-24/+41
| | | | | | | | Those have fixed values. Change-Id: I7f1ba8036f43413d3c805f4b419ae79e037343fb Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Delegate prefix deduction to QLibraryInfoJoerg Bornemann2021-03-111-12/+2
| | | | | | | | | | Now, that qmake depends on QtCore, we can just ask QLibraryInfo for the prefix instead of calculating it from QT_CONFIGURE_RELATIVE_PREFIX_PATH. Remove that define. Change-Id: I14be298a9d08abf33299e4cdbac55e91af318397 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QMakeLibraryInfo: Move reading of default values into separate functionJoerg Bornemann2021-03-111-21/+31
| | | | | | | | Reduce code duplication. Change-Id: Ic20c124ad664d16552e3cfea8dde465fc0b6066f Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove the platformsSection constant from qconfig.cpp.inJoerg Bornemann2021-03-111-1/+1
| | | | | | | | | This is not configurable and doesn't have to be in the generated q[make]config.cpp files. Change-Id: If294d735800a3b5c6b3e269abdd86df401cf4864 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Improve QMakeLibraryInfo encapsulationAlexey Edelev2021-03-011-7/+22
| | | | | | | | | | | QMakeLibraryInfo uses external data to produce paths. This causes issues when trying to use it out of the existing qmake environment. Add data fields that contain the path to the binary that uses QMakeLibraryInfo and manually specified qtconf. Task-number: QTBUG-75870 Change-Id: Ic6fa274ede3a9287826ff66c79f155b10d0d455c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Simplify prefix-related functionality of qmakeAlexey Edelev2021-03-011-18/+3
| | | | | | | | | | | | | Since the QT_CONFIGURE_HOSTBINDIR_TO_HOSTPREFIX_PATH and QT_CONFIGURE_HOSTBINDIR_TO_EXTPREFIX_PATH definitions keep the same value in modern CMake build, no need to have special handling in cases where these values are used in qmake. Also it will be useful to specify the relative path to the prefix directory from the directories different of 'bin' when use QMakeLibraryInfo. Task-number: QTBUG-75870 Change-Id: I5a777001eb334dcf05e22853a514d4257352d59b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove unused definitionsAlexey Edelev2021-03-011-8/+2
| | | | | | | | | | | | QT_CONFIGURE_CROSSBUILD is always '0', so it's not necessary to keep conditional compilation in QMakeLibraryInfo. Also the QT_CONFIGURE_SYSROOTIFY_PREFIX definition is never used in the project. Task-number: QTBUG-75870 Change-Id: I1fe42dce40fddc6a72254736883f93aa4727f6b3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use Core library for qmake instead of the Bootstrap libraryAlexey Edelev2021-02-251-0/+313
Move the qmake-specific logic of the QLibraryInfo class to qmake internals. 'qconfig.cpp.in' now stores information about the library info entries to keep them consistent between qmake and the Core library. qmake requires specific features enabled in the Core library, so building qmake will be skipped if the features are not enabled. All flags directly related to the qmake have been removed from Core lib. Remove all bootstrap related sections from qmake CMakeLists.txt Task-number: QTBUG-89369 Change-Id: I26de157d3bfd4a5526699296e9d46e1c180b89ae Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>