diff --git a/BUILD.gn b/BUILD.gn
index 349ac1f..9ed9d9d 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -6,7 +6,6 @@
 import("gn/flutter_defines.gni")
 import("gn/fuchsia_defines.gni")
 import("gn/shared_sources.gni")
-
 import("gn/skia.gni")
 
 if (skia_use_dawn) {
@@ -500,11 +499,7 @@
   if (skia_generate_workarounds) {
     deps += [ ":workaround_list" ]
   }
-  if (!is_fuchsia) {
-    public_defines = [ "SK_GL" ]
-  } else {
-    public_defines = []
-  }
+  public_defines = []
   public_configs = []
   public_deps = []
 
@@ -519,9 +514,6 @@
     sources += [ "src/gpu/GrPathRendering_none.cpp" ]
   }
 
-  # These paths need to be absolute to match the ones produced by shared_sources.gni.
-  sources -= get_path_info([ "src/gpu/gl/GrGLMakeNativeInterface_none.cpp" ],
-                           "abspath")
   libs = []
   if (is_android) {
     sources += [ "src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp" ]
@@ -549,6 +541,10 @@
     sources += [ "src/gpu/gl/GrGLMakeNativeInterface_none.cpp" ]
   }
 
+  if (skia_use_gl) {
+    public_defines += [ "SK_GL" ]
+    sources += skia_gl_gpu_sources
+  }
   if (skia_use_vulkan) {
     public_defines += [ "SK_VULKAN" ]
     deps += [ "third_party/vulkanmemoryallocator" ]
@@ -557,7 +553,7 @@
       public_defines += [ "SK_ENABLE_VK_LAYERS" ]
     }
     if (is_fuchsia) {
-      if (using_fuchsia_sdk) {
+      if (skia_using_fuchsia_sdk) {
         public_deps += [ "$fuchsia_sdk_root/pkg:vulkan" ]
       } else {
         public_deps += [ "//src/graphics/lib/vulkan" ]
@@ -1303,6 +1299,7 @@
       "tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp",
       "tools/gpu/mock/MockTestContext.cpp",
     ]
+
     libs = []
 
     if (is_android || skia_use_egl) {
diff --git a/gn/gpu.gni b/gn/gpu.gni
index 04b5886..637e712 100644
--- a/gn/gpu.gni
+++ b/gn/gpu.gni
@@ -7,8 +7,6 @@
 _src = get_path_info("../src", "abspath")
 _include = get_path_info("../include", "abspath")
 
-skia_gl_gpu_sources = []
-
 skia_gpu_sources = [
   "$_include/gpu/GrBackendDrawableInfo.h",
   "$_include/gpu/GrBackendSemaphore.h",
@@ -23,13 +21,6 @@
   "$_include/gpu/GrTexture.h",
   "$_include/gpu/GrTypes.h",
 
-  "$_include/gpu/gl/GrGLAssembleInterface.h",
-  "$_include/gpu/gl/GrGLConfig.h",
-  "$_include/gpu/gl/GrGLExtensions.h",
-  "$_include/gpu/gl/GrGLFunctions.h",
-  "$_include/gpu/gl/GrGLInterface.h",
-  "$_include/gpu/gl/GrGLTypes.h",
-
   # Private includes
   "$_include/private/GrContext_Base.h",
   "$_include/private/GrGLTypesPriv.h",
@@ -132,10 +123,10 @@
   "$_src/gpu/GrOpsTask.h",
   "$_src/gpu/GrPaint.cpp",
   "$_src/gpu/GrPaint.h",
-  "$_src/gpu/GrPathRendererChain.cpp",
-  "$_src/gpu/GrPathRendererChain.h",
   "$_src/gpu/GrPathRenderer.cpp",
   "$_src/gpu/GrPathRenderer.h",
+  "$_src/gpu/GrPathRendererChain.cpp",
+  "$_src/gpu/GrPathRendererChain.h",
   "$_src/gpu/GrPipeline.cpp",
   "$_src/gpu/GrPipeline.h",
   "$_src/gpu/GrPrimitiveProcessor.cpp",
@@ -451,58 +442,6 @@
   "$_src/gpu/text/GrTextBlobVertexRegenerator.cpp",
   "$_src/gpu/text/GrTextTarget.h",
 
-  "$_src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp",
-  "$_src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp",
-  "$_src/gpu/gl/GrGLAssembleHelpers.cpp",
-  "$_src/gpu/gl/GrGLAssembleInterface.cpp",
-  "$_src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp",
-  "$_src/gpu/gl/GrGLBuffer.cpp",
-  "$_src/gpu/gl/GrGLBuffer.h",
-  "$_src/gpu/gl/GrGLCaps.cpp",
-  "$_src/gpu/gl/GrGLCaps.h",
-  "$_src/gpu/gl/GrGLContext.cpp",
-  "$_src/gpu/gl/GrGLContext.h",
-  "$_src/gpu/gl/GrGLMakeNativeInterface_none.cpp",
-  "$_src/gpu/gl/GrGLDefines.h",
-  "$_src/gpu/gl/GrGLGLSL.cpp",
-  "$_src/gpu/gl/GrGLGLSL.h",
-  "$_src/gpu/gl/GrGLGpu.cpp",
-  "$_src/gpu/gl/GrGLGpu.h",
-  "$_src/gpu/gl/GrGLGpuProgramCache.cpp",
-  "$_src/gpu/gl/GrGLExtensions.cpp",
-  "$_src/gpu/gl/GrGLInterfaceAutogen.cpp",
-  "$_src/gpu/gl/GrGLOpsRenderPass.cpp",
-  "$_src/gpu/gl/GrGLOpsRenderPass.h",
-  "$_src/gpu/gl/GrGLProgram.cpp",
-  "$_src/gpu/gl/GrGLProgram.h",
-  "$_src/gpu/gl/GrGLProgramDataManager.cpp",
-  "$_src/gpu/gl/GrGLProgramDataManager.h",
-  "$_src/gpu/gl/GrGLRenderTarget.cpp",
-  "$_src/gpu/gl/GrGLRenderTarget.h",
-  "$_src/gpu/gl/GrGLSemaphore.cpp",
-  "$_src/gpu/gl/GrGLSemaphore.h",
-  "$_src/gpu/gl/GrGLStencilAttachment.cpp",
-  "$_src/gpu/gl/GrGLStencilAttachment.h",
-  "$_src/gpu/gl/GrGLTexture.cpp",
-  "$_src/gpu/gl/GrGLTexture.h",
-  "$_src/gpu/gl/GrGLTextureRenderTarget.cpp",
-  "$_src/gpu/gl/GrGLTextureRenderTarget.h",
-  "$_src/gpu/gl/GrGLTypesPriv.cpp",
-  "$_src/gpu/gl/GrGLUtil.cpp",
-  "$_src/gpu/gl/GrGLUtil.h",
-  "$_src/gpu/gl/GrGLUniformHandler.cpp",
-  "$_src/gpu/gl/GrGLUniformHandler.h",
-  "$_src/gpu/gl/GrGLVaryingHandler.cpp",
-  "$_src/gpu/gl/GrGLVaryingHandler.h",
-  "$_src/gpu/gl/GrGLVertexArray.cpp",
-  "$_src/gpu/gl/GrGLVertexArray.h",
-
-  # Files for building GLSL shaders
-  "$_src/gpu/gl/builders/GrGLProgramBuilder.cpp",
-  "$_src/gpu/gl/builders/GrGLProgramBuilder.h",
-  "$_src/gpu/gl/builders/GrGLShaderStringBuilder.cpp",
-  "$_src/gpu/gl/builders/GrGLShaderStringBuilder.h",
-
   # GLSL
   "$_src/gpu/glsl/GrGLSL.cpp",
   "$_src/gpu/glsl/GrGLSL.h",
@@ -561,6 +500,66 @@
   "$_src/image/SkSurface_Gpu.cpp",
 ]
 
+skia_gl_gpu_sources = [
+  "$_include/gpu/gl/GrGLAssembleInterface.h",
+  "$_include/gpu/gl/GrGLConfig.h",
+  "$_include/gpu/gl/GrGLExtensions.h",
+  "$_include/gpu/gl/GrGLFunctions.h",
+  "$_include/gpu/gl/GrGLInterface.h",
+  "$_include/gpu/gl/GrGLTypes.h",
+
+  "$_src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp",
+  "$_src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp",
+  "$_src/gpu/gl/GrGLAssembleHelpers.cpp",
+  "$_src/gpu/gl/GrGLAssembleInterface.cpp",
+  "$_src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp",
+  "$_src/gpu/gl/GrGLBuffer.cpp",
+  "$_src/gpu/gl/GrGLBuffer.h",
+  "$_src/gpu/gl/GrGLCaps.cpp",
+  "$_src/gpu/gl/GrGLCaps.h",
+  "$_src/gpu/gl/GrGLContext.cpp",
+  "$_src/gpu/gl/GrGLContext.h",
+  "$_src/gpu/gl/GrGLDefines.h",
+  "$_src/gpu/gl/GrGLGLSL.cpp",
+  "$_src/gpu/gl/GrGLGLSL.h",
+  "$_src/gpu/gl/GrGLGpu.cpp",
+  "$_src/gpu/gl/GrGLGpu.h",
+  "$_src/gpu/gl/GrGLGpuProgramCache.cpp",
+  "$_src/gpu/gl/GrGLExtensions.cpp",
+  "$_src/gpu/gl/GrGLInterfaceAutogen.cpp",
+  "$_src/gpu/gl/GrGLOpsRenderPass.cpp",
+  "$_src/gpu/gl/GrGLOpsRenderPass.h",
+  "$_src/gpu/gl/GrGLProgram.cpp",
+  "$_src/gpu/gl/GrGLProgram.h",
+  "$_src/gpu/gl/GrGLProgramDataManager.cpp",
+  "$_src/gpu/gl/GrGLProgramDataManager.h",
+  "$_src/gpu/gl/GrGLRenderTarget.cpp",
+  "$_src/gpu/gl/GrGLRenderTarget.h",
+  "$_src/gpu/gl/GrGLSemaphore.cpp",
+  "$_src/gpu/gl/GrGLSemaphore.h",
+  "$_src/gpu/gl/GrGLStencilAttachment.cpp",
+  "$_src/gpu/gl/GrGLStencilAttachment.h",
+  "$_src/gpu/gl/GrGLTexture.cpp",
+  "$_src/gpu/gl/GrGLTexture.h",
+  "$_src/gpu/gl/GrGLTextureRenderTarget.cpp",
+  "$_src/gpu/gl/GrGLTextureRenderTarget.h",
+  "$_src/gpu/gl/GrGLTypesPriv.cpp",
+  "$_src/gpu/gl/GrGLUtil.cpp",
+  "$_src/gpu/gl/GrGLUtil.h",
+  "$_src/gpu/gl/GrGLUniformHandler.cpp",
+  "$_src/gpu/gl/GrGLUniformHandler.h",
+  "$_src/gpu/gl/GrGLVaryingHandler.cpp",
+  "$_src/gpu/gl/GrGLVaryingHandler.h",
+  "$_src/gpu/gl/GrGLVertexArray.cpp",
+  "$_src/gpu/gl/GrGLVertexArray.h",
+
+  # Files for building GLSL shaders
+  "$_src/gpu/gl/builders/GrGLProgramBuilder.cpp",
+  "$_src/gpu/gl/builders/GrGLProgramBuilder.h",
+  "$_src/gpu/gl/builders/GrGLShaderStringBuilder.cpp",
+  "$_src/gpu/gl/builders/GrGLShaderStringBuilder.h",
+]
+
 skia_ccpr_sources = [
   # coverage counting path renderer
   "$_src/gpu/ccpr/GrCCAtlas.cpp",
@@ -609,16 +608,16 @@
 ]
 
 skia_nvpr_sources = [
+  "$_src/gpu/gl/GrGLPath.cpp",
+  "$_src/gpu/gl/GrGLPath.h",
+  "$_src/gpu/gl/GrGLPathRendering.cpp",
+  "$_src/gpu/gl/GrGLPathRendering.h",
   "$_src/gpu/GrPath.cpp",
   "$_src/gpu/GrPath.h",
   "$_src/gpu/GrPathProcessor.cpp",
   "$_src/gpu/GrPathProcessor.h",
   "$_src/gpu/GrPathRendering.cpp",
   "$_src/gpu/GrPathRendering.h",
-  "$_src/gpu/gl/GrGLPath.cpp",
-  "$_src/gpu/gl/GrGLPath.h",
-  "$_src/gpu/gl/GrGLPathRendering.cpp",
-  "$_src/gpu/gl/GrGLPathRendering.h",
   "$_src/gpu/ops/GrDrawPathOp.cpp",
   "$_src/gpu/ops/GrDrawPathOp.h",
   "$_src/gpu/ops/GrStencilAndCoverPathRenderer.cpp",
@@ -630,7 +629,9 @@
 skia_gpu_sources += skia_ccpr_sources
 skia_gpu_sources += skia_nvpr_sources
 
-skia_null_gpu_sources = []
+skia_null_gpu_sources = [
+  "$_src/gpu/gl/GrGLMakeNativeInterface_none.cpp",
+]
 
 skia_vk_sources = [
   "$_include/gpu/vk/GrVkBackendContext.h",
diff --git a/gn/skia.gni b/gn/skia.gni
index a87c3f7..3e0c07c 100644
--- a/gn/skia.gni
+++ b/gn/skia.gni
@@ -49,6 +49,7 @@
   skia_use_freetype = is_android || is_fuchsia || is_linux
   skia_use_gl = !is_fuchsia
   skia_use_harfbuzz = true
+  skia_use_gl = !is_fuchsia
   skia_use_icu = !is_fuchsia && !is_ios
   skia_use_libheif = is_skia_dev_build
   skia_use_libjpeg_turbo = true
diff --git a/src/gpu/GrBackendSurface.cpp b/src/gpu/GrBackendSurface.cpp
index e10b79e..1b1d1f2 100644
--- a/src/gpu/GrBackendSurface.cpp
+++ b/src/gpu/GrBackendSurface.cpp
@@ -62,6 +62,7 @@
     }
 }
 
+#ifdef SK_GL
 GrBackendFormat::GrBackendFormat(GrGLenum format, GrGLenum target)
         : fBackend(GrBackendApi::kOpenGL)
         , fValid(true)
@@ -90,6 +91,7 @@
     }
     return GrGLFormat::kUnknown;
 }
+#endif
 
 GrBackendFormat GrBackendFormat::MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo) {
     SkASSERT(ycbcrInfo.isValid());
@@ -202,24 +204,27 @@
     }
 
     switch (fBackend) {
+#ifdef SK_GL
         case GrBackendApi::kOpenGL:
             return fGLFormat == that.fGLFormat;
-        case GrBackendApi::kVulkan:
+            break;
+#endif
 #ifdef SK_VULKAN
+        case GrBackendApi::kVulkan:
             return fVk.fFormat == that.fVk.fFormat &&
                    fVk.fYcbcrConversionInfo == that.fVk.fYcbcrConversionInfo;
-#endif
             break;
+#endif
 #ifdef SK_METAL
         case GrBackendApi::kMetal:
             return fMtlFormat == that.fMtlFormat;
-#endif
             break;
-        case GrBackendApi::kDawn:
+#endif
 #ifdef SK_DAWN
+        case GrBackendApi::kDawn:
             return fDawnFormat == that.fDawnFormat;
-#endif
             break;
+#endif
         case GrBackendApi::kMock:
             return fMockColorType == that.fMockColorType;
         default:
@@ -347,6 +352,7 @@
         , fMtlInfo(mtlInfo) {}
 #endif
 
+#ifdef SK_GL
 GrBackendTexture::GrBackendTexture(int width,
                                    int height,
                                    GrMipMapped mipMapped,
@@ -355,6 +361,7 @@
     // Make no assumptions about client's texture's parameters.
     this->glTextureParametersModified();
 }
+#endif
 
 GrBackendTexture::GrBackendTexture(int width,
                                    int height,
@@ -691,6 +698,7 @@
         , fMtlInfo(mtlInfo) {}
 #endif
 
+#ifdef SK_GL
 GrBackendRenderTarget::GrBackendRenderTarget(int width,
                                              int height,
                                              int sampleCnt,
@@ -704,6 +712,7 @@
         , fGLInfo(glInfo) {
     fIsValid = SkToBool(glInfo.fFormat); // the glInfo must have a valid format
 }
+#endif
 
 GrBackendRenderTarget::GrBackendRenderTarget(int width,
                                              int height,
@@ -749,14 +758,16 @@
     fBackend = that.fBackend;
 
     switch (that.fBackend) {
+#ifdef SK_GL
         case GrBackendApi::kOpenGL:
             fGLInfo = that.fGLInfo;
             break;
-        case GrBackendApi::kVulkan:
-#ifdef SK_VULKAN
-            fVkInfo.assign(that.fVkInfo, this->isValid());
 #endif
+#ifdef SK_VULKAN
+        case GrBackendApi::kVulkan:
+            fVkInfo.assign(that.fVkInfo, this->isValid());
             break;
+#endif
 #ifdef SK_DAWN
         case GrBackendApi::kDawn:
             fDawnInfo = that.fDawnInfo;
@@ -824,6 +835,7 @@
 }
 #endif
 
+#ifdef SK_GL
 bool GrBackendRenderTarget::getGLFramebufferInfo(GrGLFramebufferInfo* outInfo) const {
     if (this->isValid() && GrBackendApi::kOpenGL == fBackend) {
         *outInfo = fGLInfo;
@@ -831,6 +843,7 @@
     }
     return false;
 }
+#endif
 
 GrBackendFormat GrBackendRenderTarget::getBackendFormat() const {
     if (!this->isValid()) {
diff --git a/src/gpu/GrLegacyDirectContext.cpp b/src/gpu/GrLegacyDirectContext.cpp
index afba0b9..1353001 100644
--- a/src/gpu/GrLegacyDirectContext.cpp
+++ b/src/gpu/GrLegacyDirectContext.cpp
@@ -122,6 +122,7 @@
     typedef GrContext INHERITED;
 };
 
+#ifdef SK_GL
 sk_sp<GrContext> GrContext::MakeGL(sk_sp<const GrGLInterface> interface) {
     GrContextOptions defaultOptions;
     return MakeGL(std::move(interface), defaultOptions);
@@ -150,6 +151,7 @@
     }
     return context;
 }
+#endif
 
 sk_sp<GrContext> GrContext::MakeMock(const GrMockOptions* mockOptions) {
     GrContextOptions defaultOptions;
@@ -222,12 +224,12 @@
 #endif
 
 #ifdef SK_DAWN
-sk_sp<GrContext> GrContext::MakeDawn(const wgpu::Device& device) {
+sk_sp<GrContext> GrContext::MakeDawn(const dawn::Device& device) {
     GrContextOptions defaultOptions;
     return MakeDawn(device, defaultOptions);
 }
 
-sk_sp<GrContext> GrContext::MakeDawn(const wgpu::Device& device, const GrContextOptions& options) {
+sk_sp<GrContext> GrContext::MakeDawn(const dawn::Device& device, const GrContextOptions& options) {
     sk_sp<GrContext> context(new GrLegacyDirectContext(GrBackendApi::kDawn, options));
 
     context->fGpu = GrDawnGpu::Make(device, options, context.get());
diff --git a/tests/DeferredDisplayListTest.cpp b/tests/DeferredDisplayListTest.cpp
index e816ba6..ec7048d 100644
--- a/tests/DeferredDisplayListTest.cpp
+++ b/tests/DeferredDisplayListTest.cpp
@@ -998,6 +998,7 @@
     }
 }
 
+#ifdef SK_GL
 ////////////////////////////////////////////////////////////////////////////////
 // Check that the texture-specific flags (i.e., for external & rectangle textures) work
 // for promise images. As such, this is a GL-only test.
@@ -1043,6 +1044,7 @@
         }
     }
 }
+#endif  // SK_GL
 
 ////////////////////////////////////////////////////////////////////////////////
 // Test colorType and pixelConfig compatibility.
diff --git a/tests/EGLImageTest.cpp b/tests/EGLImageTest.cpp
index 7f4c6f8..80497c0 100644
--- a/tests/EGLImageTest.cpp
+++ b/tests/EGLImageTest.cpp
@@ -21,6 +21,8 @@
 #include "tools/gpu/GrContextFactory.h"
 #include "tools/gpu/gl/GLTestContext.h"
 
+#ifdef SK_GL
+
 using sk_gpu_test::GLTestContext;
 
 static void cleanup(GLTestContext* glctx0, GrGLuint texID0, GLTestContext* glctx1,
@@ -197,3 +199,5 @@
 
     cleanup(glCtx0, externalTexture.fID, glCtx1.get(), context1, &backendTexture1, image);
 }
+
+#endif  // SK_GL
diff --git a/tests/GrGLExtensionsTest.cpp b/tests/GrGLExtensionsTest.cpp
index 480e624..4c95706 100644
--- a/tests/GrGLExtensionsTest.cpp
+++ b/tests/GrGLExtensionsTest.cpp
@@ -11,6 +11,8 @@
 #include "src/gpu/gl/GrGLDefines.h"
 #include "tests/Test.h"
 
+#ifdef SK_GL
+
 const GrGLubyte* simpleGetString(GrGLenum name) {
     return (const GrGLubyte*)(name == GR_GL_VERSION ? "3.0" : "");
 }
@@ -46,3 +48,5 @@
     REPORTER_ASSERT(reporter, ext.remove("test_extension_1"));
     REPORTER_ASSERT(reporter, !ext.has("test_extension_1"));
 }
+
+#endif  // SK_GL
diff --git a/tests/ProxyTest.cpp b/tests/ProxyTest.cpp
index 28eb8d6..5a83ccd 100644
--- a/tests/ProxyTest.cpp
+++ b/tests/ProxyTest.cpp
@@ -20,8 +20,10 @@
 #include "src/gpu/GrSurfaceProxyPriv.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
+#ifdef SK_GL
 #include "src/gpu/gl/GrGLDefines.h"
 #include "src/gpu/gl/GrGLUtil.h"
+#endif
 
 // Check that the surface proxy's member vars are set as expected
 static void check_surface(skiatest::Reporter* reporter,
@@ -258,6 +260,7 @@
                     continue;
                 }
 
+#ifdef SK_GL
                 // Test wrapping FBO 0 (with made up properties). This tests sample count and the
                 // special case where FBO 0 doesn't support window rectangles.
                 if (GrBackendApi::kOpenGL == ctxInfo.backend()) {
@@ -278,6 +281,7 @@
                                        sProxy->asRenderTargetProxy(),
                                        supportedNumSamples, SkBackingFit::kExact, 0);
                 }
+#endif
 
                 // Tests wrapBackendRenderTarget with a GrBackendTexture
                 {
diff --git a/tests/RectangleTextureTest.cpp b/tests/RectangleTextureTest.cpp
index f1f9102..886cff3 100644
--- a/tests/RectangleTextureTest.cpp
+++ b/tests/RectangleTextureTest.cpp
@@ -17,10 +17,14 @@
 #include "src/gpu/GrSurfacePriv.h"
 #include "src/gpu/GrTexturePriv.h"
 #include "src/gpu/SkGr.h"
+#ifdef SK_GL
 #include "src/gpu/gl/GrGLGpu.h"
 #include "src/gpu/gl/GrGLUtil.h"
+#endif
 #include "tools/gpu/ProxyUtils.h"
+#ifdef SK_GL
 #include "tools/gpu/gl/GLTestContext.h"
+#endif
 
 // skbug.com/5932
 static void test_basic_draw_as_src(skiatest::Reporter* reporter, GrContext* context,
@@ -117,6 +121,7 @@
     }
 }
 
+#ifdef SK_GL
 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(RectangleTexture, reporter, ctxInfo) {
     GrContext* context = ctxInfo.grContext();
     GrProxyProvider* proxyProvider = context->priv().proxyProvider();
@@ -201,3 +206,4 @@
         GR_GL_CALL(glContext->gl(), DeleteTextures(1, &rectTexID));
     }
 }
