summaryrefslogtreecommitdiffstats
path: root/recipes-wam/cef/files/cef/0004-Add-an-option-to-bypass-sysroot-checking-and-force.patch
blob: c5790744119806ca8d8fbb29deb6d7656fded2be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
From 26d02223b99765f4c6d5ce5807947d4e0c925a0b Mon Sep 17 00:00:00 2001
From: Roger Zanoni <rzanoni@igalia.com>
Date: Tue, 16 May 2023 16:11:15 +0200
Subject: [PATCH 4/9] 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 3d4375ec0..c971b9399 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()
 
@@ -144,7 +150,7 @@ if platform == 'windows':
     gn_args['windows_sdk_path'] = os.environ['SDK_ROOT']
     gn_args['windows_sdk_version'] = os.environ['SDK_VERSION']
 
-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 c1acac17b..80545da49 100644
--- a/tools/gn_args.py
+++ b/tools/gn_args.py
@@ -327,7 +327,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.
@@ -365,11 +365,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:
@@ -460,7 +460,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.
   """
@@ -490,11 +490,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.
   """
@@ -566,7 +566,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.
   """
@@ -586,10 +586,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'
@@ -611,17 +611,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.42.0