Bug 245093

Summary: [ANGLE] Build broken when targeting Android
Product: WebKit Reporter: Adrian Perez <aperez>
Component: Tools / TestsAssignee: Adrian Perez <aperez>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Adrian Perez 2022-09-12 13:17:15 PDT
When targeting Android building ANGLE fails due to a conditional inclusion
in “Source/ThirdParty/ANGLE/src/compiler/translator/tree_util/BuiltIn.h”:

  #if defined(ANDROID)
  #    include "BuiltIn_ESSL_autogen.h"
  #else
  #    include "BuiltIn_complete_autogen.h"
  #endif

This means that when targeting Android currently this header is chosing to
include BuilIn_ESSL_autogen.h, but then SymbolTable_autogen.cpp gets built,
which needs symbols which are in BuiltIn_complete_autogen.h instead!

Turns out that in “Source/ThirdParty/ANGLE/CMakeLists.txt” the contents of
the variable ${angle_translator_glsl_symbol_table_sources} always get added
to the build, while according to the GN build definitions:

  # From Source/ThirdParty/ANGLE/gni/angle.gni:
  angle_enable_gl_desktop = !is_android && !is_ios

  # Same file, later on:
  angle_enable_desktop_glsl = angle_enable_gl_desktop

  # Finally, in BUILD.gn
  if (angle_enable_desktop_glsl) {
      sources += angle_translator_glsl_symbol_table_sources
  } else {
      sources += angle_translator_essl_symbol_table_sources                                                                                                                                                                                    
  }

This means that the CMake build should follow the same approach and pick one of
${angle_translator_glsl_symbol_table_sources} or ${angle_translator_ess_symbol_table_sources}
accordingly.
Comment 1 Adrian Perez 2022-09-12 13:22:08 PDT
Currently in WPE-Android I have a local patch for this issue, which
does make the ANGLE build complete and the resulting build seems to
work fine with the little testing I did so far: 

https://github.com/Igalia/cerbero/blob/52d04e96965deb8b50f2815ffa7f8290fe02bf3f/recipes/wpewebkit/0008-WIP-Fix-Android-ANGLE-build.patch
Comment 2 Adrian Perez 2022-09-12 13:27:38 PDT
Pull request: https://github.com/WebKit/WebKit/pull/4277
Comment 3 EWS 2022-09-13 03:00:14 PDT
Committed 254426@main (67af852f97b2): <https://commits.webkit.org/254426@main>

Reviewed commits have been landed. Closing PR #4277 and removing active labels.
Comment 4 Radar WebKit Bug Importer 2022-09-13 03:01:18 PDT
<rdar://problem/99862997>