+#endif
diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp
index 6d6a1fe..5e7fc05 100644
--- a/tests/SurfaceSemaphoreTest.cpp
+++ b/tests/SurfaceSemaphoreTest.cpp
@@ -16,8 +16,10 @@
 #include "include/gpu/GrBackendSemaphore.h"
 #include "include/gpu/GrBackendSurface.h"
 
+#ifdef SK_GL
 #include "src/gpu/gl/GrGLGpu.h"
 #include "src/gpu/gl/GrGLUtil.h"
+#endif
 
 #ifdef SK_VULKAN
 #include "include/gpu/vk/GrVkTypes.h"
@@ -182,6 +184,7 @@
     draw_child(reporter, childInfo2, backendTexture, semaphores[1]);
 }
 
+#ifdef SK_GL
 DEF_GPUTEST(SurfaceSemaphores, reporter, options) {
 #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC)
     static constexpr auto kNativeGLType = sk_gpu_test::GrContextFactory::kGL_ContextType;
@@ -222,6 +225,7 @@
         }
     }
 }
+#endif
 
 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(EmptySurfaceSemaphoreTest, reporter, ctxInfo) {
     GrContext* ctx = ctxInfo.grContext();
@@ -243,6 +247,7 @@
     GrSemaphoresSubmitted submitted = mainSurface->flushAndSignalSemaphores(1, &semaphore);
     REPORTER_ASSERT(reporter, GrSemaphoresSubmitted::kYes == submitted);
 
+#ifdef SK_GL
     if (GrBackendApi::kOpenGL == ctxInfo.backend()) {
         GrGLGpu* gpu = static_cast<GrGLGpu*>(ctx->priv().getGpu());
         const GrGLInterface* interface = gpu->glInterface();
@@ -252,6 +257,7 @@
         GR_GL_CALL_RET(interface, result, IsSync(sync));
         REPORTER_ASSERT(reporter, result);
     }
+#endif
 
 #ifdef SK_VULKAN
     if (GrBackendApi::kVulkan == ctxInfo.backend()) {
diff --git a/tests/TextureBindingsResetTest.cpp b/tests/TextureBindingsResetTest.cpp
index 04602ff..1703a34 100644
--- a/tests/TextureBindingsResetTest.cpp
+++ b/tests/TextureBindingsResetTest.cpp
@@ -12,6 +12,8 @@
 #include "src/gpu/gl/GrGLUtil.h"
 #include "tests/Test.h"
 
+#ifdef SK_GL
+
 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(TextureBindingsResetTest, reporter, ctxInfo) {
 #define GL(F) GR_GL_CALL(ctxInfo.glContext()->gl(), F)
 
@@ -164,3 +166,5 @@
 
 #undef GL
 }
+
+#endif  // SK_GL
diff --git a/tests/TraceMemoryDumpTest.cpp b/tests/TraceMemoryDumpTest.cpp
index 16096a2..42e2c47 100644
--- a/tests/TraceMemoryDumpTest.cpp
+++ b/tests/TraceMemoryDumpTest.cpp
@@ -12,9 +12,11 @@
 #include "include/gpu/GrTexture.h"
 #include "src/gpu/GrContextPriv.h"
 #include "src/gpu/GrRenderTarget.h"
+#ifdef SK_GL
 #include "src/gpu/gl/GrGLBuffer.h"
 #include "src/gpu/gl/GrGLDefines.h"
 #include "src/gpu/gl/GrGLGpu.h"
+#endif
 
 /*
  * Build test for SkTraceMemoryDump.
@@ -71,6 +73,7 @@
     }
 }
 
+#ifdef SK_GL
 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLBuffer, reporter, ctxInfo) {
     GrContext* context = ctxInfo.grContext();
     GrGLGpu* gpu = static_cast<GrGLGpu*>(context->priv().getGpu());
@@ -157,3 +160,4 @@
 
     ValidateMemoryDumps(reporter, context, rt->gpuMemorySize(), false /* isOwned */);
 }
