[tint][build] Guard WGSL writer with tint_build_wgsl_writer
Change-Id: Id188456ada3fae3abd7931c453f1d958e4e9b9a4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/155444
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/api/BUILD.bazel b/src/tint/api/BUILD.bazel
index 885b21d..247bab4 100644
--- a/src/tint/api/BUILD.bazel
+++ b/src/tint/api/BUILD.bazel
@@ -45,7 +45,6 @@
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -87,6 +86,11 @@
"//src/tint/lang/spirv/writer/common",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -117,3 +121,8 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
diff --git a/src/tint/api/BUILD.cmake b/src/tint/api/BUILD.cmake
index 697a9f0..d12f114 100644
--- a/src/tint/api/BUILD.cmake
+++ b/src/tint/api/BUILD.cmake
@@ -47,7 +47,6 @@
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -95,3 +94,9 @@
tint_lang_spirv_writer_common
)
endif(TINT_BUILD_SPV_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_api lib
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
diff --git a/src/tint/api/BUILD.gn b/src/tint/api/BUILD.gn
index b1e798a..4141b6b 100644
--- a/src/tint/api/BUILD.gn
+++ b/src/tint/api/BUILD.gn
@@ -44,7 +44,6 @@
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -88,4 +87,8 @@
"${tint_src_dir}/lang/spirv/writer/common",
]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
diff --git a/src/tint/cmd/bench/BUILD.bazel b/src/tint/cmd/bench/BUILD.bazel
index 19f7f9b..1f4dffc 100644
--- a/src/tint/cmd/bench/BUILD.bazel
+++ b/src/tint/cmd/bench/BUILD.bazel
@@ -42,7 +42,6 @@
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -62,6 +61,11 @@
"//src/tint/lang/spirv/reader",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -82,7 +86,6 @@
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader:bench",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer:bench",
"//src/tint/lang/wgsl:bench",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
@@ -118,6 +121,11 @@
"//src/tint/lang/spirv/writer:bench",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer:bench",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -148,3 +156,8 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
diff --git a/src/tint/cmd/bench/BUILD.cmake b/src/tint/cmd/bench/BUILD.cmake
index f832dcc..778ef43 100644
--- a/src/tint/cmd/bench/BUILD.cmake
+++ b/src/tint/cmd/bench/BUILD.cmake
@@ -40,7 +40,6 @@
tint_lang_wgsl_program
tint_lang_wgsl_reader_bench
tint_lang_wgsl_sem
- tint_lang_wgsl_writer_bench
tint_lang_wgsl_bench
tint_utils_containers
tint_utils_diagnostic
@@ -85,6 +84,12 @@
)
endif(TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_bench_bench_cmd bench_cmd
+ tint_lang_wgsl_writer_bench
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
tint_target_set_output_name(tint_cmd_bench_bench_cmd bench_cmd "tint_benchmark")
################################################################################
@@ -108,7 +113,6 @@
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -133,3 +137,9 @@
tint_lang_spirv_reader
)
endif(TINT_BUILD_SPV_READER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_bench_bench bench
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
diff --git a/src/tint/cmd/bench/BUILD.gn b/src/tint/cmd/bench/BUILD.gn
index 28e2a82..9a49864 100644
--- a/src/tint/cmd/bench/BUILD.gn
+++ b/src/tint/cmd/bench/BUILD.gn
@@ -47,7 +47,6 @@
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -66,6 +65,10 @@
if (tint_build_spv_reader) {
deps += [ "${tint_src_dir}/lang/spirv/reader" ]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
if (tint_build_benchmarks) {
@@ -86,7 +89,6 @@
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader:bench",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer:bench",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -117,5 +119,9 @@
if (tint_build_spv_writer) {
deps += [ "${tint_src_dir}/lang/spirv/writer:bench" ]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer:bench" ]
+ }
}
}
diff --git a/src/tint/cmd/bench/bench.cc b/src/tint/cmd/bench/bench.cc
index 9ba891e..cf3869b 100644
--- a/src/tint/cmd/bench/bench.cc
+++ b/src/tint/cmd/bench/bench.cc
@@ -23,8 +23,12 @@
#include "src/tint/lang/spirv/reader/reader.h"
#endif
-#include "src/tint/lang/wgsl/reader/reader.h"
+#if TINT_BUILD_WGSL_WRITER
#include "src/tint/lang/wgsl/writer/writer.h"
+#endif
+
+#include "src/tint/lang/wgsl/reader/reader.h"
+
#include "src/tint/utils/text/string.h"
#include "src/tint/utils/text/string_stream.h"
@@ -117,7 +121,12 @@
#endif
}
if (tint::HasSuffix(path, ".spv")) {
-#if TINT_BUILD_SPV_READER
+#if !TINT_BUILD_SPV_READER
+ return Failure{"cannot load " + path + " as TINT_BUILD_SPV_READER is not enabled"};
+#elif !TINT_BUILD_WGSL_WRITER
+ return Failure{"cannot load " + path + " as TINT_BUILD_WGSL_WRITER is not enabled"};
+#else
+
auto spirv = ReadFile<uint32_t>(path);
if (spirv) {
auto program = tint::spirv::reader::Read(spirv.Get(), {});
@@ -131,8 +140,6 @@
return tint::Source::File(path, result->wgsl);
}
return spirv.Failure();
-#else
- return Failure{"cannot load " + path + " as TINT_BUILD_SPV_READER is not enabled"};
#endif
}
return Failure{"unsupported file extension: '" + name + "'"};
diff --git a/src/tint/cmd/common/BUILD.bazel b/src/tint/cmd/common/BUILD.bazel
index 5ff1ba3..acbed19 100644
--- a/src/tint/cmd/common/BUILD.bazel
+++ b/src/tint/cmd/common/BUILD.bazel
@@ -47,7 +47,6 @@
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -71,6 +70,11 @@
"@spirv_tools",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -122,6 +126,11 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
selects.config_setting_group(
name = "tint_build_spv_reader_or_tint_build_spv_writer",
match_any = [
diff --git a/src/tint/cmd/common/BUILD.cmake b/src/tint/cmd/common/BUILD.cmake
index 7bd7799..541126b 100644
--- a/src/tint/cmd/common/BUILD.cmake
+++ b/src/tint/cmd/common/BUILD.cmake
@@ -46,7 +46,6 @@
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -74,6 +73,12 @@
)
endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_common lib
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
################################################################################
# Target: tint_cmd_common_test
# Kind: test
diff --git a/src/tint/cmd/common/BUILD.gn b/src/tint/cmd/common/BUILD.gn
index c5178b9..e4ae6a7 100644
--- a/src/tint/cmd/common/BUILD.gn
+++ b/src/tint/cmd/common/BUILD.gn
@@ -50,7 +50,6 @@
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -76,6 +75,10 @@
"${tint_spirv_tools_dir}:spvtools_val",
]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
if (tint_build_unittests) {
tint_unittests_source_set("unittests") {
diff --git a/src/tint/cmd/loopy/BUILD.bazel b/src/tint/cmd/loopy/BUILD.bazel
index 8fe2f0d..5786898 100644
--- a/src/tint/cmd/loopy/BUILD.bazel
+++ b/src/tint/cmd/loopy/BUILD.bazel
@@ -47,7 +47,6 @@
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/reader/program_to_ir",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -90,6 +89,11 @@
"//src/tint/lang/spirv/writer/helpers",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -120,3 +124,8 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
diff --git a/src/tint/cmd/loopy/BUILD.cmake b/src/tint/cmd/loopy/BUILD.cmake
index 7d62dc5..2ef062d 100644
--- a/src/tint/cmd/loopy/BUILD.cmake
+++ b/src/tint/cmd/loopy/BUILD.cmake
@@ -48,7 +48,6 @@
tint_lang_wgsl_reader
tint_lang_wgsl_reader_program_to_ir
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -98,4 +97,10 @@
)
endif(TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_loopy_cmd cmd
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
tint_target_set_output_name(tint_cmd_loopy_cmd cmd "tint_loopy")
diff --git a/src/tint/cmd/loopy/BUILD.gn b/src/tint/cmd/loopy/BUILD.gn
index ea6a456..4c22886 100644
--- a/src/tint/cmd/loopy/BUILD.gn
+++ b/src/tint/cmd/loopy/BUILD.gn
@@ -47,7 +47,6 @@
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/reader/program_to_ir",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -92,4 +91,8 @@
"${tint_src_dir}/lang/spirv/writer/helpers",
]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
diff --git a/src/tint/cmd/loopy/main.cc b/src/tint/cmd/loopy/main.cc
index a12fbc6..005b8e7 100644
--- a/src/tint/cmd/loopy/main.cc
+++ b/src/tint/cmd/loopy/main.cc
@@ -231,12 +231,15 @@
/// Generate MSL code for a program.
/// @param program the program to generate
/// @returns true on success
-bool GenerateMsl(const tint::Program& program) {
-#if TINT_BUILD_MSL_WRITER
+bool GenerateMsl([[maybe_unused]] const tint::Program& program) {
+#if !TINT_BUILD_MSL_WRITER
+ std::cerr << "MSL writer not enabled in tint build" << std::endl;
+ return false;
+#else
// Remap resource numbers to a flat namespace.
// TODO(crbug.com/tint/1501): Do this via Options::BindingMap.
const tint::Program* input_program = &program;
- auto flattened = tint::writer::FlattenBindings(program);
+ auto flattened = tint::wgsl::FlattenBindings(program);
if (flattened) {
input_program = &*flattened;
}
@@ -257,11 +260,7 @@
}
return true;
-#else
- (void)program;
- std::cerr << "MSL writer not enabled in tint build" << std::endl;
- return false;
-#endif // TINT_BUILD_MSL_WRITER
+#endif
}
/// Generate HLSL code for a program.
diff --git a/src/tint/cmd/test/BUILD.bazel b/src/tint/cmd/test/BUILD.bazel
index 60aebb2..56f8230 100644
--- a/src/tint/cmd/test/BUILD.bazel
+++ b/src/tint/cmd/test/BUILD.bazel
@@ -38,7 +38,6 @@
"//src/tint/lang/core/type:test",
"//src/tint/lang/core:test",
"//src/tint/lang/spirv/ir:test",
- "//src/tint/lang/wgsl/ast/transform:test",
"//src/tint/lang/wgsl/ast:test",
"//src/tint/lang/wgsl/helpers:test",
"//src/tint/lang/wgsl/inspector:test",
@@ -48,7 +47,6 @@
"//src/tint/lang/wgsl/reader/program_to_ir:test",
"//src/tint/lang/wgsl/resolver:test",
"//src/tint/lang/wgsl/sem:test",
- "//src/tint/lang/wgsl/writer/ast_printer:test",
"//src/tint/lang/wgsl/writer/ir_to_program:test",
"//src/tint/lang/wgsl/writer/raise:test",
"//src/tint/lang/wgsl:test",
@@ -74,38 +72,68 @@
] + select({
":tint_build_glsl_writer": [
"//src/tint/lang/glsl/writer/ast_printer:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_glsl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
"//src/tint/lang/glsl/writer/ast_raise:test",
],
"//conditions:default": [],
}) + select({
":tint_build_hlsl_writer": [
"//src/tint/lang/hlsl/writer/ast_printer:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_hlsl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
"//src/tint/lang/hlsl/writer/ast_raise:test",
],
"//conditions:default": [],
}) + select({
":tint_build_msl_writer": [
"//src/tint/lang/msl/writer/ast_printer:test",
- "//src/tint/lang/msl/writer/ast_raise:test",
"//src/tint/lang/msl/writer/common:test",
"//src/tint/lang/msl/writer/printer:test",
],
"//conditions:default": [],
}) + select({
- ":tint_build_spv_reader": [
+ ":tint_build_msl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/msl/writer/ast_raise:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_spv_reader_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
"//src/tint/lang/spirv/reader/ast_lower:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_spv_reader_and_tint_build_wgsl_writer": [
"//src/tint/lang/spirv/reader/ast_parser:test",
],
"//conditions:default": [],
}) + select({
":tint_build_spv_writer": [
"//src/tint/lang/spirv/writer/ast_printer:test",
- "//src/tint/lang/spirv/writer/ast_raise:test",
"//src/tint/lang/spirv/writer/common:test",
"//src/tint/lang/spirv/writer/raise:test",
"//src/tint/lang/spirv/writer:test",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_spv_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/spirv/writer/ast_raise:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/ast/transform:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer/ast_printer:test",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -136,3 +164,68 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_glsl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_glsl_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_hlsl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_hlsl_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_msl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_msl_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_spv_reader_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_spv_reader",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_spv_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_spv_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_spv_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_spv_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/cmd/test/BUILD.cmake b/src/tint/cmd/test/BUILD.cmake
index 108f7af..7dd074a 100644
--- a/src/tint/cmd/test/BUILD.cmake
+++ b/src/tint/cmd/test/BUILD.cmake
@@ -39,7 +39,6 @@
tint_lang_core_type_test
tint_lang_core_test
tint_lang_spirv_ir_test
- tint_lang_wgsl_ast_transform_test
tint_lang_wgsl_ast_test
tint_lang_wgsl_helpers_test
tint_lang_wgsl_inspector_test
@@ -49,7 +48,6 @@
tint_lang_wgsl_reader_program_to_ir_test
tint_lang_wgsl_resolver_test
tint_lang_wgsl_sem_test
- tint_lang_wgsl_writer_ast_printer_test
tint_lang_wgsl_writer_ir_to_program_test
tint_lang_wgsl_writer_raise_test
tint_lang_wgsl_test
@@ -80,41 +78,78 @@
if(TINT_BUILD_GLSL_WRITER)
tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
tint_lang_glsl_writer_ast_printer_test
- tint_lang_glsl_writer_ast_raise_test
)
endif(TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
+ tint_lang_glsl_writer_ast_raise_test
+ )
+endif(TINT_BUILD_GLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
if(TINT_BUILD_HLSL_WRITER)
tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
tint_lang_hlsl_writer_ast_printer_test
- tint_lang_hlsl_writer_ast_raise_test
)
endif(TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
+ tint_lang_hlsl_writer_ast_raise_test
+ )
+endif(TINT_BUILD_HLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
if(TINT_BUILD_MSL_WRITER)
tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
tint_lang_msl_writer_ast_printer_test
- tint_lang_msl_writer_ast_raise_test
tint_lang_msl_writer_common_test
tint_lang_msl_writer_printer_test
)
endif(TINT_BUILD_MSL_WRITER)
-if(TINT_BUILD_SPV_READER)
+if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
+ tint_lang_msl_writer_ast_raise_test
+ )
+endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
tint_lang_spirv_reader_ast_lower_test
+ )
+endif(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
tint_lang_spirv_reader_ast_parser_test
)
-endif(TINT_BUILD_SPV_READER)
+endif(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_WRITER)
if(TINT_BUILD_SPV_WRITER)
tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
tint_lang_spirv_writer_ast_printer_test
- tint_lang_spirv_writer_ast_raise_test
tint_lang_spirv_writer_common_test
tint_lang_spirv_writer_raise_test
tint_lang_spirv_writer_test
)
endif(TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
+ tint_lang_spirv_writer_ast_raise_test
+ )
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
+ tint_lang_wgsl_ast_transform_test
+ )
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_test_test_cmd test_cmd
+ tint_lang_wgsl_writer_ast_printer_test
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
tint_target_set_output_name(tint_cmd_test_test_cmd test_cmd "tint_unittests")
diff --git a/src/tint/cmd/test/BUILD.gn b/src/tint/cmd/test/BUILD.gn
index 469cd7e..356b7043 100644
--- a/src/tint/cmd/test/BUILD.gn
+++ b/src/tint/cmd/test/BUILD.gn
@@ -46,7 +46,6 @@
"${tint_src_dir}/lang/spirv/ir:unittests",
"${tint_src_dir}/lang/wgsl:unittests",
"${tint_src_dir}/lang/wgsl/ast:unittests",
- "${tint_src_dir}/lang/wgsl/ast/transform:unittests",
"${tint_src_dir}/lang/wgsl/helpers:unittests",
"${tint_src_dir}/lang/wgsl/inspector:unittests",
"${tint_src_dir}/lang/wgsl/program:unittests",
@@ -55,7 +54,6 @@
"${tint_src_dir}/lang/wgsl/reader/program_to_ir:unittests",
"${tint_src_dir}/lang/wgsl/resolver:unittests",
"${tint_src_dir}/lang/wgsl/sem:unittests",
- "${tint_src_dir}/lang/wgsl/writer/ast_printer:unittests",
"${tint_src_dir}/lang/wgsl/writer/ir_to_program:unittests",
"${tint_src_dir}/lang/wgsl/writer/raise:unittests",
"${tint_src_dir}/utils/cli:unittests",
@@ -79,44 +77,66 @@
]
if (tint_build_glsl_writer) {
- deps += [
- "${tint_src_dir}/lang/glsl/writer/ast_printer:unittests",
- "${tint_src_dir}/lang/glsl/writer/ast_raise:unittests",
- ]
+ deps += [ "${tint_src_dir}/lang/glsl/writer/ast_printer:unittests" ]
+ }
+
+ if (tint_build_glsl_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/glsl/writer/ast_raise:unittests" ]
}
if (tint_build_hlsl_writer) {
- deps += [
- "${tint_src_dir}/lang/hlsl/writer/ast_printer:unittests",
- "${tint_src_dir}/lang/hlsl/writer/ast_raise:unittests",
- ]
+ deps += [ "${tint_src_dir}/lang/hlsl/writer/ast_printer:unittests" ]
+ }
+
+ if (tint_build_hlsl_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/hlsl/writer/ast_raise:unittests" ]
}
if (tint_build_msl_writer) {
deps += [
"${tint_src_dir}/lang/msl/writer/ast_printer:unittests",
- "${tint_src_dir}/lang/msl/writer/ast_raise:unittests",
"${tint_src_dir}/lang/msl/writer/common:unittests",
"${tint_src_dir}/lang/msl/writer/printer:unittests",
]
}
- if (tint_build_spv_reader) {
- deps += [
- "${tint_src_dir}/lang/spirv/reader/ast_lower:unittests",
- "${tint_src_dir}/lang/spirv/reader/ast_parser:unittests",
- ]
+ if (tint_build_msl_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/msl/writer/ast_raise:unittests" ]
+ }
+
+ if (tint_build_spv_reader && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/spirv/reader/ast_lower:unittests" ]
+ }
+
+ if (tint_build_spv_reader && tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/spirv/reader/ast_parser:unittests" ]
}
if (tint_build_spv_writer) {
deps += [
"${tint_src_dir}/lang/spirv/writer:unittests",
"${tint_src_dir}/lang/spirv/writer/ast_printer:unittests",
- "${tint_src_dir}/lang/spirv/writer/ast_raise:unittests",
"${tint_src_dir}/lang/spirv/writer/common:unittests",
"${tint_src_dir}/lang/spirv/writer/raise:unittests",
]
}
+
+ if (tint_build_spv_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/spirv/writer/ast_raise:unittests" ]
+ }
+
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/ast/transform:unittests" ]
+ }
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer/ast_printer:unittests" ]
+ }
configs += [ "${tint_src_dir}:tint_unittests_config" ]
if (build_with_chromium) {
diff --git a/src/tint/cmd/tint/BUILD.bazel b/src/tint/cmd/tint/BUILD.bazel
index d8183c6..730a127 100644
--- a/src/tint/cmd/tint/BUILD.bazel
+++ b/src/tint/cmd/tint/BUILD.bazel
@@ -48,7 +48,6 @@
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/reader/program_to_ir",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/cli",
"//src/tint/utils/command",
"//src/tint/utils/containers",
@@ -103,6 +102,11 @@
"//src/tint/lang/spirv/writer/helpers",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -133,6 +137,11 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
selects.config_setting_group(
name = "tint_build_spv_reader_or_tint_build_spv_writer",
match_any = [
diff --git a/src/tint/cmd/tint/BUILD.cmake b/src/tint/cmd/tint/BUILD.cmake
index ce94870..acc84bf 100644
--- a/src/tint/cmd/tint/BUILD.cmake
+++ b/src/tint/cmd/tint/BUILD.cmake
@@ -49,7 +49,6 @@
tint_lang_wgsl_reader
tint_lang_wgsl_reader_program_to_ir
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_cli
tint_utils_command
tint_utils_containers
@@ -114,4 +113,10 @@
)
endif(TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_cmd_tint_cmd cmd
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
tint_target_set_output_name(tint_cmd_tint_cmd cmd "tint")
diff --git a/src/tint/cmd/tint/BUILD.gn b/src/tint/cmd/tint/BUILD.gn
index c72141d..b2bc2b4 100644
--- a/src/tint/cmd/tint/BUILD.gn
+++ b/src/tint/cmd/tint/BUILD.gn
@@ -48,7 +48,6 @@
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/reader/program_to_ir",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/cli",
"${tint_src_dir}/utils/command",
"${tint_src_dir}/utils/containers",
@@ -109,4 +108,8 @@
"${tint_src_dir}/lang/spirv/writer/helpers",
]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
diff --git a/src/tint/cmd/tint/main.cc b/src/tint/cmd/tint/main.cc
index 1506bce..b96517c 100644
--- a/src/tint/cmd/tint/main.cc
+++ b/src/tint/cmd/tint/main.cc
@@ -675,12 +675,16 @@
/// @param program the program to generate
/// @param options the options that Tint was invoked with
/// @returns true on success
-bool GenerateMsl(const tint::Program& program, const Options& options) {
-#if TINT_BUILD_MSL_WRITER
+bool GenerateMsl([[maybe_unused]] const tint::Program& program,
+ [[maybe_unused]] const Options& options) {
+#if !TINT_BUILD_MSL_WRITER
+ std::cerr << "MSL writer not enabled in tint build" << std::endl;
+ return false;
+#else
// Remap resource numbers to a flat namespace.
// TODO(crbug.com/tint/1501): Do this via Options::BindingMap.
const tint::Program* input_program = &program;
- auto flattened = tint::writer::FlattenBindings(program);
+ auto flattened = tint::wgsl::FlattenBindings(program);
if (flattened) {
input_program = &*flattened;
}
@@ -752,11 +756,6 @@
}
return true;
-#else
- (void)program;
- (void)options;
- std::cerr << "MSL writer not enabled in tint build" << std::endl;
- return false;
#endif // TINT_BUILD_MSL_WRITER
}
diff --git a/src/tint/fuzzers/tint_common_fuzzer.cc b/src/tint/fuzzers/tint_common_fuzzer.cc
index 582b259..07df07b 100644
--- a/src/tint/fuzzers/tint_common_fuzzer.cc
+++ b/src/tint/fuzzers/tint_common_fuzzer.cc
@@ -353,7 +353,7 @@
// Remap resource numbers to a flat namespace.
// TODO(crbug.com/tint/1501): Do this via Options::BindingMap.
- if (auto flattened = tint::writer::FlattenBindings(program)) {
+ if (auto flattened = tint::wgsl::FlattenBindings(program)) {
program = std::move(*flattened);
}
diff --git a/src/tint/fuzzers/tint_concurrency_fuzzer.cc b/src/tint/fuzzers/tint_concurrency_fuzzer.cc
index acd51eb..c09ab46 100644
--- a/src/tint/fuzzers/tint_concurrency_fuzzer.cc
+++ b/src/tint/fuzzers/tint_concurrency_fuzzer.cc
@@ -118,7 +118,7 @@
#if TINT_BUILD_MSL_WRITER
case Writer::kMSL: {
// Remap resource numbers to a flat namespace.
- if (auto flattened = tint::writer::FlattenBindings(program)) {
+ if (auto flattened = tint::wgsl::FlattenBindings(program)) {
(void)tint::msl::writer::Generate(flattened.value(), {});
}
break;
diff --git a/src/tint/lang/core/ir/transform/BUILD.bazel b/src/tint/lang/core/ir/transform/BUILD.bazel
index 62c2113..456c1ec 100644
--- a/src/tint/lang/core/ir/transform/BUILD.bazel
+++ b/src/tint/lang/core/ir/transform/BUILD.bazel
@@ -111,6 +111,8 @@
"direct_variable_access_wgsl_test.cc",
],
"//conditions:default": [],
+ }) + select({
+ "//conditions:default": [],
}),
deps = [
"//src/tint/api/common",
@@ -127,7 +129,6 @@
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/reader/program_to_ir",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/lang/wgsl/writer/ir_to_program",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
@@ -143,7 +144,14 @@
"//src/tint/utils/text",
"//src/tint/utils/traits",
"@gtest",
- ],
+ ] + select({
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
diff --git a/src/tint/lang/core/ir/transform/BUILD.cmake b/src/tint/lang/core/ir/transform/BUILD.cmake
index c0b7f14..acafae7 100644
--- a/src/tint/lang/core/ir/transform/BUILD.cmake
+++ b/src/tint/lang/core/ir/transform/BUILD.cmake
@@ -121,7 +121,6 @@
tint_lang_wgsl_reader
tint_lang_wgsl_reader_program_to_ir
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_lang_wgsl_writer_ir_to_program
tint_utils_containers
tint_utils_diagnostic
@@ -147,3 +146,9 @@
"lang/core/ir/transform/direct_variable_access_wgsl_test.cc"
)
endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_core_ir_transform_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
diff --git a/src/tint/lang/core/ir/transform/BUILD.gn b/src/tint/lang/core/ir/transform/BUILD.gn
index 6d2212e..992ac8e 100644
--- a/src/tint/lang/core/ir/transform/BUILD.gn
+++ b/src/tint/lang/core/ir/transform/BUILD.gn
@@ -123,7 +123,6 @@
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/reader/program_to_ir",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/lang/wgsl/writer/ir_to_program",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
@@ -143,5 +142,9 @@
if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
sources += [ "direct_variable_access_wgsl_test.cc" ]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
diff --git a/src/tint/lang/core/ir/transform/direct_variable_access_test.cc b/src/tint/lang/core/ir/transform/direct_variable_access_test.cc
index 72f57c9..4c1d25c 100644
--- a/src/tint/lang/core/ir/transform/direct_variable_access_test.cc
+++ b/src/tint/lang/core/ir/transform/direct_variable_access_test.cc
@@ -22,11 +22,6 @@
#include "src/tint/lang/core/type/pointer.h"
#include "src/tint/lang/core/type/struct.h"
-#include "src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.h"
-#include "src/tint/lang/wgsl/reader/reader.h"
-#include "src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.h"
-#include "src/tint/lang/wgsl/writer/writer.h"
-
namespace tint::core::ir::transform {
namespace {
diff --git a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
index 5c4343b..8263553 100644
--- a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
@@ -278,7 +278,7 @@
ASTPrinter::~ASTPrinter() = default;
bool ASTPrinter::Generate() {
- if (!tint::writer::CheckSupportedExtensions(
+ if (!tint::wgsl::CheckSupportedExtensions(
"GLSL", builder_.AST(), diagnostics_,
Vector{
wgsl::Extension::kChromiumDisableUniformityAnalysis,
@@ -1534,7 +1534,7 @@
if (auto* array_index = arg(Usage::kArrayIndex)) {
// Array index needs to be appended to the coordinates.
param_coords =
- tint::writer::AppendVector(&builder_, param_coords, array_index)->Declaration();
+ tint::wgsl::AppendVector(&builder_, param_coords, array_index)->Declaration();
}
// GLSL requires Dref to be appended to the coordinates, *unless* it's
@@ -1551,8 +1551,7 @@
// append zero here.
depth_ref = CreateF32Zero(builder_.Sem().Get(param_coords)->Stmt());
}
- param_coords =
- tint::writer::AppendVector(&builder_, param_coords, depth_ref)->Declaration();
+ param_coords = tint::wgsl::AppendVector(&builder_, param_coords, depth_ref)->Declaration();
}
emit_expr_as_signed(param_coords);
diff --git a/src/tint/lang/glsl/writer/ast_raise/BUILD.bazel b/src/tint/lang/glsl/writer/ast_raise/BUILD.bazel
index e0b9f70..667db1b 100644
--- a/src/tint/lang/glsl/writer/ast_raise/BUILD.bazel
+++ b/src/tint/lang/glsl/writer/ast_raise/BUILD.bazel
@@ -85,11 +85,9 @@
"//src/tint/lang/wgsl",
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/ast/transform",
- "//src/tint/lang/wgsl/ast/transform:test",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -109,6 +107,16 @@
"//src/tint/lang/glsl/writer/ast_raise",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/ast/transform:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -119,3 +127,29 @@
actual = "//src/tint:tint_build_glsl_writer_true",
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_glsl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_glsl_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/glsl/writer/ast_raise/BUILD.cfg b/src/tint/lang/glsl/writer/ast_raise/BUILD.cfg
index 7459430..375c295 100644
--- a/src/tint/lang/glsl/writer/ast_raise/BUILD.cfg
+++ b/src/tint/lang/glsl/writer/ast_raise/BUILD.cfg
@@ -1,3 +1,6 @@
{
- "condition": "tint_build_glsl_writer"
+ "condition": "tint_build_glsl_writer",
+ "test": {
+ "condition": "tint_build_wgsl_reader && tint_build_wgsl_writer",
+ }
}
diff --git a/src/tint/lang/glsl/writer/ast_raise/BUILD.cmake b/src/tint/lang/glsl/writer/ast_raise/BUILD.cmake
index 0666ae3..38f5803 100644
--- a/src/tint/lang/glsl/writer/ast_raise/BUILD.cmake
+++ b/src/tint/lang/glsl/writer/ast_raise/BUILD.cmake
@@ -66,11 +66,11 @@
)
endif(TINT_BUILD_GLSL_WRITER)
-if(TINT_BUILD_GLSL_WRITER)
+if(TINT_BUILD_GLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_glsl_writer_ast_raise_test
# Kind: test
-# Condition: TINT_BUILD_GLSL_WRITER
+# Condition: TINT_BUILD_GLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_glsl_writer_ast_raise_test test
lang/glsl/writer/ast_raise/combine_samplers_test.cc
@@ -89,11 +89,9 @@
tint_lang_wgsl
tint_lang_wgsl_ast
tint_lang_wgsl_ast_transform
- tint_lang_wgsl_ast_transform_test
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -119,4 +117,16 @@
)
endif(TINT_BUILD_GLSL_WRITER)
-endif(TINT_BUILD_GLSL_WRITER)
\ No newline at end of file
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_glsl_writer_ast_raise_test test
+ tint_lang_wgsl_ast_transform_test
+ )
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_glsl_writer_ast_raise_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_GLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/glsl/writer/ast_raise/BUILD.gn b/src/tint/lang/glsl/writer/ast_raise/BUILD.gn
index 1c0f30d..a3b7671 100644
--- a/src/tint/lang/glsl/writer/ast_raise/BUILD.gn
+++ b/src/tint/lang/glsl/writer/ast_raise/BUILD.gn
@@ -69,7 +69,8 @@
}
}
if (tint_build_unittests) {
- if (tint_build_glsl_writer) {
+ if (tint_build_glsl_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
tint_unittests_source_set("unittests") {
sources = [
"combine_samplers_test.cc",
@@ -88,11 +89,9 @@
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/ast/transform",
- "${tint_src_dir}/lang/wgsl/ast/transform:unittests",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -111,6 +110,14 @@
if (tint_build_glsl_writer) {
deps += [ "${tint_src_dir}/lang/glsl/writer/ast_raise" ]
}
+
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/ast/transform:unittests" ]
+ }
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
}
diff --git a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
index f19e36d..94c372a 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
@@ -337,7 +337,7 @@
ASTPrinter::~ASTPrinter() = default;
bool ASTPrinter::Generate() {
- if (!tint::writer::CheckSupportedExtensions(
+ if (!tint::wgsl::CheckSupportedExtensions(
"HLSL", builder_.AST(), diagnostics_,
Vector{
wgsl::Extension::kChromiumDisableUniformityAnalysis,
@@ -2842,13 +2842,13 @@
zero, i32, core::EvaluationStage::kRuntime, stmt,
/* constant_value */ nullptr,
/* has_side_effects */ false));
- auto* packed = tint::writer::AppendVector(&builder_, vector, zero);
+ auto* packed = tint::wgsl::AppendVector(&builder_, vector, zero);
return EmitExpression(out, packed->Declaration());
};
auto emit_vector_appended_with_level = [&](const ast::Expression* vector) {
if (auto* level = arg(Usage::kLevel)) {
- auto* packed = tint::writer::AppendVector(&builder_, vector, level);
+ auto* packed = tint::wgsl::AppendVector(&builder_, vector, level);
return EmitExpression(out, packed->Declaration());
}
return emit_vector_appended_with_i32_zero(vector);
@@ -2856,7 +2856,7 @@
if (auto* array_index = arg(Usage::kArrayIndex)) {
// Array index needs to be appended to the coordinates.
- auto* packed = tint::writer::AppendVector(&builder_, param_coords, array_index);
+ auto* packed = tint::wgsl::AppendVector(&builder_, param_coords, array_index);
if (pack_level_in_coords) {
// Then mip level needs to be appended to the coordinates.
if (!emit_vector_appended_with_level(packed->Declaration())) {
diff --git a/src/tint/lang/hlsl/writer/ast_raise/BUILD.bazel b/src/tint/lang/hlsl/writer/ast_raise/BUILD.bazel
index fd49ad8..7be8d92 100644
--- a/src/tint/lang/hlsl/writer/ast_raise/BUILD.bazel
+++ b/src/tint/lang/hlsl/writer/ast_raise/BUILD.bazel
@@ -89,11 +89,9 @@
"//src/tint/lang/wgsl",
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/ast/transform",
- "//src/tint/lang/wgsl/ast/transform:test",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -113,6 +111,16 @@
"//src/tint/lang/hlsl/writer/ast_raise",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/ast/transform:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -123,3 +131,29 @@
actual = "//src/tint:tint_build_hlsl_writer_true",
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_hlsl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_hlsl_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/hlsl/writer/ast_raise/BUILD.cfg b/src/tint/lang/hlsl/writer/ast_raise/BUILD.cfg
index 31b4636..dd6ef8b 100644
--- a/src/tint/lang/hlsl/writer/ast_raise/BUILD.cfg
+++ b/src/tint/lang/hlsl/writer/ast_raise/BUILD.cfg
@@ -1,3 +1,6 @@
{
- "condition": "tint_build_hlsl_writer"
+ "condition": "tint_build_hlsl_writer",
+ "test": {
+ "condition": "tint_build_wgsl_reader && tint_build_wgsl_writer",
+ }
}
diff --git a/src/tint/lang/hlsl/writer/ast_raise/BUILD.cmake b/src/tint/lang/hlsl/writer/ast_raise/BUILD.cmake
index 97916d3..774aa42 100644
--- a/src/tint/lang/hlsl/writer/ast_raise/BUILD.cmake
+++ b/src/tint/lang/hlsl/writer/ast_raise/BUILD.cmake
@@ -69,11 +69,11 @@
)
endif(TINT_BUILD_HLSL_WRITER)
-if(TINT_BUILD_HLSL_WRITER)
+if(TINT_BUILD_HLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_hlsl_writer_ast_raise_test
# Kind: test
-# Condition: TINT_BUILD_HLSL_WRITER
+# Condition: TINT_BUILD_HLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_hlsl_writer_ast_raise_test test
lang/hlsl/writer/ast_raise/calculate_array_length_test.cc
@@ -93,11 +93,9 @@
tint_lang_wgsl
tint_lang_wgsl_ast
tint_lang_wgsl_ast_transform
- tint_lang_wgsl_ast_transform_test
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -123,4 +121,16 @@
)
endif(TINT_BUILD_HLSL_WRITER)
-endif(TINT_BUILD_HLSL_WRITER)
\ No newline at end of file
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_hlsl_writer_ast_raise_test test
+ tint_lang_wgsl_ast_transform_test
+ )
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_hlsl_writer_ast_raise_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_HLSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/hlsl/writer/ast_raise/BUILD.gn b/src/tint/lang/hlsl/writer/ast_raise/BUILD.gn
index b99fd85..a3516b8 100644
--- a/src/tint/lang/hlsl/writer/ast_raise/BUILD.gn
+++ b/src/tint/lang/hlsl/writer/ast_raise/BUILD.gn
@@ -72,7 +72,8 @@
}
}
if (tint_build_unittests) {
- if (tint_build_hlsl_writer) {
+ if (tint_build_hlsl_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
tint_unittests_source_set("unittests") {
sources = [
"calculate_array_length_test.cc",
@@ -92,11 +93,9 @@
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/ast/transform",
- "${tint_src_dir}/lang/wgsl/ast/transform:unittests",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -115,6 +114,14 @@
if (tint_build_hlsl_writer) {
deps += [ "${tint_src_dir}/lang/hlsl/writer/ast_raise" ]
}
+
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/ast/transform:unittests" ]
+ }
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
}
diff --git a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
index 254e2b2..fde3e46 100644
--- a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
@@ -253,7 +253,7 @@
ASTPrinter::~ASTPrinter() = default;
bool ASTPrinter::Generate() {
- if (!tint::writer::CheckSupportedExtensions(
+ if (!tint::wgsl::CheckSupportedExtensions(
"MSL", builder_.AST(), diagnostics_,
Vector{
wgsl::Extension::kChromiumDisableUniformityAnalysis,
diff --git a/src/tint/lang/msl/writer/ast_raise/BUILD.bazel b/src/tint/lang/msl/writer/ast_raise/BUILD.bazel
index 5a68d70..b347907 100644
--- a/src/tint/lang/msl/writer/ast_raise/BUILD.bazel
+++ b/src/tint/lang/msl/writer/ast_raise/BUILD.bazel
@@ -83,12 +83,10 @@
"//src/tint/lang/wgsl",
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/ast/transform",
- "//src/tint/lang/wgsl/ast/transform:test",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/resolver",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -108,6 +106,16 @@
"//src/tint/lang/msl/writer/ast_raise",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/ast/transform:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -118,3 +126,29 @@
actual = "//src/tint:tint_build_msl_writer_true",
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_msl_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_msl_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/msl/writer/ast_raise/BUILD.cfg b/src/tint/lang/msl/writer/ast_raise/BUILD.cfg
index 1c7e256..98cff52 100644
--- a/src/tint/lang/msl/writer/ast_raise/BUILD.cfg
+++ b/src/tint/lang/msl/writer/ast_raise/BUILD.cfg
@@ -1,3 +1,6 @@
{
- "condition": "tint_build_msl_writer"
+ "condition": "tint_build_msl_writer",
+ "test": {
+ "condition": "tint_build_wgsl_reader && tint_build_wgsl_writer",
+ }
}
diff --git a/src/tint/lang/msl/writer/ast_raise/BUILD.cmake b/src/tint/lang/msl/writer/ast_raise/BUILD.cmake
index 386768b..9a44507 100644
--- a/src/tint/lang/msl/writer/ast_raise/BUILD.cmake
+++ b/src/tint/lang/msl/writer/ast_raise/BUILD.cmake
@@ -65,11 +65,11 @@
)
endif(TINT_BUILD_MSL_WRITER)
-if(TINT_BUILD_MSL_WRITER)
+if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_msl_writer_ast_raise_test
# Kind: test
-# Condition: TINT_BUILD_MSL_WRITER
+# Condition: TINT_BUILD_MSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_msl_writer_ast_raise_test test
lang/msl/writer/ast_raise/module_scope_var_to_entry_point_param_test.cc
@@ -87,12 +87,10 @@
tint_lang_wgsl
tint_lang_wgsl_ast
tint_lang_wgsl_ast_transform
- tint_lang_wgsl_ast_transform_test
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_resolver
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -118,4 +116,16 @@
)
endif(TINT_BUILD_MSL_WRITER)
-endif(TINT_BUILD_MSL_WRITER)
\ No newline at end of file
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_msl_writer_ast_raise_test test
+ tint_lang_wgsl_ast_transform_test
+ )
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_msl_writer_ast_raise_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/msl/writer/ast_raise/BUILD.gn b/src/tint/lang/msl/writer/ast_raise/BUILD.gn
index 535da24..02bcc03 100644
--- a/src/tint/lang/msl/writer/ast_raise/BUILD.gn
+++ b/src/tint/lang/msl/writer/ast_raise/BUILD.gn
@@ -68,7 +68,8 @@
}
}
if (tint_build_unittests) {
- if (tint_build_msl_writer) {
+ if (tint_build_msl_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
tint_unittests_source_set("unittests") {
sources = [
"module_scope_var_to_entry_point_param_test.cc",
@@ -86,12 +87,10 @@
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/ast/transform",
- "${tint_src_dir}/lang/wgsl/ast/transform:unittests",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/resolver",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -110,6 +109,14 @@
if (tint_build_msl_writer) {
deps += [ "${tint_src_dir}/lang/msl/writer/ast_raise" ]
}
+
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/ast/transform:unittests" ]
+ }
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
}
diff --git a/src/tint/lang/spirv/reader/ast_lower/BUILD.bazel b/src/tint/lang/spirv/reader/ast_lower/BUILD.bazel
index 37651a6..c990ff6 100644
--- a/src/tint/lang/spirv/reader/ast_lower/BUILD.bazel
+++ b/src/tint/lang/spirv/reader/ast_lower/BUILD.bazel
@@ -83,13 +83,11 @@
"//src/tint/lang/wgsl",
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/ast/transform",
- "//src/tint/lang/wgsl/ast/transform:test",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/reader/parser",
"//src/tint/lang/wgsl/resolver",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -109,6 +107,16 @@
"//src/tint/lang/spirv/reader/ast_lower",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/ast/transform:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -119,3 +127,29 @@
actual = "//src/tint:tint_build_spv_reader_true",
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_spv_reader_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_spv_reader",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/spirv/reader/ast_lower/BUILD.cfg b/src/tint/lang/spirv/reader/ast_lower/BUILD.cfg
index a460fd5..18f78f3 100644
--- a/src/tint/lang/spirv/reader/ast_lower/BUILD.cfg
+++ b/src/tint/lang/spirv/reader/ast_lower/BUILD.cfg
@@ -1,3 +1,6 @@
{
- "condition": "tint_build_spv_reader"
+ "condition": "tint_build_spv_reader",
+ "test": {
+ "condition": "tint_build_wgsl_reader && tint_build_wgsl_writer",
+ }
}
diff --git a/src/tint/lang/spirv/reader/ast_lower/BUILD.cmake b/src/tint/lang/spirv/reader/ast_lower/BUILD.cmake
index f7a4893..628d539 100644
--- a/src/tint/lang/spirv/reader/ast_lower/BUILD.cmake
+++ b/src/tint/lang/spirv/reader/ast_lower/BUILD.cmake
@@ -65,11 +65,11 @@
)
endif(TINT_BUILD_SPV_READER)
-if(TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_spirv_reader_ast_lower_test
# Kind: test
-# Condition: TINT_BUILD_SPV_READER
+# Condition: TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_spirv_reader_ast_lower_test test
lang/spirv/reader/ast_lower/atomics_test.cc
@@ -87,13 +87,11 @@
tint_lang_wgsl
tint_lang_wgsl_ast
tint_lang_wgsl_ast_transform
- tint_lang_wgsl_ast_transform_test
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_reader_parser
tint_lang_wgsl_resolver
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -119,4 +117,16 @@
)
endif(TINT_BUILD_SPV_READER)
-endif(TINT_BUILD_SPV_READER)
\ No newline at end of file
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_spirv_reader_ast_lower_test test
+ tint_lang_wgsl_ast_transform_test
+ )
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_spirv_reader_ast_lower_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/reader/ast_lower/BUILD.gn b/src/tint/lang/spirv/reader/ast_lower/BUILD.gn
index 7dff3c9..c35aac9 100644
--- a/src/tint/lang/spirv/reader/ast_lower/BUILD.gn
+++ b/src/tint/lang/spirv/reader/ast_lower/BUILD.gn
@@ -68,7 +68,8 @@
}
}
if (tint_build_unittests) {
- if (tint_build_spv_reader) {
+ if (tint_build_spv_reader && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
tint_unittests_source_set("unittests") {
sources = [
"atomics_test.cc",
@@ -86,13 +87,11 @@
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/ast/transform",
- "${tint_src_dir}/lang/wgsl/ast/transform:unittests",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/reader/parser",
"${tint_src_dir}/lang/wgsl/resolver",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -111,6 +110,14 @@
if (tint_build_spv_reader) {
deps += [ "${tint_src_dir}/lang/spirv/reader/ast_lower" ]
}
+
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/ast/transform:unittests" ]
+ }
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
}
diff --git a/src/tint/lang/spirv/reader/ast_parser/BUILD.bazel b/src/tint/lang/spirv/reader/ast_parser/BUILD.bazel
index 4a97ba1..70e4340 100644
--- a/src/tint/lang/spirv/reader/ast_parser/BUILD.bazel
+++ b/src/tint/lang/spirv/reader/ast_parser/BUILD.bazel
@@ -138,7 +138,6 @@
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer/ast_printer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/generator",
@@ -166,6 +165,11 @@
"@spirv_tools",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer/ast_printer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -181,6 +185,11 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
selects.config_setting_group(
name = "tint_build_spv_reader_or_tint_build_spv_writer",
match_any = [
@@ -189,3 +198,11 @@
],
)
+selects.config_setting_group(
+ name = "tint_build_spv_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_spv_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/spirv/reader/ast_parser/BUILD.cfg b/src/tint/lang/spirv/reader/ast_parser/BUILD.cfg
index a460fd5..c15bc20 100644
--- a/src/tint/lang/spirv/reader/ast_parser/BUILD.cfg
+++ b/src/tint/lang/spirv/reader/ast_parser/BUILD.cfg
@@ -1,3 +1,6 @@
{
- "condition": "tint_build_spv_reader"
+ "condition": "tint_build_spv_reader",
+ "test": {
+ "condition": "tint_build_wgsl_writer",
+ }
}
diff --git a/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake b/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake
index c8b5c9d..84c427f 100644
--- a/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake
+++ b/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake
@@ -91,11 +91,11 @@
endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
endif(TINT_BUILD_SPV_READER)
-if(TINT_BUILD_SPV_READER)
+if(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_spirv_reader_ast_parser_test
# Kind: test
-# Condition: TINT_BUILD_SPV_READER
+# Condition: TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_spirv_reader_ast_parser_test test
lang/spirv/reader/ast_parser/ast_parser_test.cc
@@ -144,7 +144,6 @@
tint_lang_wgsl_ast
tint_lang_wgsl_program
tint_lang_wgsl_sem
- tint_lang_wgsl_writer_ast_printer
tint_utils_containers
tint_utils_diagnostic
tint_utils_generator
@@ -179,4 +178,10 @@
)
endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
-endif(TINT_BUILD_SPV_READER)
\ No newline at end of file
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_spirv_reader_ast_parser_test test
+ tint_lang_wgsl_writer_ast_printer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_SPV_READER AND TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/reader/ast_parser/BUILD.gn b/src/tint/lang/spirv/reader/ast_parser/BUILD.gn
index 3035275..d8d6256 100644
--- a/src/tint/lang/spirv/reader/ast_parser/BUILD.gn
+++ b/src/tint/lang/spirv/reader/ast_parser/BUILD.gn
@@ -95,7 +95,7 @@
}
}
if (tint_build_unittests) {
- if (tint_build_spv_reader) {
+ if (tint_build_spv_reader && tint_build_wgsl_writer) {
tint_unittests_source_set("unittests") {
sources = [
"ast_parser_test.cc",
@@ -144,7 +144,6 @@
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer/ast_printer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/generator",
@@ -175,6 +174,10 @@
"${tint_spirv_tools_dir}:spvtools_val",
]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer/ast_printer" ]
+ }
public_configs = [ "${tint_spirv_tools_dir}/:spvtools_internal_config" ]
}
}
diff --git a/src/tint/lang/spirv/writer/ast_printer/builder.cc b/src/tint/lang/spirv/writer/ast_printer/builder.cc
index 1a57747..0ebb922 100644
--- a/src/tint/lang/spirv/writer/ast_printer/builder.cc
+++ b/src/tint/lang/spirv/writer/ast_printer/builder.cc
@@ -260,7 +260,7 @@
Builder::~Builder() = default;
bool Builder::Build() {
- if (!tint::writer::CheckSupportedExtensions(
+ if (!tint::wgsl::CheckSupportedExtensions(
"SPIR-V", builder_.AST(), builder_.Diagnostics(),
Vector{
wgsl::Extension::kChromiumDisableUniformityAnalysis,
@@ -2754,8 +2754,8 @@
auto append_coords_to_spirv_params = [&]() -> bool {
if (auto* array_index = arg(Usage::kArrayIndex)) {
// Array index needs to be appended to the coordinates.
- auto* packed = tint::writer::AppendVector(&builder_, arg(Usage::kCoords)->Declaration(),
- array_index->Declaration());
+ auto* packed = tint::wgsl::AppendVector(&builder_, arg(Usage::kCoords)->Declaration(),
+ array_index->Declaration());
auto param = GenerateExpression(packed);
if (param == 0) {
return false;
diff --git a/src/tint/lang/spirv/writer/ast_raise/BUILD.bazel b/src/tint/lang/spirv/writer/ast_raise/BUILD.bazel
index b68aec9..5d8260a 100644
--- a/src/tint/lang/spirv/writer/ast_raise/BUILD.bazel
+++ b/src/tint/lang/spirv/writer/ast_raise/BUILD.bazel
@@ -89,11 +89,9 @@
"//src/tint/lang/wgsl",
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/ast/transform",
- "//src/tint/lang/wgsl/ast/transform:test",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -113,6 +111,16 @@
"//src/tint/lang/spirv/writer/ast_raise",
],
"//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/ast/transform:test",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
}),
copts = COPTS,
visibility = ["//visibility:public"],
@@ -123,3 +131,29 @@
actual = "//src/tint:tint_build_spv_writer_true",
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_spv_writer_and_tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_spv_writer",
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/spirv/writer/ast_raise/BUILD.cfg b/src/tint/lang/spirv/writer/ast_raise/BUILD.cfg
index 0a24987..54005ef 100644
--- a/src/tint/lang/spirv/writer/ast_raise/BUILD.cfg
+++ b/src/tint/lang/spirv/writer/ast_raise/BUILD.cfg
@@ -1,3 +1,6 @@
{
- "condition": "tint_build_spv_writer"
+ "condition": "tint_build_spv_writer",
+ "test": {
+ "condition": "tint_build_wgsl_reader && tint_build_wgsl_writer",
+ }
}
diff --git a/src/tint/lang/spirv/writer/ast_raise/BUILD.cmake b/src/tint/lang/spirv/writer/ast_raise/BUILD.cmake
index b36edc2..c9679ee 100644
--- a/src/tint/lang/spirv/writer/ast_raise/BUILD.cmake
+++ b/src/tint/lang/spirv/writer/ast_raise/BUILD.cmake
@@ -69,11 +69,11 @@
)
endif(TINT_BUILD_SPV_WRITER)
-if(TINT_BUILD_SPV_WRITER)
+if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_spirv_writer_ast_raise_test
# Kind: test
-# Condition: TINT_BUILD_SPV_WRITER
+# Condition: TINT_BUILD_SPV_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_spirv_writer_ast_raise_test test
lang/spirv/writer/ast_raise/clamp_frag_depth_test.cc
@@ -93,11 +93,9 @@
tint_lang_wgsl
tint_lang_wgsl_ast
tint_lang_wgsl_ast_transform
- tint_lang_wgsl_ast_transform_test
tint_lang_wgsl_program
tint_lang_wgsl_reader
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -123,4 +121,16 @@
)
endif(TINT_BUILD_SPV_WRITER)
-endif(TINT_BUILD_SPV_WRITER)
\ No newline at end of file
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_spirv_writer_ast_raise_test test
+ tint_lang_wgsl_ast_transform_test
+ )
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_spirv_writer_ast_raise_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/ast_raise/BUILD.gn b/src/tint/lang/spirv/writer/ast_raise/BUILD.gn
index 595b0ab..9147ed0 100644
--- a/src/tint/lang/spirv/writer/ast_raise/BUILD.gn
+++ b/src/tint/lang/spirv/writer/ast_raise/BUILD.gn
@@ -72,7 +72,8 @@
}
}
if (tint_build_unittests) {
- if (tint_build_spv_writer) {
+ if (tint_build_spv_writer && tint_build_wgsl_reader &&
+ tint_build_wgsl_writer) {
tint_unittests_source_set("unittests") {
sources = [
"clamp_frag_depth_test.cc",
@@ -92,11 +93,9 @@
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/ast/transform",
- "${tint_src_dir}/lang/wgsl/ast/transform:unittests",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -115,6 +114,14 @@
if (tint_build_spv_writer) {
deps += [ "${tint_src_dir}/lang/spirv/writer/ast_raise" ]
}
+
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/ast/transform:unittests" ]
+ }
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
}
diff --git a/src/tint/lang/wgsl/BUILD.bazel b/src/tint/lang/wgsl/BUILD.bazel
index 20c24b6..a997f49 100644
--- a/src/tint/lang/wgsl/BUILD.bazel
+++ b/src/tint/lang/wgsl/BUILD.bazel
@@ -64,6 +64,8 @@
"ir_roundtrip_test.cc",
],
"//conditions:default": [],
+ }) + select({
+ "//conditions:default": [],
}),
deps = [
"//src/tint/api/common",
@@ -80,7 +82,6 @@
"//src/tint/lang/wgsl/reader/program_to_ir",
"//src/tint/lang/wgsl/resolver",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/lang/wgsl/writer/ir_to_program",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
@@ -96,7 +97,14 @@
"//src/tint/utils/text",
"//src/tint/utils/traits",
"@gtest",
- ],
+ ] + select({
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
diff --git a/src/tint/lang/wgsl/BUILD.cmake b/src/tint/lang/wgsl/BUILD.cmake
index 4b8db03..324699b 100644
--- a/src/tint/lang/wgsl/BUILD.cmake
+++ b/src/tint/lang/wgsl/BUILD.cmake
@@ -85,7 +85,6 @@
tint_lang_wgsl_reader_program_to_ir
tint_lang_wgsl_resolver
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_lang_wgsl_writer_ir_to_program
tint_utils_containers
tint_utils_diagnostic
@@ -112,6 +111,12 @@
)
endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_wgsl_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
################################################################################
# Target: tint_lang_wgsl_bench
# Kind: bench
diff --git a/src/tint/lang/wgsl/BUILD.gn b/src/tint/lang/wgsl/BUILD.gn
index 6d90e96..cc15660 100644
--- a/src/tint/lang/wgsl/BUILD.gn
+++ b/src/tint/lang/wgsl/BUILD.gn
@@ -76,7 +76,6 @@
"${tint_src_dir}/lang/wgsl/reader/program_to_ir",
"${tint_src_dir}/lang/wgsl/resolver",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/lang/wgsl/writer/ir_to_program",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
@@ -96,6 +95,10 @@
if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
sources += [ "ir_roundtrip_test.cc" ]
}
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
if (tint_build_benchmarks) {
diff --git a/src/tint/lang/wgsl/ast/BUILD.bazel b/src/tint/lang/wgsl/ast/BUILD.bazel
index 3bed5ae..c8b2eb9 100644
--- a/src/tint/lang/wgsl/ast/BUILD.bazel
+++ b/src/tint/lang/wgsl/ast/BUILD.bazel
@@ -256,7 +256,6 @@
"location_attribute_test.cc",
"loop_statement_test.cc",
"member_accessor_expression_test.cc",
- "module_clone_test.cc",
"module_test.cc",
"phony_expression_test.cc",
"return_statement_test.cc",
@@ -275,7 +274,14 @@
"variable_test.cc",
"while_statement_test.cc",
"workgroup_attribute_test.cc",
- ],
+ ] + select({
+ ":tint_build_wgsl_reader_and_tint_build_wgsl_writer": [
+ "module_clone_test.cc",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ "//conditions:default": [],
+ }),
deps = [
"//src/tint/api/common",
"//src/tint/lang/core",
@@ -289,7 +295,6 @@
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/resolver",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -304,8 +309,33 @@
"//src/tint/utils/text",
"//src/tint/utils/traits",
"@gtest",
- ],
+ ] + select({
+ "//conditions:default": [],
+ }) + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/wgsl/ast/BUILD.cmake b/src/tint/lang/wgsl/ast/BUILD.cmake
index f9293f9..90f8d15 100644
--- a/src/tint/lang/wgsl/ast/BUILD.cmake
+++ b/src/tint/lang/wgsl/ast/BUILD.cmake
@@ -256,7 +256,6 @@
lang/wgsl/ast/location_attribute_test.cc
lang/wgsl/ast/loop_statement_test.cc
lang/wgsl/ast/member_accessor_expression_test.cc
- lang/wgsl/ast/module_clone_test.cc
lang/wgsl/ast/module_test.cc
lang/wgsl/ast/phony_expression_test.cc
lang/wgsl/ast/return_statement_test.cc
@@ -290,7 +289,6 @@
tint_lang_wgsl_reader
tint_lang_wgsl_resolver
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -309,3 +307,15 @@
tint_target_add_external_dependencies(tint_lang_wgsl_ast_test test
"gtest"
)
+
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+ tint_target_add_sources(tint_lang_wgsl_ast_test test
+ "lang/wgsl/ast/module_clone_test.cc"
+ )
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_wgsl_ast_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
diff --git a/src/tint/lang/wgsl/ast/BUILD.gn b/src/tint/lang/wgsl/ast/BUILD.gn
index 91b144e..3e0c11b 100644
--- a/src/tint/lang/wgsl/ast/BUILD.gn
+++ b/src/tint/lang/wgsl/ast/BUILD.gn
@@ -256,7 +256,6 @@
"location_attribute_test.cc",
"loop_statement_test.cc",
"member_accessor_expression_test.cc",
- "module_clone_test.cc",
"module_test.cc",
"phony_expression_test.cc",
"return_statement_test.cc",
@@ -290,7 +289,6 @@
"${tint_src_dir}/lang/wgsl/reader",
"${tint_src_dir}/lang/wgsl/resolver",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/ice",
@@ -305,5 +303,13 @@
"${tint_src_dir}/utils/text",
"${tint_src_dir}/utils/traits",
]
+
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ sources += [ "module_clone_test.cc" ]
+ }
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
diff --git a/src/tint/lang/wgsl/ast/module_clone_test.cc b/src/tint/lang/wgsl/ast/module_clone_test.cc
index a683b0a..035a565 100644
--- a/src/tint/lang/wgsl/ast/module_clone_test.cc
+++ b/src/tint/lang/wgsl/ast/module_clone_test.cc
@@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// GEN_BUILD:CONDITION(tint_build_wgsl_reader && tint_build_wgsl_writer)
+
#include <unordered_set>
#include "gtest/gtest.h"
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.bazel b/src/tint/lang/wgsl/ast/transform/BUILD.bazel
index 03b8500..5d14299 100644
--- a/src/tint/lang/wgsl/ast/transform/BUILD.bazel
+++ b/src/tint/lang/wgsl/ast/transform/BUILD.bazel
@@ -176,7 +176,6 @@
"//src/tint/lang/wgsl/reader",
"//src/tint/lang/wgsl/resolver",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -191,8 +190,31 @@
"//src/tint/utils/text",
"//src/tint/utils/traits",
"@gtest",
- ],
+ ] + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
+alias(
+ name = "tint_build_wgsl_reader",
+ actual = "//src/tint:tint_build_wgsl_reader_true",
+)
+
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
+selects.config_setting_group(
+ name = "tint_build_wgsl_reader_and_tint_build_wgsl_writer",
+ match_all = [
+ ":tint_build_wgsl_reader",
+ ":tint_build_wgsl_writer",
+ ],
+)
+
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.cfg b/src/tint/lang/wgsl/ast/transform/BUILD.cfg
new file mode 100644
index 0000000..f31a82c
--- /dev/null
+++ b/src/tint/lang/wgsl/ast/transform/BUILD.cfg
@@ -0,0 +1,5 @@
+{
+ "test": {
+ "condition": "tint_build_wgsl_reader && tint_build_wgsl_writer"
+ }
+}
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.cmake b/src/tint/lang/wgsl/ast/transform/BUILD.cmake
index 1f7ecf6..e2aec67 100644
--- a/src/tint/lang/wgsl/ast/transform/BUILD.cmake
+++ b/src/tint/lang/wgsl/ast/transform/BUILD.cmake
@@ -118,9 +118,11 @@
tint_utils_traits
)
+if(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_wgsl_ast_transform_test
# Kind: test
+# Condition: TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_wgsl_ast_transform_test test
lang/wgsl/ast/transform/add_block_attribute_test.cc
@@ -175,7 +177,6 @@
tint_lang_wgsl_reader
tint_lang_wgsl_resolver
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -194,3 +195,11 @@
tint_target_add_external_dependencies(tint_lang_wgsl_ast_transform_test test
"gtest"
)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_wgsl_ast_transform_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.gn b/src/tint/lang/wgsl/ast/transform/BUILD.gn
index 4d2f8ef..20060c7 100644
--- a/src/tint/lang/wgsl/ast/transform/BUILD.gn
+++ b/src/tint/lang/wgsl/ast/transform/BUILD.gn
@@ -123,74 +123,79 @@
]
}
if (tint_build_unittests) {
- tint_unittests_source_set("unittests") {
- sources = [
- "add_block_attribute_test.cc",
- "add_empty_entry_point_test.cc",
- "array_length_from_uniform_test.cc",
- "binding_remapper_test.cc",
- "builtin_polyfill_test.cc",
- "canonicalize_entry_point_io_test.cc",
- "demote_to_helper_test.cc",
- "direct_variable_access_test.cc",
- "disable_uniformity_analysis_test.cc",
- "expand_compound_assignment_test.cc",
- "first_index_offset_test.cc",
- "get_insertion_point_test.cc",
- "helper_test.h",
- "hoist_to_decl_before_test.cc",
- "manager_test.cc",
- "multiplanar_external_texture_test.cc",
- "preserve_padding_test.cc",
- "promote_initializers_to_let_test.cc",
- "promote_side_effects_to_decl_test.cc",
- "remove_phonies_test.cc",
- "remove_unreachable_statements_test.cc",
- "renamer_test.cc",
- "robustness_test.cc",
- "simplify_pointers_test.cc",
- "single_entry_point_test.cc",
- "std140_exhaustive_test.cc",
- "std140_f16_test.cc",
- "std140_f32_test.cc",
- "std140_test.cc",
- "substitute_override_test.cc",
- "transform_test.cc",
- "unshadow_test.cc",
- "vectorize_scalar_matrix_initializers_test.cc",
- "vertex_pulling_test.cc",
- "zero_init_workgroup_memory_test.cc",
- ]
- deps = [
- "${tint_src_dir}:gmock_and_gtest",
- "${tint_src_dir}/api/common",
- "${tint_src_dir}/api/options",
- "${tint_src_dir}/lang/core",
- "${tint_src_dir}/lang/core/constant",
- "${tint_src_dir}/lang/core/ir",
- "${tint_src_dir}/lang/core/type",
- "${tint_src_dir}/lang/wgsl",
- "${tint_src_dir}/lang/wgsl/ast",
- "${tint_src_dir}/lang/wgsl/ast:unittests",
- "${tint_src_dir}/lang/wgsl/ast/transform",
- "${tint_src_dir}/lang/wgsl/program",
- "${tint_src_dir}/lang/wgsl/reader",
- "${tint_src_dir}/lang/wgsl/resolver",
- "${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
- "${tint_src_dir}/utils/containers",
- "${tint_src_dir}/utils/diagnostic",
- "${tint_src_dir}/utils/ice",
- "${tint_src_dir}/utils/id",
- "${tint_src_dir}/utils/macros",
- "${tint_src_dir}/utils/math",
- "${tint_src_dir}/utils/memory",
- "${tint_src_dir}/utils/reflection",
- "${tint_src_dir}/utils/result",
- "${tint_src_dir}/utils/rtti",
- "${tint_src_dir}/utils/symbol",
- "${tint_src_dir}/utils/text",
- "${tint_src_dir}/utils/traits",
- ]
+ if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
+ tint_unittests_source_set("unittests") {
+ sources = [
+ "add_block_attribute_test.cc",
+ "add_empty_entry_point_test.cc",
+ "array_length_from_uniform_test.cc",
+ "binding_remapper_test.cc",
+ "builtin_polyfill_test.cc",
+ "canonicalize_entry_point_io_test.cc",
+ "demote_to_helper_test.cc",
+ "direct_variable_access_test.cc",
+ "disable_uniformity_analysis_test.cc",
+ "expand_compound_assignment_test.cc",
+ "first_index_offset_test.cc",
+ "get_insertion_point_test.cc",
+ "helper_test.h",
+ "hoist_to_decl_before_test.cc",
+ "manager_test.cc",
+ "multiplanar_external_texture_test.cc",
+ "preserve_padding_test.cc",
+ "promote_initializers_to_let_test.cc",
+ "promote_side_effects_to_decl_test.cc",
+ "remove_phonies_test.cc",
+ "remove_unreachable_statements_test.cc",
+ "renamer_test.cc",
+ "robustness_test.cc",
+ "simplify_pointers_test.cc",
+ "single_entry_point_test.cc",
+ "std140_exhaustive_test.cc",
+ "std140_f16_test.cc",
+ "std140_f32_test.cc",
+ "std140_test.cc",
+ "substitute_override_test.cc",
+ "transform_test.cc",
+ "unshadow_test.cc",
+ "vectorize_scalar_matrix_initializers_test.cc",
+ "vertex_pulling_test.cc",
+ "zero_init_workgroup_memory_test.cc",
+ ]
+ deps = [
+ "${tint_src_dir}:gmock_and_gtest",
+ "${tint_src_dir}/api/common",
+ "${tint_src_dir}/api/options",
+ "${tint_src_dir}/lang/core",
+ "${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/ir",
+ "${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/wgsl",
+ "${tint_src_dir}/lang/wgsl/ast",
+ "${tint_src_dir}/lang/wgsl/ast:unittests",
+ "${tint_src_dir}/lang/wgsl/ast/transform",
+ "${tint_src_dir}/lang/wgsl/program",
+ "${tint_src_dir}/lang/wgsl/reader",
+ "${tint_src_dir}/lang/wgsl/resolver",
+ "${tint_src_dir}/lang/wgsl/sem",
+ "${tint_src_dir}/utils/containers",
+ "${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/ice",
+ "${tint_src_dir}/utils/id",
+ "${tint_src_dir}/utils/macros",
+ "${tint_src_dir}/utils/math",
+ "${tint_src_dir}/utils/memory",
+ "${tint_src_dir}/utils/reflection",
+ "${tint_src_dir}/utils/result",
+ "${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/symbol",
+ "${tint_src_dir}/utils/text",
+ "${tint_src_dir}/utils/traits",
+ ]
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
+ }
}
}
diff --git a/src/tint/lang/wgsl/helpers/append_vector.cc b/src/tint/lang/wgsl/helpers/append_vector.cc
index 8239d58..6affec6 100644
--- a/src/tint/lang/wgsl/helpers/append_vector.cc
+++ b/src/tint/lang/wgsl/helpers/append_vector.cc
@@ -26,7 +26,7 @@
using namespace tint::core::number_suffixes; // NOLINT
-namespace tint::writer {
+namespace tint::wgsl {
namespace {
struct VectorConstructorInfo {
@@ -167,4 +167,4 @@
return ctor_sem;
}
-} // namespace tint::writer
+} // namespace tint::wgsl
diff --git a/src/tint/lang/wgsl/helpers/append_vector.h b/src/tint/lang/wgsl/helpers/append_vector.h
index 3a73fc2..cb51a6a 100644
--- a/src/tint/lang/wgsl/helpers/append_vector.h
+++ b/src/tint/lang/wgsl/helpers/append_vector.h
@@ -26,7 +26,7 @@
class Call;
} // namespace tint::sem
-namespace tint::writer {
+namespace tint::wgsl {
/// A helper function used to append a vector with an additional scalar.
/// If the scalar's type does not match the target vector element type,
@@ -42,6 +42,6 @@
const ast::Expression* vector,
const ast::Expression* scalar);
-} // namespace tint::writer
+} // namespace tint::wgsl
#endif // SRC_TINT_LANG_WGSL_HELPERS_APPEND_VECTOR_H_
diff --git a/src/tint/lang/wgsl/helpers/append_vector_test.cc b/src/tint/lang/wgsl/helpers/append_vector_test.cc
index 8829706..03201c5 100644
--- a/src/tint/lang/wgsl/helpers/append_vector_test.cc
+++ b/src/tint/lang/wgsl/helpers/append_vector_test.cc
@@ -20,7 +20,7 @@
#include "gmock/gmock.h"
-namespace tint::writer {
+namespace tint::wgsl {
namespace {
using namespace tint::core::fluent_types; // NOLINT
@@ -498,4 +498,4 @@
}
} // namespace
-} // namespace tint::writer
+} // namespace tint::wgsl
diff --git a/src/tint/lang/wgsl/helpers/check_supported_extensions.cc b/src/tint/lang/wgsl/helpers/check_supported_extensions.cc
index ece9b37..79520a7 100644
--- a/src/tint/lang/wgsl/helpers/check_supported_extensions.cc
+++ b/src/tint/lang/wgsl/helpers/check_supported_extensions.cc
@@ -21,7 +21,7 @@
#include "src/tint/utils/diagnostic/diagnostic.h"
#include "src/tint/utils/text/string.h"
-namespace tint::writer {
+namespace tint::wgsl {
bool CheckSupportedExtensions(std::string_view writer_name,
const ast::Module& module,
@@ -46,4 +46,4 @@
return true;
}
-} // namespace tint::writer
+} // namespace tint::wgsl
diff --git a/src/tint/lang/wgsl/helpers/check_supported_extensions.h b/src/tint/lang/wgsl/helpers/check_supported_extensions.h
index b2f09f3..c732a0f 100644
--- a/src/tint/lang/wgsl/helpers/check_supported_extensions.h
+++ b/src/tint/lang/wgsl/helpers/check_supported_extensions.h
@@ -25,7 +25,7 @@
class List;
} // namespace tint::diag
-namespace tint::writer {
+namespace tint::wgsl {
/// Checks that all the extensions enabled in @p module are found in @p supported, raising an error
/// diagnostic if an enabled extension is not supported.
@@ -38,6 +38,6 @@
diag::List& diags,
VectorRef<wgsl::Extension> supported);
-} // namespace tint::writer
+} // namespace tint::wgsl
#endif // SRC_TINT_LANG_WGSL_HELPERS_CHECK_SUPPORTED_EXTENSIONS_H_
diff --git a/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc b/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc
index 0d90851..27b6b06 100644
--- a/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc
+++ b/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc
@@ -18,7 +18,7 @@
#include "src/tint/lang/wgsl/program/program_builder.h"
-namespace tint::writer {
+namespace tint::wgsl {
namespace {
class CheckSupportedExtensionsTest : public ::testing::Test, public ProgramBuilder {};
@@ -44,4 +44,4 @@
}
} // namespace
-} // namespace tint::writer
+} // namespace tint::wgsl
diff --git a/src/tint/lang/wgsl/helpers/flatten_bindings.cc b/src/tint/lang/wgsl/helpers/flatten_bindings.cc
index 3400dd9..ebee730 100644
--- a/src/tint/lang/wgsl/helpers/flatten_bindings.cc
+++ b/src/tint/lang/wgsl/helpers/flatten_bindings.cc
@@ -21,7 +21,7 @@
#include "src/tint/lang/wgsl/ast/transform/manager.h"
#include "src/tint/lang/wgsl/inspector/inspector.h"
-namespace tint::writer {
+namespace tint::wgsl {
std::optional<Program> FlattenBindings(const Program& program) {
// TODO(crbug.com/tint/1101): Make this more robust for multiple entry points.
@@ -79,4 +79,4 @@
return {};
}
-} // namespace tint::writer
+} // namespace tint::wgsl
diff --git a/src/tint/lang/wgsl/helpers/flatten_bindings.h b/src/tint/lang/wgsl/helpers/flatten_bindings.h
index be2ca44..2124622 100644
--- a/src/tint/lang/wgsl/helpers/flatten_bindings.h
+++ b/src/tint/lang/wgsl/helpers/flatten_bindings.h
@@ -18,7 +18,7 @@
#include <optional>
#include "src/tint/lang/wgsl/program/program.h"
-namespace tint::writer {
+namespace tint::wgsl {
/// If needed, remaps resource numbers of `program` to a flat namespace: all in
/// group 0 within unique binding numbers.
@@ -26,6 +26,6 @@
/// @return A new program with bindings remapped if needed
std::optional<Program> FlattenBindings(const Program& program);
-} // namespace tint::writer
+} // namespace tint::wgsl
#endif // SRC_TINT_LANG_WGSL_HELPERS_FLATTEN_BINDINGS_H_
diff --git a/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc b/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc
index ed04a59..e193bdc 100644
--- a/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc
+++ b/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc
@@ -22,7 +22,7 @@
#include "src/tint/lang/wgsl/resolver/resolve.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-namespace tint::writer {
+namespace tint::wgsl {
namespace {
using namespace tint::core::number_suffixes; // NOLINT
@@ -34,7 +34,7 @@
Program program(resolver::Resolve(b));
ASSERT_TRUE(program.IsValid()) << program.Diagnostics();
- auto flattened = tint::writer::FlattenBindings(program);
+ auto flattened = FlattenBindings(program);
EXPECT_FALSE(flattened);
}
@@ -47,7 +47,7 @@
Program program(resolver::Resolve(b));
ASSERT_TRUE(program.IsValid()) << program.Diagnostics();
- auto flattened = tint::writer::FlattenBindings(program);
+ auto flattened = FlattenBindings(program);
EXPECT_FALSE(flattened);
}
@@ -61,7 +61,7 @@
Program program(resolver::Resolve(b));
ASSERT_TRUE(program.IsValid()) << program.Diagnostics();
- auto flattened = tint::writer::FlattenBindings(program);
+ auto flattened = FlattenBindings(program);
EXPECT_TRUE(flattened);
auto& vars = flattened->AST().GlobalVariables();
@@ -123,7 +123,7 @@
Program program(resolver::Resolve(b));
ASSERT_TRUE(program.IsValid()) << program.Diagnostics();
- auto flattened = tint::writer::FlattenBindings(program);
+ auto flattened = FlattenBindings(program);
EXPECT_TRUE(flattened);
auto& vars = flattened->AST().GlobalVariables();
@@ -149,4 +149,4 @@
}
} // namespace
-} // namespace tint::writer
+} // namespace tint::wgsl
diff --git a/src/tint/lang/wgsl/writer/BUILD.bazel b/src/tint/lang/wgsl/writer/BUILD.bazel
index 7d24c91..262e529 100644
--- a/src/tint/lang/wgsl/writer/BUILD.bazel
+++ b/src/tint/lang/wgsl/writer/BUILD.bazel
@@ -45,7 +45,6 @@
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer/ast_printer",
"//src/tint/lang/wgsl/writer/ir_to_program",
"//src/tint/lang/wgsl/writer/raise",
"//src/tint/lang/wgsl/writer/syntax_tree_printer",
@@ -63,7 +62,12 @@
"//src/tint/utils/symbol",
"//src/tint/utils/text",
"//src/tint/utils/traits",
- ],
+ ] + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer/ast_printer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
@@ -82,7 +86,6 @@
"//src/tint/lang/wgsl/ast",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/ice",
@@ -97,8 +100,18 @@
"//src/tint/utils/text",
"//src/tint/utils/traits",
"@benchmark",
- ],
+ ] + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
diff --git a/src/tint/lang/wgsl/writer/BUILD.cfg b/src/tint/lang/wgsl/writer/BUILD.cfg
new file mode 100644
index 0000000..80e6a14
--- /dev/null
+++ b/src/tint/lang/wgsl/writer/BUILD.cfg
@@ -0,0 +1,3 @@
+{
+ "condition": "tint_build_wgsl_writer"
+}
diff --git a/src/tint/lang/wgsl/writer/BUILD.cmake b/src/tint/lang/wgsl/writer/BUILD.cmake
index bfb510a..014df3e 100644
--- a/src/tint/lang/wgsl/writer/BUILD.cmake
+++ b/src/tint/lang/wgsl/writer/BUILD.cmake
@@ -26,9 +26,11 @@
include(lang/wgsl/writer/raise/BUILD.cmake)
include(lang/wgsl/writer/syntax_tree_printer/BUILD.cmake)
+if(TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_wgsl_writer
# Kind: lib
+# Condition: TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_wgsl_writer lib
lang/wgsl/writer/options.cc
@@ -49,7 +51,6 @@
tint_lang_wgsl_ast
tint_lang_wgsl_program
tint_lang_wgsl_sem
- tint_lang_wgsl_writer_ast_printer
tint_lang_wgsl_writer_ir_to_program
tint_lang_wgsl_writer_raise
tint_lang_wgsl_writer_syntax_tree_printer
@@ -69,9 +70,18 @@
tint_utils_traits
)
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_wgsl_writer lib
+ tint_lang_wgsl_writer_ast_printer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_WGSL_WRITER)
+if(TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_wgsl_writer_bench
# Kind: bench
+# Condition: TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_wgsl_writer_bench bench
lang/wgsl/writer/writer_bench.cc
@@ -86,7 +96,6 @@
tint_lang_wgsl_ast
tint_lang_wgsl_program
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_utils_containers
tint_utils_diagnostic
tint_utils_ice
@@ -105,3 +114,11 @@
tint_target_add_external_dependencies(tint_lang_wgsl_writer_bench bench
"google-benchmark"
)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_wgsl_writer_bench bench
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/wgsl/writer/BUILD.gn b/src/tint/lang/wgsl/writer/BUILD.gn
index 23adf15..2c531db 100644
--- a/src/tint/lang/wgsl/writer/BUILD.gn
+++ b/src/tint/lang/wgsl/writer/BUILD.gn
@@ -28,62 +28,32 @@
if (tint_build_unittests || tint_build_benchmarks) {
import("//testing/test.gni")
}
-
-libtint_source_set("writer") {
- sources = [
- "options.cc",
- "options.h",
- "output.cc",
- "output.h",
- "writer.cc",
- "writer.h",
- ]
- deps = [
- "${tint_src_dir}/api/common",
- "${tint_src_dir}/lang/core",
- "${tint_src_dir}/lang/core/constant",
- "${tint_src_dir}/lang/core/ir",
- "${tint_src_dir}/lang/core/type",
- "${tint_src_dir}/lang/wgsl",
- "${tint_src_dir}/lang/wgsl/ast",
- "${tint_src_dir}/lang/wgsl/program",
- "${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer/ast_printer",
- "${tint_src_dir}/lang/wgsl/writer/ir_to_program",
- "${tint_src_dir}/lang/wgsl/writer/raise",
- "${tint_src_dir}/lang/wgsl/writer/syntax_tree_printer",
- "${tint_src_dir}/utils/containers",
- "${tint_src_dir}/utils/diagnostic",
- "${tint_src_dir}/utils/generator",
- "${tint_src_dir}/utils/ice",
- "${tint_src_dir}/utils/id",
- "${tint_src_dir}/utils/macros",
- "${tint_src_dir}/utils/math",
- "${tint_src_dir}/utils/memory",
- "${tint_src_dir}/utils/reflection",
- "${tint_src_dir}/utils/result",
- "${tint_src_dir}/utils/rtti",
- "${tint_src_dir}/utils/symbol",
- "${tint_src_dir}/utils/text",
- "${tint_src_dir}/utils/traits",
- ]
-}
-if (tint_build_benchmarks) {
- tint_unittests_source_set("bench") {
- sources = [ "writer_bench.cc" ]
+if (tint_build_wgsl_writer) {
+ libtint_source_set("writer") {
+ sources = [
+ "options.cc",
+ "options.h",
+ "output.cc",
+ "output.h",
+ "writer.cc",
+ "writer.h",
+ ]
deps = [
- "${tint_src_dir}:google_benchmark",
- "${tint_src_dir}/cmd/bench:bench",
+ "${tint_src_dir}/api/common",
"${tint_src_dir}/lang/core",
"${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/ir",
"${tint_src_dir}/lang/core/type",
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
+ "${tint_src_dir}/lang/wgsl/writer/ir_to_program",
+ "${tint_src_dir}/lang/wgsl/writer/raise",
+ "${tint_src_dir}/lang/wgsl/writer/syntax_tree_printer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/generator",
"${tint_src_dir}/utils/ice",
"${tint_src_dir}/utils/id",
"${tint_src_dir}/utils/macros",
@@ -96,5 +66,44 @@
"${tint_src_dir}/utils/text",
"${tint_src_dir}/utils/traits",
]
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer/ast_printer" ]
+ }
+ }
+}
+if (tint_build_benchmarks) {
+ if (tint_build_wgsl_writer) {
+ tint_unittests_source_set("bench") {
+ sources = [ "writer_bench.cc" ]
+ deps = [
+ "${tint_src_dir}:google_benchmark",
+ "${tint_src_dir}/cmd/bench:bench",
+ "${tint_src_dir}/lang/core",
+ "${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/wgsl",
+ "${tint_src_dir}/lang/wgsl/ast",
+ "${tint_src_dir}/lang/wgsl/program",
+ "${tint_src_dir}/lang/wgsl/sem",
+ "${tint_src_dir}/utils/containers",
+ "${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/ice",
+ "${tint_src_dir}/utils/id",
+ "${tint_src_dir}/utils/macros",
+ "${tint_src_dir}/utils/math",
+ "${tint_src_dir}/utils/memory",
+ "${tint_src_dir}/utils/reflection",
+ "${tint_src_dir}/utils/result",
+ "${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/symbol",
+ "${tint_src_dir}/utils/text",
+ "${tint_src_dir}/utils/traits",
+ ]
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
+ }
}
}
diff --git a/src/tint/lang/wgsl/writer/ast_printer/BUILD.bazel b/src/tint/lang/wgsl/writer/ast_printer/BUILD.bazel
index b80b144..f40c5b2 100644
--- a/src/tint/lang/wgsl/writer/ast_printer/BUILD.bazel
+++ b/src/tint/lang/wgsl/writer/ast_printer/BUILD.bazel
@@ -103,7 +103,6 @@
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/resolver",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer/ast_printer",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
"//src/tint/utils/generator",
@@ -119,8 +118,18 @@
"//src/tint/utils/text",
"//src/tint/utils/traits",
"@gtest",
- ],
+ ] + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer/ast_printer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
diff --git a/src/tint/lang/wgsl/writer/ast_printer/BUILD.cfg b/src/tint/lang/wgsl/writer/ast_printer/BUILD.cfg
new file mode 100644
index 0000000..80e6a14
--- /dev/null
+++ b/src/tint/lang/wgsl/writer/ast_printer/BUILD.cfg
@@ -0,0 +1,3 @@
+{
+ "condition": "tint_build_wgsl_writer"
+}
diff --git a/src/tint/lang/wgsl/writer/ast_printer/BUILD.cmake b/src/tint/lang/wgsl/writer/ast_printer/BUILD.cmake
index 96beb17..92526ed 100644
--- a/src/tint/lang/wgsl/writer/ast_printer/BUILD.cmake
+++ b/src/tint/lang/wgsl/writer/ast_printer/BUILD.cmake
@@ -21,9 +21,11 @@
# Do not modify this file directly
################################################################################
+if(TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_wgsl_writer_ast_printer
# Kind: lib
+# Condition: TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_wgsl_writer_ast_printer lib
lang/wgsl/writer/ast_printer/ast_printer.cc
@@ -54,9 +56,12 @@
tint_utils_traits
)
+endif(TINT_BUILD_WGSL_WRITER)
+if(TINT_BUILD_WGSL_WRITER)
################################################################################
# Target: tint_lang_wgsl_writer_ast_printer_test
# Kind: test
+# Condition: TINT_BUILD_WGSL_WRITER
################################################################################
tint_add_target(tint_lang_wgsl_writer_ast_printer_test test
lang/wgsl/writer/ast_printer/alias_type_test.cc
@@ -102,7 +107,6 @@
tint_lang_wgsl_program
tint_lang_wgsl_resolver
tint_lang_wgsl_sem
- tint_lang_wgsl_writer_ast_printer
tint_utils_containers
tint_utils_diagnostic
tint_utils_generator
@@ -122,3 +126,11 @@
tint_target_add_external_dependencies(tint_lang_wgsl_writer_ast_printer_test test
"gtest"
)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_dependencies(tint_lang_wgsl_writer_ast_printer_test test
+ tint_lang_wgsl_writer_ast_printer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
+
+endif(TINT_BUILD_WGSL_WRITER)
\ No newline at end of file
diff --git a/src/tint/lang/wgsl/writer/ast_printer/BUILD.gn b/src/tint/lang/wgsl/writer/ast_printer/BUILD.gn
index 9605ec5..7a31589 100644
--- a/src/tint/lang/wgsl/writer/ast_printer/BUILD.gn
+++ b/src/tint/lang/wgsl/writer/ast_printer/BUILD.gn
@@ -28,83 +28,20 @@
if (tint_build_unittests || tint_build_benchmarks) {
import("//testing/test.gni")
}
-
-libtint_source_set("ast_printer") {
- sources = [
- "ast_printer.cc",
- "ast_printer.h",
- ]
- deps = [
- "${tint_src_dir}/lang/core",
- "${tint_src_dir}/lang/core/constant",
- "${tint_src_dir}/lang/core/type",
- "${tint_src_dir}/lang/wgsl",
- "${tint_src_dir}/lang/wgsl/ast",
- "${tint_src_dir}/lang/wgsl/program",
- "${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/utils/containers",
- "${tint_src_dir}/utils/diagnostic",
- "${tint_src_dir}/utils/generator",
- "${tint_src_dir}/utils/ice",
- "${tint_src_dir}/utils/id",
- "${tint_src_dir}/utils/macros",
- "${tint_src_dir}/utils/math",
- "${tint_src_dir}/utils/memory",
- "${tint_src_dir}/utils/result",
- "${tint_src_dir}/utils/rtti",
- "${tint_src_dir}/utils/strconv",
- "${tint_src_dir}/utils/symbol",
- "${tint_src_dir}/utils/text",
- "${tint_src_dir}/utils/traits",
- ]
-}
-if (tint_build_unittests) {
- tint_unittests_source_set("unittests") {
+if (tint_build_wgsl_writer) {
+ libtint_source_set("ast_printer") {
sources = [
- "alias_type_test.cc",
- "array_accessor_test.cc",
- "assign_test.cc",
- "ast_printer_test.cc",
- "binary_test.cc",
- "bitcast_test.cc",
- "block_test.cc",
- "break_test.cc",
- "call_test.cc",
- "case_test.cc",
- "cast_test.cc",
- "const_assert_test.cc",
- "constructor_test.cc",
- "continue_test.cc",
- "diagnostic_test.cc",
- "discard_test.cc",
- "enable_test.cc",
- "function_test.cc",
- "global_decl_test.cc",
- "helper_test.h",
- "identifier_test.cc",
- "if_test.cc",
- "literal_test.cc",
- "loop_test.cc",
- "member_accessor_test.cc",
- "return_test.cc",
- "switch_test.cc",
- "type_test.cc",
- "unary_op_test.cc",
- "variable_decl_statement_test.cc",
- "variable_test.cc",
+ "ast_printer.cc",
+ "ast_printer.h",
]
deps = [
- "${tint_src_dir}:gmock_and_gtest",
- "${tint_src_dir}/api/common",
"${tint_src_dir}/lang/core",
"${tint_src_dir}/lang/core/constant",
"${tint_src_dir}/lang/core/type",
"${tint_src_dir}/lang/wgsl",
"${tint_src_dir}/lang/wgsl/ast",
"${tint_src_dir}/lang/wgsl/program",
- "${tint_src_dir}/lang/wgsl/resolver",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer/ast_printer",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
"${tint_src_dir}/utils/generator",
@@ -113,12 +50,81 @@
"${tint_src_dir}/utils/macros",
"${tint_src_dir}/utils/math",
"${tint_src_dir}/utils/memory",
- "${tint_src_dir}/utils/reflection",
"${tint_src_dir}/utils/result",
"${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/strconv",
"${tint_src_dir}/utils/symbol",
"${tint_src_dir}/utils/text",
"${tint_src_dir}/utils/traits",
]
}
}
+if (tint_build_unittests) {
+ if (tint_build_wgsl_writer) {
+ tint_unittests_source_set("unittests") {
+ sources = [
+ "alias_type_test.cc",
+ "array_accessor_test.cc",
+ "assign_test.cc",
+ "ast_printer_test.cc",
+ "binary_test.cc",
+ "bitcast_test.cc",
+ "block_test.cc",
+ "break_test.cc",
+ "call_test.cc",
+ "case_test.cc",
+ "cast_test.cc",
+ "const_assert_test.cc",
+ "constructor_test.cc",
+ "continue_test.cc",
+ "diagnostic_test.cc",
+ "discard_test.cc",
+ "enable_test.cc",
+ "function_test.cc",
+ "global_decl_test.cc",
+ "helper_test.h",
+ "identifier_test.cc",
+ "if_test.cc",
+ "literal_test.cc",
+ "loop_test.cc",
+ "member_accessor_test.cc",
+ "return_test.cc",
+ "switch_test.cc",
+ "type_test.cc",
+ "unary_op_test.cc",
+ "variable_decl_statement_test.cc",
+ "variable_test.cc",
+ ]
+ deps = [
+ "${tint_src_dir}:gmock_and_gtest",
+ "${tint_src_dir}/api/common",
+ "${tint_src_dir}/lang/core",
+ "${tint_src_dir}/lang/core/constant",
+ "${tint_src_dir}/lang/core/type",
+ "${tint_src_dir}/lang/wgsl",
+ "${tint_src_dir}/lang/wgsl/ast",
+ "${tint_src_dir}/lang/wgsl/program",
+ "${tint_src_dir}/lang/wgsl/resolver",
+ "${tint_src_dir}/lang/wgsl/sem",
+ "${tint_src_dir}/utils/containers",
+ "${tint_src_dir}/utils/diagnostic",
+ "${tint_src_dir}/utils/generator",
+ "${tint_src_dir}/utils/ice",
+ "${tint_src_dir}/utils/id",
+ "${tint_src_dir}/utils/macros",
+ "${tint_src_dir}/utils/math",
+ "${tint_src_dir}/utils/memory",
+ "${tint_src_dir}/utils/reflection",
+ "${tint_src_dir}/utils/result",
+ "${tint_src_dir}/utils/rtti",
+ "${tint_src_dir}/utils/symbol",
+ "${tint_src_dir}/utils/text",
+ "${tint_src_dir}/utils/traits",
+ ]
+
+ if (tint_build_wgsl_writer) {
+ deps += [ "${tint_src_dir}/lang/wgsl/writer/ast_printer" ]
+ }
+ }
+ }
+}
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.bazel b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.bazel
index 7246e49..4e76e72 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.bazel
+++ b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.bazel
@@ -68,11 +68,15 @@
name = "test",
alwayslink = True,
srcs = [
- "inlining_test.cc",
- "ir_to_program_test.cc",
"ir_to_program_test.h",
"rename_conflicts_test.cc",
- ],
+ ] + select({
+ ":tint_build_wgsl_writer": [
+ "inlining_test.cc",
+ "ir_to_program_test.cc",
+ ],
+ "//conditions:default": [],
+ }),
deps = [
"//src/tint/api/common",
"//src/tint/lang/core",
@@ -87,7 +91,6 @@
"//src/tint/lang/wgsl/ir",
"//src/tint/lang/wgsl/program",
"//src/tint/lang/wgsl/sem",
- "//src/tint/lang/wgsl/writer",
"//src/tint/lang/wgsl/writer/ir_to_program",
"//src/tint/utils/containers",
"//src/tint/utils/diagnostic",
@@ -103,8 +106,18 @@
"//src/tint/utils/text",
"//src/tint/utils/traits",
"@gtest",
- ],
+ ] + select({
+ ":tint_build_wgsl_writer": [
+ "//src/tint/lang/wgsl/writer",
+ ],
+ "//conditions:default": [],
+ }),
copts = COPTS,
visibility = ["//visibility:public"],
)
+alias(
+ name = "tint_build_wgsl_writer",
+ actual = "//src/tint:tint_build_wgsl_writer_true",
+)
+
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake
index c639f7c..b9b7546 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake
+++ b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake
@@ -66,8 +66,6 @@
# Kind: test
################################################################################
tint_add_target(tint_lang_wgsl_writer_ir_to_program_test test
- lang/wgsl/writer/ir_to_program/inlining_test.cc
- lang/wgsl/writer/ir_to_program/ir_to_program_test.cc
lang/wgsl/writer/ir_to_program/ir_to_program_test.h
lang/wgsl/writer/ir_to_program/rename_conflicts_test.cc
)
@@ -86,7 +84,6 @@
tint_lang_wgsl_ir
tint_lang_wgsl_program
tint_lang_wgsl_sem
- tint_lang_wgsl_writer
tint_lang_wgsl_writer_ir_to_program
tint_utils_containers
tint_utils_diagnostic
@@ -106,3 +103,13 @@
tint_target_add_external_dependencies(tint_lang_wgsl_writer_ir_to_program_test test
"gtest"
)
+
+if(TINT_BUILD_WGSL_WRITER)
+ tint_target_add_sources(tint_lang_wgsl_writer_ir_to_program_test test
+ "lang/wgsl/writer/ir_to_program/inlining_test.cc"
+ "lang/wgsl/writer/ir_to_program/ir_to_program_test.cc"
+ )
+ tint_target_add_dependencies(tint_lang_wgsl_writer_ir_to_program_test test
+ tint_lang_wgsl_writer
+ )
+endif(TINT_BUILD_WGSL_WRITER)
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.gn b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.gn
index 587dd65..89fdd01 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.gn
+++ b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.gn
@@ -68,8 +68,6 @@
if (tint_build_unittests) {
tint_unittests_source_set("unittests") {
sources = [
- "inlining_test.cc",
- "ir_to_program_test.cc",
"ir_to_program_test.h",
"rename_conflicts_test.cc",
]
@@ -88,7 +86,6 @@
"${tint_src_dir}/lang/wgsl/ir",
"${tint_src_dir}/lang/wgsl/program",
"${tint_src_dir}/lang/wgsl/sem",
- "${tint_src_dir}/lang/wgsl/writer",
"${tint_src_dir}/lang/wgsl/writer/ir_to_program",
"${tint_src_dir}/utils/containers",
"${tint_src_dir}/utils/diagnostic",
@@ -104,5 +101,13 @@
"${tint_src_dir}/utils/text",
"${tint_src_dir}/utils/traits",
]
+
+ if (tint_build_wgsl_writer) {
+ sources += [
+ "inlining_test.cc",
+ "ir_to_program_test.cc",
+ ]
+ deps += [ "${tint_src_dir}/lang/wgsl/writer" ]
+ }
}
}
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/inlining_test.cc b/src/tint/lang/wgsl/writer/ir_to_program/inlining_test.cc
index ae49eb3..65f748c 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/inlining_test.cc
+++ b/src/tint/lang/wgsl/writer/ir_to_program/inlining_test.cc
@@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// GEN_BUILD:CONDITION(tint_build_wgsl_writer)
+
#include <string>
#include "src/tint/lang/core/ir/disassembler.h"
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc
index 257e61c..a189e4e 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc
+++ b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc
@@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// GEN_BUILD:CONDITION(tint_build_wgsl_writer)
+
#include <sstream>
#include <string>
diff --git a/tools/src/cmd/gen/build/build.go b/tools/src/cmd/gen/build/build.go
index 7ab9bfe..8c6be13 100644
--- a/tools/src/cmd/gen/build/build.go
+++ b/tools/src/cmd/gen/build/build.go
@@ -246,6 +246,16 @@
}
conditions[len(conditions)-1] = cnf.Not(conditions[len(conditions)-1])
}
+ if match := reElif.FindStringSubmatch(line); len(match) > 0 {
+ condition, err := cnf.Parse(strings.ToLower(match[1]))
+ if err != nil {
+ condition = Condition{{cnf.Unary{Var: "FAILED_TO_PARSE_CONDITION"}}}
+ }
+ if len(conditions) == 0 {
+ return path, nil, wrapErr(fmt.Errorf("#elif without #if"))
+ }
+ conditions[len(conditions)-1] = cnf.And(cnf.Not(conditions[len(conditions)-1]), condition)
+ }
if match := reEndif.FindStringSubmatch(line); len(match) > 0 {
if len(conditions) == 0 {
return path, nil, wrapErr(fmt.Errorf("#endif without #if"))
@@ -718,6 +728,7 @@
reIfdef = regexp.MustCompile(`\s*#\s*ifdef\s+(.*)`)
reIfndef = regexp.MustCompile(`\s*#\s*ifndef\s+(.*)`)
reElse = regexp.MustCompile(`\s*#\s*else\s+(.*)`)
+ reElif = regexp.MustCompile(`\s*#\s*elif\s+(.*)`)
reEndif = regexp.MustCompile(`\s*#\s*endif`)
reInclude = regexp.MustCompile(`\s*#\s*include\s*(?:\"|<)([^(\"|>)]+)(?:\"|>)`)
reHashImport = regexp.MustCompile(`\s*#\s*import\s*\<([\w\/\.]+)\>`)