Commit Graph

25 Commits

Author SHA1 Message Date
Samuli Piippo
0ef2348d49 sdk: resolve absolute paths in toolchain file at runtime
MinGW toolchain doesn't perform relocation during installation,
so all the absolute path point to the temporary sdk paths.
Use the location of the toolchain file to get the absolute
paths at runtime instead instead of using external SDKPATH
env for it.

Change-Id: I699b2178baf5cc855a57186056341b6c6eefbbf5
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2022-03-04 07:06:13 +00:00
Samuli Piippo
5cbac6cf35 sdk: rewrite cmake toolchain file without environment variables
The default OEToolchainConfig.cmake uses environment variables
to set all the cmake variables in place. The Qt6Toolchain.cmake
chainloaded the same toolchain file after setting everything to env.

Rewrite the Qt6Toolchain.cmake now to set all the cmake variables
directly without using environment variables or chainloading
the origin OEToolchainConfig.cmake.

This allow better integration to QtCreator that might be used
to modify the compiler flags for projects.

Change-Id: I7c7c42ec17c86f53b62ed557d9b61d5d19abc1e0
Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2022-03-04 07:05:59 +00:00
Samuli Piippo
e78c281c0a sdk: use relativate path with cmake toolchain file
Paths in mingw toolchain are not relocated when installed, so we
need to use relative path for the Qt6Toolchain.cmake file.

Fixes: QTBUG-100642
Pick-to: 6.3 6.2
Change-Id: I48542f20f4443c8130f89c2436f5b0ecea914bb0
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2022-02-10 09:26:51 +02:00
Samuli Piippo
7f3cb3884d sdk: use Qt's own qt.toolchain.cmake in build scripts
qt-cmake* helper build scripts by default use Qt's generated
qt.toolchain.cmake as the CMAKE_TOOLCHAIN_FILE. Keep this behavior and
patch qt.toolchain.cmake so that will chain-load our Qt6Toolchain.cmake.

qt.toolchain.cmake includes bits that are needed for the conan
integration to work correctly with the sdk.

Pick-to: 6.3 6.2
Change-Id: I89a5e152324178151ba8a5ab4734d542fa4c995c
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2022-01-11 12:12:25 +02:00
Samuli Piippo
7297b1bee8 sdk: support additional build scripts from qtbase
QtBase has several helper scripts available that can be used
to build other modules and tests. Patch those so they work
properly from the sdk.

