Provide a way to disable libpci dependency.

Add a new gyp variable: use_libpci (default value is 1).
Add a new define when use_libpci==1: USE_LIBPCI.
Don't call specific PCI code in gpu_info_collector_linux.cc if USE_LIBPCI isn't defined.

BUG=427401
[email protected]

Review URL: https://codereview.chromium.org/692893004

Cr-Commit-Position: refs/heads/master@{#302613}
diff --git a/gpu/config/BUILD.gn b/gpu/config/BUILD.gn
index 4dab028..799dc12 100644
--- a/gpu/config/BUILD.gn
+++ b/gpu/config/BUILD.gn
@@ -4,6 +4,11 @@
 
 import("//build/config/ui.gni")
 
+declare_args() {
+  # Use the PCI lib to collect GPU information on Linux.
+  use_libpci = true
+}
+
 source_set("config") {
   sources = [
     "dx_diag_node.cc",
@@ -62,7 +67,10 @@
       ]
     }
   }
-  if (is_linux && (use_x11 || use_ozone)) {
+  if (use_libpci) {
+    defines += [ "USE_LIBPCI=1" ]
+  }
+  if (is_linux && use_libpci && (use_x11 || use_ozone)) {
     deps += [
       "//build/config/linux:libpci",
     ]
diff --git a/gpu/config/gpu_info_collector_linux.cc b/gpu/config/gpu_info_collector_linux.cc
index 9a21a2d..061fe35 100644
--- a/gpu/config/gpu_info_collector_linux.cc
+++ b/gpu/config/gpu_info_collector_linux.cc
@@ -17,13 +17,16 @@
 #include "base/strings/string_tokenizer.h"
 #include "base/strings/string_util.h"
 #include "gpu/config/gpu_info_collector.h"
-#include "library_loaders/libpci.h"
 #include "ui/gl/gl_bindings.h"
 #include "ui/gl/gl_context.h"
 #include "ui/gl/gl_implementation.h"
 #include "ui/gl/gl_surface.h"
 #include "ui/gl/gl_switches.h"
 
+#if defined(USE_LIBPCI)
+#include "library_loaders/libpci.h"
+#endif
+
 namespace gpu {
 
 namespace {
@@ -72,6 +75,10 @@
 CollectInfoResult CollectPCIVideoCardInfo(GPUInfo* gpu_info) {
   DCHECK(gpu_info);
 
+#if !defined(USE_LIBPCI)
+  return kCollectInfoNonFatalFailure;
+#else
+
   if (IsPciSupported() == false) {
     VLOG(1) << "PCI bus scanning is not supported";
     return kCollectInfoNonFatalFailure;
@@ -144,6 +151,7 @@
   if (!primary_gpu_identified)
     return kCollectInfoNonFatalFailure;
   return kCollectInfoSuccess;
+#endif
 }
 
 }  // namespace anonymous
diff --git a/gpu/gpu_config.gypi b/gpu/gpu_config.gypi
index b90143f..4505503 100644
--- a/gpu/gpu_config.gypi
+++ b/gpu/gpu_config.gypi
@@ -65,7 +65,7 @@
         '../third_party/amd/amd_videocard_info_win.cc',
       ],
     }],
-    ['OS=="linux" and (use_x11==1 or use_ozone==1)', {
+    ['OS=="linux" and use_libpci==1 and (use_x11==1 or use_ozone==1)', {
       'dependencies': [
         '../build/linux/system.gyp:libpci',
       ],