[wam][cef] Add the CEF recipe
[AGL/meta-agl-demo.git] / recipes-wam / cef / files / cef / 0004-Add-an-option-to-bypass-sysroot-checking-and-force.patch
diff --git a/recipes-wam/cef/files/cef/0004-Add-an-option-to-bypass-sysroot-checking-and-force.patch b/recipes-wam/cef/files/cef/0004-Add-an-option-to-bypass-sysroot-checking-and-force.patch
new file mode 100644 (file)
index 0000000..7755da6
--- /dev/null
@@ -0,0 +1,134 @@
+From 4b16bef4a219af372d022f0ec4f15befb1449808 Mon Sep 17 00:00:00 2001
+From: Roger Zanoni <rzanoni@igalia.com>
+Date: Tue, 16 May 2023 16:11:15 +0200
+Subject: [PATCH 04/10] Add an option to bypass sysroot checking and force
+
+---
+ tools/gclient_hook.py |  8 +++++++-
+ tools/gn_args.py      | 28 ++++++++++++++--------------
+ 2 files changed, 21 insertions(+), 15 deletions(-)
+
+diff --git a/tools/gclient_hook.py b/tools/gclient_hook.py
+index 4e5f9f687..6a7bc0d46 100644
+--- a/tools/gclient_hook.py
++++ b/tools/gclient_hook.py
+@@ -20,6 +20,12 @@ parser.add_option(
+     dest='baseoutpath',
+     default='',
+     help="Use an anternative base path for the generated gn outputs instead of using chromium source dir")
++parser.add_option(
++    '--bypass-sysroot-check',
++    action='store_true',
++    dest='bypasssysrootcheck',
++    default=False,
++    help='Don\'t chech if the sysroot exist while generating output directores.')
+ (options, args) = parser.parse_args()
+@@ -141,7 +147,7 @@ if platform == 'windows':
+     gn_args['visual_studio_runtime_dirs'] = os.environ['VS_CRT_ROOT']
+     gn_args['windows_sdk_path'] = os.environ['SDK_ROOT']
+-configs = GetAllPlatformConfigs(gn_args)
++configs = GetAllPlatformConfigs(gn_args, bypass_sysroot_check=options.bypasssysrootcheck)
+ for dir, config in configs.items():
+   # Create out directories and write the args.gn file.
+   base_out_dir = src_dir
+diff --git a/tools/gn_args.py b/tools/gn_args.py
+index 563a6b9cc..f782bd765 100644
+--- a/tools/gn_args.py
++++ b/tools/gn_args.py
+@@ -323,7 +323,7 @@ def GetMergedArgs(build_args):
+   return MergeDicts(dict, required)
+-def ValidateArgs(args):
++def ValidateArgs(args, bypass_sysroot_check=False):
+   """
+   Validate GN arg combinations that we know about. Also provide suggestions
+   where appropriate.
+@@ -360,11 +360,11 @@ def ValidateArgs(args):
+   if platform == 'linux':
+     if target_cpu == 'x86':
+-      assert use_sysroot, 'target_cpu="x86" requires use_sysroot=true'
++      assert use_sysroot or bypass_sysroot_check, 'target_cpu="x86" requires use_sysroot=true'
+     elif target_cpu == 'arm':
+-      assert use_sysroot, 'target_cpu="arm" requires use_sysroot=true'
++      assert use_sysroot or bypass_sysroot_check, 'target_cpu="arm" requires use_sysroot=true'
+     elif target_cpu == 'arm64':
+-      assert use_sysroot, 'target_cpu="arm64" requires use_sysroot=true'
++      assert use_sysroot or bypass_sysroot_check, 'target_cpu="arm64" requires use_sysroot=true'
+   # ASAN requires Release builds.
+   if is_asan:
+@@ -452,7 +452,7 @@ def ValidateArgs(args):
+           "visual_studio_path requires INCLUDE, LIB and PATH env variables"
+-def GetConfigArgs(args, is_debug, cpu):
++def GetConfigArgs(args, is_debug, cpu, bypass_sysroot_check=False):
+   """
+   Return merged GN args for the configuration and validate.
+   """
+@@ -478,11 +478,11 @@ def GetConfigArgs(args, is_debug, cpu):
+       if key.startswith('arm_'):
+         del result[key]
+-  ValidateArgs(result)
++  ValidateArgs(result, bypass_sysroot_check)
+   return result
+-def GetConfigArgsSandbox(platform, args, is_debug, cpu):
++def GetConfigArgsSandbox(platform, args, is_debug, cpu, bypass_sysroot_check=False):
+   """
+   Return merged GN args for the cef_sandbox configuration and validate.
+   """
+@@ -548,7 +548,7 @@ def LinuxSysrootExists(cpu):
+   return os.path.isdir(os.path.join(sysroot_root, sysroot_name))
+-def GetAllPlatformConfigs(build_args):
++def GetAllPlatformConfigs(build_args, bypass_sysroot_check=False):
+   """
+   Return a map of directory name to GN args for the current platform.
+   """
+@@ -568,10 +568,10 @@ def GetAllPlatformConfigs(build_args):
+   if platform == 'linux':
+     use_sysroot = GetArgValue(args, 'use_sysroot')
+-    if use_sysroot:
++    if bypass_sysroot_check or use_sysroot:
+       # Only generate configurations for sysroots that have been installed.
+       for cpu in ('x64', 'arm', 'arm64'):
+-        if LinuxSysrootExists(cpu):
++        if bypass_sysroot_check or LinuxSysrootExists(cpu):
+           supported_cpus.append(cpu)
+         else:
+           msg('Not generating %s configuration due to missing sysroot directory'
+@@ -593,17 +593,17 @@ def GetAllPlatformConfigs(build_args):
+   for cpu in supported_cpus:
+     if create_debug:
+-      result['Debug_GN_' + cpu] = GetConfigArgs(args, True, cpu)
+-    result['Release_GN_' + cpu] = GetConfigArgs(args, False, cpu)
++      result['Debug_GN_' + cpu] = GetConfigArgs(args, True, cpu, bypass_sysroot_check)
++    result['Release_GN_' + cpu] = GetConfigArgs(args, False, cpu, bypass_sysroot_check)
+     if platform in ('windows', 'mac') and GetArgValue(args,
+                                                       'is_official_build'):
+       # Build cef_sandbox.lib with a different configuration.
+       if create_debug:
+         result['Debug_GN_' + cpu + '_sandbox'] = GetConfigArgsSandbox(
+-            platform, args, True, cpu)
++            platform, args, True, cpu, bypass_sysroot_check)
+       result['Release_GN_' + cpu + '_sandbox'] = GetConfigArgsSandbox(
+-          platform, args, False, cpu)
++          platform, args, False, cpu, bypass_sysroot_check)
+   return result
+-- 
+2.39.2
+