Fixes: QTBUG-93342
Pick-to: 6.3 6.2
Change-Id: If393d1a0abdebe21a70439190e49715bcd3e35a1
Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
2021-12-14 20:23:31 +02:00
Jeroen Hofstee
6b7208cedd sdk: don't append the first line to qt.conf
Since commit 212ae9b ("Use bindir for tools on Windows SDK) qt.conf is
now created in the WORKDIR and is still present when rebuilding the SDK.
Since all lines are appended to the file it will continuesly increase.
So write the first line to the file instead of appending it.

Pick-to: 6.2
Change-Id: I52d4cb91630884a1ecdc1e6b225fda4cf39d852b
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2021-12-08 07:07:30 +01:00
Jeroen Hofstee
002b2ce29f sdk: fix compiler location for QT6_INSTALL_BINDIR != bindir
If QT6_INSTALL_BINDIR is set to a different value than bindir, the compiler
cannot be found, since it is typically installed in bindir. So point to
bindir by default instead.

Pick-to: 6.2
Change-Id: I3bb94c2daf97f1b2500560fdcc4304cba9699ab5
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2021-12-07 06:44:13 +00:00
Samuli Piippo
7e83f2fc76 Convert to new override syntax
This is the result of automated script (0.9.1) conversion:

oe-core/scripts/contrib/convert-overrides.py .

converting the metadata to use ":" as the override character instead of "_".

Task-number: QTBUG-95705
Change-Id: Ieb57084e2cea47eb3407960ebfce404cee1ddc36
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2021-08-24 14:37:21 +03:00
Samuli Piippo
7ac9c84014 sdk: use relative paths in qt.conf
Change the absolute host paths in qt.conf to relative. This allows
SDK to work in Windows without need to patch the paths.

Pick-to: 6.2 6.1
Change-Id: I0a3f6e793b033d727f7633c022b27392acc91823
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2021-06-28 15:27:36 +03:00
Samuli Piippo
f850278548 qmake: use correct host prefix
QT_HOST_PREFIX should point to the root of the host sysroot.

Pick-to: 6.1
Change-Id: I7bb02df58da432ef70dba47f5e5866948f121c53
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2021-05-25 22:38:17 +03:00
Samuli Piippo
22f55689b5 sdk: use pkg-config from the sdk
Add needed envs to the default toolchain file used when
the setup-environment-* script have not been used.

Fixes: QTBUG-93896
Pick-to: 6.1
Change-Id: I5dc1773152b87f0c11434643de75386ddd999f72
Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
2021-05-25 22:38:07 +03:00
Samuli Piippo
212ae9b201 Use bindir for tools on Windows SDK
Move all the builttime tools back to bindir when building a Windows
SDK. This saves us from adding mingw libraries to the libexec dir
needed by the tools.

Fixes: QTBUG-91895
Pick-to: 6.1
Change-Id: I4da0f03190e3862e93c49fbd267baf567bf7a5d5
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2021-03-18 14:45:31 +02:00
Samuli Piippo
f55ee894d0 sdk: copy qt.conf to libexec dir
Some of the tools have been moved to libexec dir and need to have
the qt.conf available there as well. Amend also commit
381dcb985d so that qt.conf in the SDK
contains the path for the host libexecdir.

Task-number: QTBUG-91756
Pick-to: 6.1
Change-Id: Id76b603d1107dd70c63be7682007e4c34621750a
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2021-03-16 09:56:33 +02:00
Samuli Piippo
21c1abd75b Add QMAKE_AR_LTCG
Amend 438c538fd285b33406633574f65dd5045baf8134 with QMAKE_AR_LTCG which
is needed when using LTCG configure option. Cleanup unused variables:
QMAKE_NM has never been used and QMAKE_CFLAGS_ISYSTEM is no longer used.

Pick-to: 6.0
Change-Id: Icdb9ba48f867ff30066d8fda0c223cc3b2be2c2d
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2021-01-20 15:17:55 +02:00
Samuli Piippo
ac8056ef0e Add QMAKE_OBJCOPY and QMAKE_NM to mkspec
Needed to use the correct cross-compiler tools for objcopy and nm.

Fixes: QTBUG-90256
Pick-to: 6.0
Change-Id: I38048033b17d388b86612bc7205c4e22d948be29
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
2021-01-18 09:44:52 +02:00
Samuli Piippo
07cc8b02a0 sdk: make qt-cmake usable from the sdk
By default qt-cmake contains paths to the build time locations.
Overwrite it so that it's usable from the SDK. Set toolchain file
to Qt6Toolchain.cmake making it work without need to source the
environment-setup script.

Change-Id: I157c0ad3cdb814438be03028a0e045abb85bf058
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2020-10-16 10:14:02 +03:00
Samuli Piippo
9e69b0f3b0 sdk: set default install prefix
Set default install prefix to match the Qt's prefix path. This makes
deployment on Windows work as otherwise the default path would be some
Windows path instead of target path in the device.

Use CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT same as cmake so that
projects can still set their default path if not forced from command line.

Change-Id: If2d703a3f46abaeaa015df4e9385313498ec9d17
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-09-24 10:35:44 +00:00
Samuli Piippo
08d101c2eb Add support for mingw32 build
Add support for building nativesdk components with meta-mingw layer
for Windows SDK. Skip some of the nativesdk tools as they cannot be built.

Qt6Toolchain.cmake can be used with SDKPATH environment variable set
to the SDK installation path using forward slashes as path separators.
It depends on the nativesdk-cmake which cannot be built until upstream
patches to meta-mingw are approved.

Task-number: QTBUG-86431
Change-Id: I482f85f10461e77bb183cf763d6ef531b45e016a
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2020-09-22 04:31:51 +00:00
Samuli Piippo
69b4e15f1c sdk: tell qmake to sysrootify all paths
Qmake is no longer using sysroot by default, add config in qt.conf
to make it happen when using from nativesdk.
2020-08-25 10:05:30 +03:00
Samuli Piippo
b3107df602 Add default qmake configration to work from SDK
The default options are used when the setup-environment script
is not used. This is useful when running qmake builds from
Qt Creator

Task-number: QTBUG-84228
2020-05-18 12:18:10 +03:00
Samuli Piippo
b00138a4d5 cmake: add compiler to the PATH
Compiler needs to be in PATH to be found by CMake.
2020-05-18 08:45:54 +03:00
Samuli Piippo
313d317a42 Add missing quotes 2020-05-18 08:45:26 +03:00
Samuli Piippo
33593d668e Support qmake from SDK
Add correct paths to the qt.conf file for the SDK. Remove unneeded
qtbase patch and patching of the pri/prf files.
2020-05-14 17:26:48 +03:00
Samuli Piippo
90925c5d16 Create cmake toolchain file for Qt
Generate new toolchain file that allows using Qt from the SDK
without sourcing the setup-environment script. This is particularly
useful for integrating the SDK with QtCreator.

Remove qt-cmake and the related qt.toolchain.cmake as they do not
work correctly when used with OE.
2020-05-14 13:06:23 +03:00
Samuli Piippo
85b084989a add class for sdk population
... to create qt.conf
2020-03-25 14:34:47 +02:00