+#endif  // SK_GL
diff --git a/tests/VkHardwareBufferTest.cpp b/tests/VkHardwareBufferTest.cpp
index 07563cb..cfe453b 100644
--- a/tests/VkHardwareBufferTest.cpp
+++ b/tests/VkHardwareBufferTest.cpp
@@ -70,6 +70,7 @@
     int fFdHandle = 0;
 };
 
+#ifdef SK_GL
 class EGLTestHelper : public BaseTestHelper {
 public:
     EGLTestHelper(const GrContextOptions& options) : fFactory(options) {}
@@ -362,6 +363,7 @@
     fenceSync->waitFence(fence);
     fenceSync->deleteFence(fence);
 }
+#endif  // SK_GL
 
 #define DECLARE_VK_PROC(name) PFN_vk##name fVk##name
 
@@ -1078,7 +1080,11 @@
     if (SrcType::kVulkan == srcType) {
         srcHelper.reset(new VulkanTestHelper());
     } else if (SrcType::kEGL == srcType) {
+#ifdef SK_GL
         srcHelper.reset(new EGLTestHelper(options));
+#else
+        SkASSERT(false, "SrcType::kEGL used without OpenGL support.");
+#endif
     }
     if (srcHelper) {
         if (!srcHelper->init(reporter)) {
@@ -1090,8 +1096,12 @@
     if (DstType::kVulkan == dstType) {
         dstHelper.reset(new VulkanTestHelper());
     } else {
+#ifdef SK_GL
         SkASSERT(DstType::kEGL == dstType);
         dstHelper.reset(new EGLTestHelper(options));
+#else
+        SkASSERT(false, "DstType::kEGL used without OpenGL support.");
+#endif
     }
     if (dstHelper) {
         if (!dstHelper->init(reporter)) {
@@ -1275,14 +1285,19 @@
     run_test(reporter, options, SrcType::kCPU, DstType::kVulkan, false);
 }
 
-DEF_GPUTEST(VulkanHardwareBuffer_EGL_Vulkan, reporter, options) {
-    run_test(reporter, options, SrcType::kEGL, DstType::kVulkan, false);
-}
-
 DEF_GPUTEST(VulkanHardwareBuffer_Vulkan_Vulkan, reporter, options) {
     run_test(reporter, options, SrcType::kVulkan, DstType::kVulkan, false);
 }
 
+DEF_GPUTEST(VulkanHardwareBuffer_Vulkan_Vulkan_Syncs, reporter, options) {
+    run_test(reporter, options, SrcType::kVulkan, DstType::kVulkan, true);
+}
+
+#if defined(SK_GL)
+DEF_GPUTEST(VulkanHardwareBuffer_EGL_Vulkan, reporter, options) {
+    run_test(reporter, options, SrcType::kEGL, DstType::kVulkan, false);
+}
+
 DEF_GPUTEST(VulkanHardwareBuffer_CPU_EGL, reporter, options) {
     run_test(reporter, options, SrcType::kCPU, DstType::kEGL, false);
 }
@@ -1306,10 +1321,8 @@
 DEF_GPUTEST(VulkanHardwareBuffer_EGL_Vulkan_Syncs, reporter, options) {
     run_test(reporter, options, SrcType::kEGL, DstType::kVulkan, true);
 }
-
-DEF_GPUTEST(VulkanHardwareBuffer_Vulkan_Vulkan_Syncs, reporter, options) {
-    run_test(reporter, options, SrcType::kVulkan, DstType::kVulkan, true);
-}
-
 #endif
 
+#endif  // SK_SUPPORT_GPU && defined(SK_BUILD_FOR_ANDROID) &&
+        // __ANDROID_API__ >= 26 && defined(SK_VULKAN)
+
diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp
index d0defdc..be33802 100644
--- a/tools/gpu/GrContextFactory.cpp
+++ b/tools/gpu/GrContextFactory.cpp
@@ -8,7 +8,9 @@
 
 #include "src/gpu/GrContextPriv.h"
 #include "tools/gpu/GrContextFactory.h"
+#ifdef SK_GL
 #include "tools/gpu/gl/GLTestContext.h"
+#endif
 
 #if SK_ANGLE
     #include "tools/gpu/gl/angle/GLTestContext_angle.h"
@@ -152,6 +154,7 @@
     std::unique_ptr<TestContext> testCtx;
     GrBackendApi backend = ContextTypeBackend(type);
     switch (backend) {
+#ifdef SK_GL
         case GrBackendApi::kOpenGL: {
             GLTestContext* glShareContext = masterContext
                     ? static_cast<GLTestContext*>(masterContext->fTestContext) : nullptr;
@@ -199,6 +202,7 @@
             testCtx.reset(glCtx);
             break;
         }
+#endif  // SK_GL
 #ifdef SK_VULKAN
         case GrBackendApi::kVulkan: {
             VkTestContext* vkSharedContext = masterContext
@@ -209,6 +213,7 @@
                 return ContextInfo();
             }
 
+#ifdef SK_GL
             // There is some bug (either in Skia or the NV Vulkan driver) where VkDevice
             // destruction will hang occaisonally. For some reason having an existing GL
             // context fixes this.
@@ -218,6 +223,7 @@
                     fSentinelGLContext.reset(CreatePlatformGLTestContext(kGLES_GrGLStandard));
                 }
             }
+#endif
             break;
         }
 #endif
diff --git a/tools/skqp/src/skqp.cpp b/tools/skqp/src/skqp.cpp
index 04f0369..ac08a5e 100644
--- a/tools/skqp/src/skqp.cpp
+++ b/tools/skqp/src/skqp.cpp
@@ -22,8 +22,12 @@
 #include "src/utils/SkOSPath.h"
 #include "tests/Test.h"
 #include "tools/fonts/TestFontMgr.h"
+#ifdef SK_GL
 #include "tools/gpu/gl/GLTestContext.h"
+#endif
+#ifdef SK_VULKAN
 #include "tools/gpu/vk/VkTestContext.h"
+#endif
 
 #include <limits.h>
 #include <algorithm>
