Allow GN specification of shared library extension name

For use as system libraries in virtualized Linux environments,
allow use of custom sonames.

Bug: angleproject:6672
Change-Id: If297e3eaa090bfd08cb9df68a4c727da72228bcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3268941
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index ecc23b3..5dcb866 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -48,6 +48,10 @@
 
   # Optional feature that forces dirty state whenever we use a new context regardless of thread.
   angle_force_context_check_every_call = false
+
+  # Allow shared library custom name extensions for setting soname such as libEGL.so.1
+  angle_egl_extension = ""
+  angle_glesv2_extension = ""
 }
 
 if (angle_build_all) {
@@ -1134,6 +1138,9 @@
     }
 
     output_name = "${invoker.output_name}${angle_libs_suffix}"
+    if (angle_glesv2_extension != "") {
+      output_extension = angle_glesv2_extension
+    }
 
     configs += [
       ":angle_gl_visibility_config",
@@ -1265,6 +1272,9 @@
   }
 
   output_name = "libEGL${angle_libs_suffix}"
+  if (angle_egl_extension != "") {
+    output_extension = angle_egl_extension
+  }
 
   configs += [
     ":debug_annotations_config",