summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
Commit message (Collapse)AuthorAgeFilesLines
* qmake: Add support for C17/C18Joerg Bornemann2021-08-261-1/+2
| | | | | | | | | | | | Make it possible to select the C17/C18 standard with CONFIG += c17 or CONFIG += c18 Pick-to: 6.2 5.15 Fixes: QTBUG-96026 Change-Id: I719d22366c3efda009118d58ead173a25ed285c0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix location of qtattributionsscannerKai Köhne2021-07-141-1/+1
| | | | | | | | Amends f00c63093b0313f Pick-to: 6.2 Change-Id: I3be5f7d3826c1a84bad0ecf947eecc0a351685c6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix qmlimportscanner path for android deployment settingsIvan Solovev2021-06-281-1/+1
| | | | | | | Fixes: QTBUG-94527 Pick-to: 6.2 Change-Id: Iffd259caecfdfe6860ba1ab9cb21d2f164060b9a Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Fix linking of debug projects against release Qt on Darwin platformsJoerg Bornemann2021-06-251-18/+25
| | | | | | | | | | | | | | | | | | | | Consider a release-only, non-framework Qt build on macOS. Building a debug user project would fail, because qmake tried to link against *_debug.dylib and *_debug.a libraries. Building a debug user project that uses QtUiTools against a release-only framework-build Qt posed the same problem. QMake tried to link against the libQt5UiTools_debug.a, which does not exist. Fix this by maintaining a list of library file candidates, and use the first existing one (or just the first one if none exists). This favors the library matching the user project's configuration but falls back to the release version of the library if necessary. Fixes: QTBUG-81251 Pick-to: 6.2 Change-Id: I8d641104718edb16500c6d6e3994e736fa5ddcf4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* macOS: Respect QMAKE_APPLE_DEVICE_ARCHS by building for all those archsTor Arne Vestbø2021-06-231-8/+18
| | | | | | | | | | If QMAKE_APPLE_DEVICE_ARCHS is not set, we pick up the available archs based on what Qt was built with (QT_ARCS), but only build the active arch. Pick-to: 6.2 Change-Id: I83273f878022af34a3a0d0eeae8b11d781f78c49 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Allow building Qt examples with qmake in-sourceKai Köhne2021-06-121-9/+1
| | | | | | | | | | | This reverts commit c686e885c004a48c90cff300c0ad1e817e43fb99 and commit d64abf8166d362b0fdc34c7f21aa32641063c01b. We don't feature .qmake.cache/.qmake.super files anymore in the source directory, so there's no problem anymore. Change-Id: Ib820a109fbfbad70d85b0f14ef72915882217ca3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qmake: Pick default architecture on macOS based on unameTor Arne Vestbø2021-05-211-6/+12
| | | | | | | | | | | | | | | | | | | | | | | When dealing with a universal build of Qt, we would end up using the QT_ARCH as the architecture for user projects, but this architecture is always the primary one that Qt was configured with. Instead of relying on QT_ARCH, we start writing QT_ARCHS (plural) to qconfig.pri, based on CMAKE_OSX_ARCHITECTURES, and then use that to initialize QMAKE_APPLE_DEVICE_ARCHS. We then resolve the active arch using uname -m, matching what CMake does. We still feed all the available architectures to the Makefile or Xcode project, so that the user can build for any of the available architectures without needing a reconfigure. Fixes: QTBUG-93760 Change-Id: I0d338241ba4d944ca36d85371e9c4df7dbc4f269 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move qtwaylandscanner to libexecKai Köhne2021-05-111-1/+1
| | | | | | Task-number: QTBUG-88791 Change-Id: I9703ba73ec5cee11b000d84346d4f8d00c179724 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Move qmlimportscanner to libexecKai Köhne2021-05-111-1/+1
| | | | | | Task-number: QTBUG-88791 Change-Id: I71150af4965458225e7bbbd72ffc4f60c6854625 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* WASM: Don’t set “-g4” by default for qmake buildsMorten Sørvig2021-04-271-6/+18
| | | | | | | | | This increases link time significantly; instead set "-g4" or the new "-gsource-map" only if source maps are enabled. Change-Id: Ibe2d438d48e9ae2fce5f79d4e8a9f17c01cf2485 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Merge integration refs/builds/qtci/dev/1617809473Qt CI Bot2021-04-071-6/+4
|\
| * Fix condition that adds resources for each Android ABIAlexey Edelev2021-04-071-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If we already have the list of Android ABI in BUILDS, it's not necessary to generate extra resource while Qt build. Amends: 58556afb6960b442f88649b550aaec8e1a04338b Pick-to: 6.0 Pick-to: 6.1 Pick-to: 5.15 Fixes: QTBUG-88031 Change-Id: I344efe6c477461659a360281da59c4abeae18fc2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge integration refs/builds/qtci/dev/1617805866Qt CI Bot2021-04-071-1/+1
|\ \ | |/ |/|
| * Only embed launch screen when building an appChristoph Keller2021-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | Xcode's new build system checks duplicated entries when building. Qmake wants to embed the launch screen for all types of configurations (static libraries etc.) which makes Xcode bail out with "Multiple commands produce LaunchScreen.storyboard". Pick-to: 6.0 6.1 5.15 5.12 Task-number: QTBUG-71035 Change-Id: I5c028e687f16e046b12156c1a8a89540deba4d3b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Remove last trace of licheckKai Köhne2021-04-071-15/+0
|/ | | | | | | | | | Since we don't feature it for CMake, there's little point in keeping it for qmake. Pick-to: 6.1 Change-Id: I7f17d2536510c0b94dca9767036ceab7ec08e1d8 Reviewed-by: Tino Pyssysalo <tino.pyssysalo@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* wasm: add cmake build supportLorn Potter2021-04-011-12/+12
| | | | | | | | | | | | | | | | A few configure defines get changed: QMAKE_WASM_PTHREAD_POOL_SIZE is now QT_WASM_PTHREAD_POOL_SIZE QMAKE_WASM_TOTAL_MEMORY is now QT_WASM_INITIAL_MEMORY QMAKE_WASM_SOURCE_MAP_BASE is now QT_WASM_SOURCE_MAP_BASE device-option EMSCRIPTEN_ASYNCIFY=1 is QT_EMSCRIPTEN_ASYNCIFY=1 To create source maps for debugging. use device-option QT_WASM_SOURCE_MAP=1 Task-number: QTBUG-78647 Change-Id: If9f30cd7fb408c386d6d69b5f7b1beecf1ab44b5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Improve error message when detecting macOS platform SDK upgradeTor Arne Vestbø2021-03-192-4/+11
| | | | | | | Pick-to: 6.1 6.0 5.15 Task-number: QTBUG-85546 Change-Id: I2bce9d22ad826fa73fa4dbfd03c9b1d404c57859 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix a typo in resources_functions.prfTasuku Suzuki2021-03-161-1/+1
| | | | | Change-Id: I38b81ba63612bd90b0a70f6b0c468667581b3c11 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: use libexec path for rcc for Android deployment settings fileAssam Boudjelthia2021-03-111-1/+1
| | | | | | | Task-number: QTBUG-88791 Pick-to: 6.1 Change-Id: Ie34278496e0c23a8301e7ab0f2e33e36f393d1d8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move syncqt.pl to libexecJoerg Bornemann2021-03-041-1/+1
| | | | | | | | | | | | | To not disturb the qmake build we kept syncqt.pl in <src>/bin but installed it to libexec. This is not necessary anymore. This also removes the need for having syncqt.pl in both, bin and libexec in the build dir of qtbase. Pick-to: 6.1 Fixes: QTBUG-91076 Change-Id: I44b014ea41e3f00c420e02fd5c76f11169340b8c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix qmake's metatype generation feature after moving moc to libexecJoerg Bornemann2021-02-251-1/+1
| | | | | | | | This commit amends 1f30bcf33618ca39c47dc1058529b55635e30aef. Pick-to: 6.1 Change-Id: I677bd75bffddab6d764108e4fb2826e01c9dcb07 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Move build tools to libexec instead of the bin dirJoerg Bornemann2021-02-236-7/+24
| | | | | | | | | | | | | | [ChangeLog][Build System] Tools that are called by the build system and are unlikely to be called by the user are now installed to the libexec directory. This is a step towards easier co-installability of different Qt versions. Pick-to: 6.1 Task-number: QTBUG-88791 Change-Id: Id19575b5ba27795f7715e4ea6a09391b26dd4942 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* qmake: Introduce QT_HOST_LIBEXECS propertyJoerg Bornemann2021-02-181-1/+2
| | | | | | | | | This will be used to access host tools that are installed in ${prefix}/libexec instead of ${prefix}/bin. Pick-to: 6.1 Change-Id: I36c4b5736330f8229d267a117c65d55cd5e12758 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix the qmake error when building with qtquickcompiler for iOSAlexey Edelev2021-02-181-3/+5
| | | | | | | | | | | | | | | Fix condition when adding qmake_immediate to resources. This condition was wrongly positive in any non-android case, but also had to check for BUILD emptiness or build_pass. This cause issue because qmake_qmake_immediate was added to the RESOURCES variable earlier, than actually generated. Fixes: QTBUG-88031 Pick-to: 6.0 Pick-to: 6.1 Pick-to: 5.15 Change-Id: I38dad858a7e81ab709e622ec24baa8f9b80970fa Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix qmake_qmake_immediate path for AndroidAlexey Edelev2021-02-151-1/+1
| | | | | | | | | | | Add missed RCC_DIR to the qmake_qmake_immediate.qrc path, when generating android deployment settings. Fixes: QTBUG-90969 Pick-to: 6.0 Pick-to: 6.1 Change-Id: If4959581fcc153d9c19d178233297fc7b440b2f7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: set minimum recommended android SDK to 29Assam Boudjelthia2021-02-131-1/+1
| | | | | | | | | | | comply with the api version used by default with androiddeployqt and in docs. Google play also requires api 29 as minimum. Task-number: QTBUG-90943 Pick-to: 6.1 6.0 Change-Id: I05e2a90b4d7f2120b0198e3fb7b8b1b2398eba93 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Bump copyright year to 2021Kai Köhne2021-01-251-1/+1
| | | | | | Change-Id: I18a9c2de391ca51655148b2e3cc9abdfbb8ddbcf Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* macOS: Only check SDK major version for compatibilityTor Arne Vestbø2021-01-201-2/+2
| | | | | | | | | The macOS SDKs now follow the same major/minor version scheme as iOS, where the major version is bumped for each OS release. Pick-to: 6.0 5.15 Change-Id: I021421a9c58bb1ae64bc0c63b4215f14e4ada358 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Don't hard-code x86_64 as the architecture when using qmakeTor Arne Vestbø2020-12-072-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The qmake variable QMAKE_APPLE_DEVICE_ARCHS was added for iOS, to support universal builds, as the QT_ARCH is a single value. Since the qmake macOS builds are non-universal (at the moment), we remove the hard-coded value for QMAKE_APPLE_DEVICE_ARCHS on macOS, and let the normal architecture test resolve the arch, like on other platforms. To ensure that the following configuration tests are run with an -arch argument, we trigger a commit of the preliminary Qt configuration after running the architecture test. This is not strictly necessary, but makes it clearer what's going on during configure. The device_and_simulator configuration option was used by the iOS toolchain, and needed to be moved up in the configuration test order to not break later tests. The logic in mac/default_post.prf for both Xcode and Makefiles to add -arch flags was kept as is, based on the existing variable, to avoid too many changes to this logic. The logic in toolchain.prf was amended to make it clear and ensure that it only applies to iOS builds. macOS builds do not have this issue. Pick-to: 6.0 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I70db7e4c27f0d3da5d0af33cb491d72c312d3fa8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* MSVC: Enable control flow guard for release buildsYuhang Zhao2020-12-071-0/+9
| | | | | | | | | | | | | | | | | | This makes the applications and libraries more safe and won't cause any binary incompatibility. It's not supported for MSVC 2015, but since we only support MSVC 2019 or later in Qt6, it's safe to use this parameter. The "-guard:cf" parameter is supported by clang-cl and intel-cl as well, MinGW doesn't support it. [1] https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-control-flow-guard?view=msvc-160 [2] https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-guard-checks?view=msvc-160 Change-Id: I7b035b4b0f22617a7f3c067cddde0bed2e13dd1c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Install 3rd party headers and meta for static buildsMichal Klocek2020-11-161-1/+29
| | | | | | | | | | | | | | | | | When doing static builds any project which uses same libraries as qtbase 3rd party libraries will most likely end up in broken binaries, since symbols will be included twice. Moreover, libraries can have different versions. Install 3rd party headers and meta data for: * qtlibpng * qtfreetype * qtharbuzz Pick-to: 5.15 Task-number: QTBUG-87154 Change-Id: I243dff9a12a95af20dee414f55bb762b8d579c81 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: Add the required linker flags for unwinding on armeabi-v7aAndy Shaw2020-11-121-0/+3
| | | | | | | | | These flags are indicated as required for armeabi-v7a here: https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#Unwinding Pick-to: 5.15 Change-Id: Id2bbfc65c4ed9bda29692869a719dbab70891491 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* resources_function.prf: Discard external path prefixesMaximilian Goldstein2020-11-101-0/+6
| | | | | | | | | | | qtdeclarative's QtQml module adds a dynamically generated qmldir file to its RESOURCES which is located outside the source directory. Previously this caused qmake to generate an invalid alias for the qmldir file. Now the relative path is discarded properly. Fixes: QTBUG-88204 Change-Id: Ia689d9d110db092cee595bf44fcbb6d57783fded Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move iOS entrypoint logic to entrypoint libraryTor Arne Vestbø2020-11-103-16/+12
| | | | | Change-Id: Ie0fc8368953a59d06a31847ed417bc3c35f29b90 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Don't rely on the module.pri for the entrypoint linking to the libraryTor Arne Vestbø2020-11-092-4/+4
| | | | | | | | | | | | | | | | Depending on the presence and behavior of HEADER_MODULE/header_module in CMake and qmake land, the module.pri might end up with an empty module line, which means adding the module via QT_PRIVATE += entrypoint will not link to the static library. To avoid this problem we write an explicit module entry (QT.foo.bar) into the same module.pri file as the one generated by qt_module, where the auto-generated one has header_module enabled, and hence no link behavior, while the manually written entry has a module component, and will ensure linkage to the static library. Change-Id: Ib98484f74410fab45c4d109f3610028200fba0c5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Allow adding linker flags to qmake module prisTor Arne Vestbø2020-11-033-10/+6
| | | | | | | | | | | | | The flags go before the library in the final linker line, as opposed to the dependencies declared in LIBS. This allows us to declare the flags for the entrypoint in the project file of the entrypoint, instead of in a standalone prf. Change-Id: I35c054fe9fdaa6add7cd0e8ba3f7304f975ff80f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Allow adding extra content to module priTor Arne Vestbø2020-11-021-1/+2
| | | | | | | On the qmake-side we had exports, but they were quoted. Change-Id: I95af4b927079691cab6403fec850f345ba181a00 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* toolchain.prf: Use vswhere to obtain VS installation pathOliver Wolff2020-10-271-3/+11
| | | | | | | | | | | | Beginning with Visual Studio 2017, vswhere should be used to discover Visual Studio installations. Installations of 2019 and up are not even registered inside the registry anymore, so vswhere is the only way to obtain information about these. Pick-to: 5.15 Task-number: QTVSADDINBUG-819 Change-Id: Ibd8b2c4d38c7925857887f39e750e87a33f08bf9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qmake: Don't warn about using private headers if there are noneTor Arne Vestbø2020-10-231-4/+4
| | | | | Change-Id: I1d9ab0b4d25671931faa469e66cb2beb7bd846fd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make entry point module an internal moduleTor Arne Vestbø2020-10-231-1/+1
| | | | | Change-Id: I9eaadc7ce8ca03d64ff3a33c7b6641b073570a61 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix linking of non-console application on mingwTor Arne Vestbø2020-10-201-1/+10
| | | | | | | | | | | | As a result of b5af1408099d the link dependency to the mingw32 static library was ordered after the entrypoint library, which resulted in the WinMain symbol not being found during linking due to how the static linker processes archives. Fixes: QTBUG-87725 Change-Id: I8e075f91f7f06dcdc618a4e0ae6d9c1d832888c0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make configure -qmake actually workJoerg Bornemann2020-10-201-0/+5
| | | | | | | | | We need to ignore this option in qt_configure.prf. This amends 077ea0c63326013ff6d9c85e59b322ffc2ec278c. Task-number: QTBUG-87049 Change-Id: If05b16a95d0830df9ca63961576981f8983820cc Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Generalize the winmain/qtmain entry-point libraryTor Arne Vestbø2020-10-174-14/+4
| | | | | | | | | | The use-case is relevant for other platforms as well. Now that Qt has a module system we can also replace a lot of the hand crafted logic for linking with simpler constructs. Change-Id: Ib6853aaf81bfea79c31f2de741d65b4b56f23ef6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* iOS: Remove dead code for linking to platform pluginTor Arne Vestbø2020-10-161-19/+0
| | | | | | | | | | The code only existed to avoid the auto-generated Q_IMPORT_PLUGIN(QIOSIntegrationPlugin), but nowadays with bitcode enabled the code is not used, plus we end up with this auto-generated file for other plugins anyways. Change-Id: I91c8c88f4e825caab7d7d5250edaba8c57cb7374 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: use shell path format when running qmake install stepAssam Boudjelthia2020-10-061-1/+1
| | | | | | | | | | On Windows shell, using unix path format might not work, since the shell expects backslash paths only. Pick-to: 5.15 Task-number: QTBUG-87066 Change-Id: I51741b475c1ede11336df63ee1c6092c792c16ef Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: unify deployment-settings.json path to unix formatAssam Boudjelthia2020-10-021-1/+1
| | | | | | | | Always use unix path formats for qmake and cmake builds. Task-number: QTBUG-87066 Change-Id: I9d54c2ca687d28e38542850e3e18b6184513a9af Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Remove old Qt 5 CMake build system filesAlexandru Croitor2020-10-017-788/+0
| | | | | | | | | | | | | | | Remove the stale Qt 5 CMake files. Disable the generation of CMake files by the qmake build system, it wouldn't create usable Qt 6 files anyway. Keep mkspecs/features/create_cmake.prf and mkspecs/features/cmake_functions.prf for now until we can confirm that they are safe to remove. Task-number: QTBUG-86827 Change-Id: Idcf59f4d7d5474171a9bf72904ff19adc8bc74cd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: add qmlimportscanner and rcc paths to deployment-settings.jsonAssam Boudjelthia2020-09-231-0/+3
| | | | | | | | | qmlimportscanner and rcc in Qt 6.0 are part of the host installation and not in the target installation which androiddeployqt expects it to be. Fixes: QTBUG-86831 Change-Id: I9d7a6fce3d2f109bab933fcfd7fdd5d2c83821a8 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Use 'A' for Apple framework version instead of Qt major versionTor Arne Vestbø2020-09-232-4/+5
| | | | | | | | | | All system frameworks use 'A' instead of the major version of the framework, and Xcode's code signing assumes that the framework version is 'A' when signing embedded frameworks (FB7323980), so leave the version 'A'. This is also what Apple recommends. Change-Id: Idbf2e30e156c3e869da8f75731e568524d9407e5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Pass -arch when running toolchain configure test on Apple platformsTor Arne Vestbø2020-09-211-0/+4
| | | | | | | | | | | | | Clang doesn't automatically switch architecture just because we're passing an iPhoneOS sysroot. In the past this resulted in a warning about trying to link an x86_64 binary to arm64 libraries, but with Xcode 12 this is now a hard error. Fixes: QTBUG-86718 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I7e9d2ca513d276029fc2a6cfe694a35fe41c39b3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>