mirror of
http://code.qt.io/yocto/meta-qt6.git
synced 2026-01-01 13:58:07 +00:00
gn: Compute is_clang correctly
is_clang is hardcoded to 'false' which works great when using gcc compiler, however it does not work when using clang compiler with yocto from meta-clang, since toolchain file encodes is_clang = false but then uses clang for cc/cxx lot of GN checks in chromium go wrong due to is_clang assuming wrong value and compilation fails e.g. | CMake Error at /home/khem/actions-runner-yoe/_work/yoe-distro/yoe-distro/build/tmp/work/cortexa57-yoe-linux/qtwebengine/6.9.0/git/cmake/QtGnGen.cmake:95 (message): | | | -- GN FAILED | | ERROR at | //base/allocator/partition_allocator/src/partition_alloc/BUILD.gn:499:7 | (//build/toolchain/yocto:yocto_native): Assertion failed. | | assert(stack_scan_supported) | ^----- | | See //base/allocator/partition_allocator/BUILD.gn:7:19: which caused the | file to be included. | | public_deps = [ "src/partition_alloc:raw_ptr" ] | ^---------------------------- | Therefore, compute this flag based upon toolchains used to compile QT in yocto environment. Pick-to: 6.9 Change-Id: I42d3fc77d7241d842e3fbbc991ee5cdcfc39f46f Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
This commit is contained in:
parent
8f6cb41085
commit
3e9d7c06da
|
|
@ -50,6 +50,20 @@ def gn_host_pkg_config(d):
|
|||
"""Return absolute paths to pkg-config-native."""
|
||||
return d.getVar("STAGING_BINDIR_NATIVE") + "/" + "pkg-config-native"
|
||||
|
||||
def gn_clang(d):
|
||||
"""Return true if using clang compiler else return false"""
|
||||
if "clang++" in d.getVar("CXX"):
|
||||
return "true"
|
||||
else:
|
||||
return "false"
|
||||
|
||||
def gn_clang_native(d):
|
||||
"""Return true if using native clang compiler else return false"""
|
||||
if "clang++" in d.getVar("BUILD_CXX"):
|
||||
return "true"
|
||||
else:
|
||||
return "false"
|
||||
|
||||
def write_toolchain_file(d, file_path):
|
||||
"""Creates a complete GN toolchain file in |file_path|."""
|
||||
import string
|
||||
|
|
@ -72,7 +86,7 @@ def write_toolchain_file(d, file_path):
|
|||
' toolchain_args = {\n'
|
||||
' current_cpu = "${current_cpu}"\n'
|
||||
' current_os = "linux"\n'
|
||||
' is_clang = false\n'
|
||||
' is_clang = ${is_clang}\n'
|
||||
' host_pkg_config = "${host_pkg_config}"\n'
|
||||
' }\n'
|
||||
'}\n'
|
||||
|
|
@ -80,6 +94,7 @@ def write_toolchain_file(d, file_path):
|
|||
|
||||
native_toolchain = {
|
||||
'toolchain_name': 'yocto_native',
|
||||
'is_clang': gn_clang_native(d),
|
||||
'current_cpu': gn_host_arch_name(d),
|
||||
'host_pkg_config': gn_host_pkg_config(d),
|
||||
'cc': d.expand('${BUILD_CC}'),
|
||||
|
|
@ -94,6 +109,7 @@ def write_toolchain_file(d, file_path):
|
|||
}
|
||||
target_toolchain = {
|
||||
'toolchain_name': 'yocto_target',
|
||||
'is_clang': gn_clang(d),
|
||||
'current_cpu': gn_target_arch_name(d),
|
||||
'host_pkg_config': gn_host_pkg_config(d),
|
||||
'cc': d.expand('${CC}'),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user