Add ifdefs for Tint API usage that may not be available

Fixed Kokoro failures when building Tint with all readers and writers
disabled.

Change-Id: I9bd041339236488dd563bbe687da883035f2a4b7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86181
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/dawn/native/ShaderModule.cpp b/src/dawn/native/ShaderModule.cpp
index 779e6ae..136158b 100644
--- a/src/dawn/native/ShaderModule.cpp
+++ b/src/dawn/native/ShaderModule.cpp
@@ -380,6 +380,7 @@
 
         ResultOrError<tint::Program> ParseWGSL(const tint::Source::File* file,
                                                OwnedCompilationMessages* outMessages) {
+#if TINT_BUILD_WGSL_READER
             tint::Program program = tint::reader::wgsl::Parse(file);
             if (outMessages != nullptr) {
                 outMessages->AddMessages(program.Diagnostics());
@@ -391,10 +392,14 @@
             }
 
             return std::move(program);
+#else
+            return DAWN_FORMAT_VALIDATION_ERROR("TINT_BUILD_WGSL_READER is not defined.");
+#endif
         }
 
         ResultOrError<tint::Program> ParseSPIRV(const std::vector<uint32_t>& spirv,
                                                 OwnedCompilationMessages* outMessages) {
+#if TINT_BUILD_SPV_READER
             tint::Program program = tint::reader::spirv::Parse(spirv);
             if (outMessages != nullptr) {
                 outMessages->AddMessages(program.Diagnostics());
@@ -405,6 +410,10 @@
             }
 
             return std::move(program);
+#else
+            return DAWN_FORMAT_VALIDATION_ERROR("TINT_BUILD_SPV_READER is not defined.");
+
+#endif
         }
 
         std::vector<uint64_t> GetBindGroupMinBufferSizes(const BindingGroupInfoMap& shaderBindings,
@@ -997,6 +1006,7 @@
         ShaderModuleWGSLDescriptor newWgslDesc;
         std::string newWgslCode;
         if (spirvDesc && device->IsToggleEnabled(Toggle::ForceWGSLStep)) {
+#if TINT_BUILD_WGSL_WRITER
             std::vector<uint32_t> spirv(spirvDesc->code, spirvDesc->code + spirvDesc->codeSize);
             tint::Program program;
             DAWN_TRY_ASSIGN(program, ParseSPIRV(spirv, outMessages));
@@ -1010,6 +1020,11 @@
 
             spirvDesc = nullptr;
             wgslDesc = &newWgslDesc;
+#else
+            device->EmitLog(
+                WGPULoggingType_Info,
+                "Toggle::ForceWGSLStep skipped because TINT_BUILD_WGSL_WRITER is not defined\n");
+#endif
         }
 
         if (spirvDesc) {
diff --git a/src/dawn/native/vulkan/ShaderModuleVk.cpp b/src/dawn/native/vulkan/ShaderModuleVk.cpp
index d56e599..da9ca3d 100644
--- a/src/dawn/native/vulkan/ShaderModuleVk.cpp
+++ b/src/dawn/native/vulkan/ShaderModuleVk.cpp
@@ -203,6 +203,7 @@
                                                    transformInputs, nullptr, nullptr));
         }
 
+#if TINT_BUILD_SPV_WRITER
         tint::writer::spirv::Options options;
         options.emit_vertex_point_size = true;
         options.disable_workgroup_init = GetDevice()->IsToggleEnabled(Toggle::DisableWorkgroupInit);
@@ -249,6 +250,9 @@
                      GetLabel());
 
         return std::move(moduleAndSpirv);
+#else
+        return DAWN_INTERNAL_ERROR("TINT_BUILD_SPV_WRITER is not defined.");
+#endif
     }
 
 }  // namespace dawn::native::vulkan