[tint] Migrate CMake build over to generated files/deps Add a `BUILD.cmake.tmpl` template file to emit CMake build files and target dependency information. Rename TINT_BUILD_SAMPLES to TINT_BUILD_CMD_TOOLS. The 'tint' executable is used more as a command-line interface than a sample. Update the root tint CMakeLists.txt file to use this. Change-Id: I35cf071af09fd401e87a9b0bd35dbf40e72b9995 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/146386 Reviewed-by: James Price <jrprice@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Auto-Submit: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/BUILD.cmake b/src/tint/BUILD.cmake new file mode 100644 index 0000000..2199406 --- /dev/null +++ b/src/tint/BUILD.cmake
@@ -0,0 +1,26 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(api/BUILD.cmake) +include(cmd/BUILD.cmake) +include(lang/BUILD.cmake) +include(utils/BUILD.cmake)
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt index 60eb510..ab5878e 100644 --- a/src/tint/CMakeLists.txt +++ b/src/tint/CMakeLists.txt
@@ -12,920 +12,172 @@ # See the License for the specific language governing permissions and # limitations under the License. -function(tint_spvtools_compile_options TARGET) - # We'll use the optimizer for its nice SPIR-V in-memory representation - target_link_libraries(${TARGET} SPIRV-Tools-opt SPIRV-Tools) +################################################################################ +# Target flags +################################################################################ +if(NOT TINT_BUILD_AS_OTHER_OS) + if(UNIX) + set(IS_LINUX TRUE) + set(IS_LINUX TRUE) + elseif(APPLE) + set(IS_MAC TRUE) + set(IS_MAC TRUE) + elseif(WIN32) + set(IS_WIN TRUE) + set(IS_WIN TRUE) + endif() +endif() - # We'll be cheating: using internal interfaces to the SPIRV-Tools - # optimizer. - target_include_directories(${TARGET} PRIVATE - ${spirv-tools_SOURCE_DIR} - ${spirv-tools_BINARY_DIR} +################################################################################ +# Helper functions +################################################################################ +function(tint_core_compile_options TARGET) + target_include_directories(${TARGET} PUBLIC "${TINT_ROOT_SOURCE_DIR}") + target_include_directories(${TARGET} PUBLIC "${TINT_ROOT_SOURCE_DIR}/include") + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_SPV_READER=$<BOOL:${TINT_BUILD_SPV_READER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_WGSL_READER=$<BOOL:${TINT_BUILD_WGSL_READER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_GLSL_WRITER=$<BOOL:${TINT_BUILD_GLSL_WRITER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_HLSL_WRITER=$<BOOL:${TINT_BUILD_HLSL_WRITER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_MSL_WRITER=$<BOOL:${TINT_BUILD_MSL_WRITER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_SPV_WRITER=$<BOOL:${TINT_BUILD_SPV_WRITER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_WGSL_WRITER=$<BOOL:${TINT_BUILD_WGSL_WRITER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_SYNTAX_TREE_WRITER=$<BOOL:${TINT_BUILD_SYNTAX_TREE_WRITER}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_IR=$<BOOL:${TINT_BUILD_IR}>) + + common_compile_options(${TARGET}) +endfunction() + +function(tint_default_compile_options TARGET) + tint_core_compile_options(${TARGET}) + + set_target_properties(${TARGET} PROPERTIES LINKER_LANGUAGE CXX) + + set(COMMON_GNU_OPTIONS + -Wall + -Werror + -Wextra + -Wno-documentation-unknown-command + -Wno-padded + -Wno-switch-enum + -Wno-unknown-pragmas ) -endfunction() -set(TINT_LIB_SRCS) -set(TINT_BENCHMARK_SRCS) -set(TINT_TEST_SRCS) + set(COMMON_CLANG_OPTIONS + -Wno-c++98-compat + -Wno-c++98-compat-pedantic + -Wno-format-pedantic + -Wno-poison-system-directories + -Wno-return-std-move-in-c++11 + -Wno-unknown-warning-option + -Wno-undefined-var-template + -Wno-unsafe-buffer-usage + -Wno-used-but-marked-unused + -Weverything + ) -# Add a generated file set into the build. -# -# Params: -# TARGET - the target name to add (without extension) -# BENCH - set if the target has a benchmark file -# TEST - set if the target has a test file -# -function(tint_generated TARGET) - cmake_parse_arguments(PARSE_ARGV 0 TINT_GEN "BENCH;TEST" "" "") - - list(APPEND TINT_LIB_SRCS - ${TARGET}.cc - ${TARGET}.h + if(COMPILER_IS_LIKE_GNU) + target_compile_options(${TARGET} PRIVATE + -pedantic-errors + ${COMMON_GNU_OPTIONS} ) - set(TINT_LIB_SRCS ${TINT_LIB_SRCS} PARENT_SCOPE) - if(${TINT_GEN_BENCH}) - list(APPEND TINT_BENCHMARK_SRCS ${TARGET}_bench.cc) - set(TINT_BENCHMARK_SRCS ${TINT_BENCHMARK_SRCS} PARENT_SCOPE) + if(COMPILER_IS_CLANG) + target_compile_options(${TARGET} PRIVATE + ${COMMON_CLANG_OPTIONS} + ) endif() - if(${TINT_GEN_TEST}) - list(APPEND TINT_TEST_SRCS ${TARGET}_test.cc) - set(TINT_TEST_SRCS ${TINT_TEST_SRCS} PARENT_SCOPE) + endif(COMPILER_IS_LIKE_GNU) + + if(MSVC) + # Specify /EHs for exception handling. + target_compile_options(${TARGET} PRIVATE + /bigobj + /EHsc + /W4 + /WX + /wd4068 # unknown pragma + /wd4127 # conditional expression is constant + /wd4244 # 'conversion' conversion from 'type1' to 'type2', possible loss of data + /wd4267 # 'var' : conversion from 'size_t' to 'type', possible loss of data + /wd4324 # 'struct_name' : structure was padded due to __declspec(align()) + /wd4459 # declaration of 'identifier' hides global declaration + /wd4458 # declaration of 'identifier' hides class member + /wd4514 # 'function' : unreferenced inline function has been removed + /wd4571 # catch(...) semantics changed since Visual C++ 7.1; structured exceptions (SEH) are no longer caught + /wd4625 # 'derived class' : copy constructor was implicitly defined as deleted because a base class copy constructor is inaccessible or deleted + /wd4626 # 'derived class' : assignment operator was implicitly defined as deleted because a base class assignment operator is inaccessible or deleted + /wd4710 # 'function' : function not inlined + /wd4774 # 'function' : format string 'string' requires an argument of type 'type', but variadic argument number has type 'type' + /wd4820 # 'bytes' bytes padding added after construct 'member_name' + /wd5026 # 'type': move constructor was implicitly defined as deleted + /wd5027 # 'type': move assignment operator was implicitly defined as deleted + ) + + # When building with clang-cl on Windows, try to match our clang build + # options as much as possible. + if(COMPILER_IS_CLANG_CL) + target_compile_options(${TARGET} PRIVATE + ${COMMON_GNU_OPTIONS} + ${COMMON_CLANG_OPTIONS} + # Disable warnings that are usually disabled in downstream deps for + # gcc/clang, but aren't for clang-cl. + -Wno-global-constructors + -Wno-zero-as-null-pointer-constant + -Wno-shorten-64-to-32 + -Wno-shadow-field-in-constructor + -Wno-reserved-id-macro + -Wno-language-extension-token + ) endif() + endif() + + if(TINT_RANDOMIZE_HASHES) + if(NOT DEFINED TINT_HASH_SEED) + string(RANDOM LENGTH 16 ALPHABET "0123456789abcdef" seed) + set(TINT_HASH_SEED "0x${seed}" CACHE STRING "Tint hash seed value") + message("Using TINT_HASH_SEED: ${TINT_HASH_SEED}") + endif() + target_compile_definitions(${TARGET} PUBLIC "-DTINT_HASH_SEED=${TINT_HASH_SEED}") + endif() endfunction() -## Tint diagnostic utilities. Used by libtint and tint_utils_io. -add_library(tint_diagnostic_utils - utils/diagnostic/diagnostic.cc - utils/diagnostic/diagnostic.h - utils/diagnostic/formatter.cc - utils/diagnostic/formatter.h - utils/diagnostic/printer.cc - utils/diagnostic/printer.h - utils/diagnostic/source.cc - utils/diagnostic/source.h - utils/debug/debugger.cc - utils/debug/debugger.h - utils/ice/ice.cc - utils/ice/ice.h - utils/text/unicode.cc - utils/text/unicode.h -) -tint_default_compile_options(tint_diagnostic_utils) +function(tint_spvheaders_compile_options TARGET) + target_link_libraries(${TARGET} PRIVATE SPIRV-Headers) + target_include_directories(${TARGET} PRIVATE "${TINT_SPIRV_HEADERS_DIR}/include") +endfunction() -if (TINT_ENABLE_BREAK_IN_DEBUGGER) +function(tint_spvtools_compile_options TARGET) + target_link_libraries(${TARGET} PRIVATE SPIRV-Tools) + target_include_directories(${TARGET} PRIVATE "${TINT_SPIRV_TOOLS_DIR}/include") +endfunction() + +function(tint_bench_compile_options TARGET) + tint_default_compile_options(${TARGET}) + set_target_properties(${TARGET} PROPERTIES FOLDER "Benchmarks") + target_link_libraries(${TARGET} PRIVATE benchmark::benchmark) +endfunction() + +function(tint_fuzzer_compile_options TARGET) + tint_default_compile_options(${TARGET}) + target_link_libraries(${TARGET} PRIVATE "tint_api${TINT_FUZZ_SUFFIX}") + + if(NOT "${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS}" STREQUAL "") + # This is set when the fuzzers are being built by OSS${TINT_FUZZ_SUFFIX}. In this case the + # variable provides the necessary linker flags, and OSS${TINT_FUZZ_SUFFIX} will take care + # of passing suitable compiler flags. + target_link_options(${TARGET} PUBLIC ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS}) + else() + # When the fuzzers are being built outside of OSS${TINT_FUZZ_SUFFIX}, specific libFuzzer + # arguments to enable fuzzing are used. + target_link_options(${TARGET} PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp) + endif() +endfunction() + +if(TINT_ENABLE_BREAK_IN_DEBUGGER) set_source_files_properties(utils/debug/debugger.cc PROPERTIES COMPILE_DEFINITIONS "TINT_ENABLE_BREAK_IN_DEBUGGER=1" ) endif() -list(APPEND TINT_LIB_SRCS - ../../include/tint/tint.h - api/tint.cc - api/tint.h - lang/wgsl/ast/clone_context.cc - lang/wgsl/ast/clone_context.h - lang/core/binary_op.cc - lang/core/binary_op.h - lang/core/fluent_types.h - lang/core/number.cc - lang/core/number.h - lang/core/constant/clone_context.h - lang/core/constant/composite.cc - lang/core/constant/composite.h - lang/core/constant/manager.cc - lang/core/constant/manager.h - lang/core/constant/node.cc - lang/core/constant/node.h - lang/core/constant/scalar.cc - lang/core/constant/scalar.h - lang/core/constant/splat.cc - lang/core/constant/splat.h - lang/core/constant/value.cc - lang/core/constant/value.h - lang/core/type/abstract_float.cc - lang/core/type/abstract_float.h - lang/core/type/abstract_int.cc - lang/core/type/abstract_int.h - lang/core/type/abstract_numeric.cc - lang/core/type/abstract_numeric.h - lang/core/type/array.cc - lang/core/type/array.h - lang/core/type/array_count.cc - lang/core/type/array_count.h - lang/core/type/atomic.cc - lang/core/type/atomic.h - lang/core/type/bool.cc - lang/core/type/bool.h - lang/core/type/builtin_structs.cc - lang/core/type/builtin_structs.h - lang/core/type/clone_context.h - lang/core/type/depth_multisampled_texture.cc - lang/core/type/depth_multisampled_texture.h - lang/core/type/depth_texture.cc - lang/core/type/depth_texture.h - lang/core/type/external_texture.cc - lang/core/type/external_texture.h - lang/core/type/f16.cc - lang/core/type/f16.h - lang/core/type/f32.cc - lang/core/type/f32.h - lang/core/type/i32.cc - lang/core/type/i32.h - lang/core/type/manager.cc - lang/core/type/manager.h - lang/core/type/matrix.cc - lang/core/type/matrix.h - lang/core/type/multisampled_texture.cc - lang/core/type/multisampled_texture.h - lang/core/type/node.cc - lang/core/type/node.h - lang/core/type/numeric_scalar.cc - lang/core/type/numeric_scalar.h - lang/core/type/pointer.cc - lang/core/type/pointer.h - lang/core/type/reference.cc - lang/core/type/reference.h - lang/core/type/sampled_texture.cc - lang/core/type/sampled_texture.h - lang/core/type/sampler.cc - lang/core/type/sampler.h - lang/core/type/sampler_kind.cc - lang/core/type/sampler_kind.h - lang/core/type/scalar.cc - lang/core/type/scalar.h - lang/core/type/storage_texture.cc - lang/core/type/storage_texture.h - lang/core/type/struct.cc - lang/core/type/struct.h - lang/core/type/texture.cc - lang/core/type/texture.h - lang/core/type/texture_dimension.cc - lang/core/type/texture_dimension.h - lang/core/type/type.cc - lang/core/type/type.h - lang/core/type/u32.cc - lang/core/type/u32.h - lang/core/type/unique_node.cc - lang/core/type/unique_node.h - lang/core/type/vector.cc - lang/core/type/vector.h - lang/core/type/void.cc - lang/core/type/void.h - lang/core/unary_op.cc - lang/core/unary_op.h - lang/wgsl/ast/accessor_expression.cc - lang/wgsl/ast/accessor_expression.h - lang/wgsl/ast/alias.cc - lang/wgsl/ast/alias.h - lang/wgsl/ast/assignment_statement.cc - lang/wgsl/ast/assignment_statement.h - lang/wgsl/ast/attribute.cc - lang/wgsl/ast/attribute.h - lang/wgsl/ast/binary_expression.cc - lang/wgsl/ast/binary_expression.h - lang/wgsl/ast/binding_attribute.cc - lang/wgsl/ast/binding_attribute.h - lang/wgsl/ast/bitcast_expression.cc - lang/wgsl/ast/bitcast_expression.h - lang/wgsl/ast/block_statement.cc - lang/wgsl/ast/block_statement.h - lang/wgsl/ast/bool_literal_expression.cc - lang/wgsl/ast/bool_literal_expression.h - lang/wgsl/ast/break_if_statement.cc - lang/wgsl/ast/break_if_statement.h - lang/wgsl/ast/break_statement.cc - lang/wgsl/ast/break_statement.h - lang/wgsl/ast/builder.cc - lang/wgsl/ast/builder.h - lang/wgsl/ast/builtin_attribute.cc - lang/wgsl/ast/builtin_attribute.h - lang/wgsl/ast/call_expression.cc - lang/wgsl/ast/call_expression.h - lang/wgsl/ast/call_statement.cc - lang/wgsl/ast/call_statement.h - lang/wgsl/ast/case_selector.cc - lang/wgsl/ast/case_selector.h - lang/wgsl/ast/case_statement.cc - lang/wgsl/ast/case_statement.h - lang/wgsl/ast/compound_assignment_statement.cc - lang/wgsl/ast/compound_assignment_statement.h - lang/wgsl/ast/const.cc - lang/wgsl/ast/const.h - lang/wgsl/ast/const_assert.cc - lang/wgsl/ast/const_assert.h - lang/wgsl/ast/continue_statement.cc - lang/wgsl/ast/continue_statement.h - lang/wgsl/ast/diagnostic_attribute.cc - lang/wgsl/ast/diagnostic_attribute.h - lang/wgsl/ast/diagnostic_control.cc - lang/wgsl/ast/diagnostic_control.h - lang/wgsl/ast/diagnostic_directive.cc - lang/wgsl/ast/diagnostic_directive.h - lang/wgsl/ast/diagnostic_rule_name.cc - lang/wgsl/ast/diagnostic_rule_name.h - lang/wgsl/ast/disable_validation_attribute.cc - lang/wgsl/ast/disable_validation_attribute.h - lang/wgsl/ast/discard_statement.cc - lang/wgsl/ast/discard_statement.h - lang/wgsl/ast/enable.cc - lang/wgsl/ast/enable.h - lang/wgsl/ast/expression.cc - lang/wgsl/ast/expression.h - lang/wgsl/ast/extension.cc - lang/wgsl/ast/extension.h - lang/wgsl/ast/float_literal_expression.cc - lang/wgsl/ast/float_literal_expression.h - lang/wgsl/ast/for_loop_statement.cc - lang/wgsl/ast/for_loop_statement.h - lang/wgsl/ast/function.cc - lang/wgsl/ast/function.h - lang/wgsl/ast/group_attribute.cc - lang/wgsl/ast/group_attribute.h - lang/wgsl/ast/id_attribute.cc - lang/wgsl/ast/id_attribute.h - lang/wgsl/ast/identifier.cc - lang/wgsl/ast/identifier.h - lang/wgsl/ast/identifier_expression.cc - lang/wgsl/ast/identifier_expression.h - lang/wgsl/ast/if_statement.cc - lang/wgsl/ast/if_statement.h - lang/wgsl/ast/increment_decrement_statement.cc - lang/wgsl/ast/increment_decrement_statement.h - lang/wgsl/ast/index_accessor_expression.cc - lang/wgsl/ast/index_accessor_expression.h - lang/wgsl/ast/index_attribute.cc - lang/wgsl/ast/index_attribute.h - lang/wgsl/ast/int_literal_expression.cc - lang/wgsl/ast/int_literal_expression.h - lang/wgsl/ast/internal_attribute.cc - lang/wgsl/ast/internal_attribute.h - lang/wgsl/ast/interpolate_attribute.cc - lang/wgsl/ast/interpolate_attribute.h - lang/wgsl/ast/invariant_attribute.cc - lang/wgsl/ast/invariant_attribute.h - lang/wgsl/ast/let.cc - lang/wgsl/ast/let.h - lang/wgsl/ast/literal_expression.cc - lang/wgsl/ast/literal_expression.h - lang/wgsl/ast/location_attribute.cc - lang/wgsl/ast/location_attribute.h - lang/wgsl/ast/loop_statement.cc - lang/wgsl/ast/loop_statement.h - lang/wgsl/ast/member_accessor_expression.cc - lang/wgsl/ast/member_accessor_expression.h - lang/wgsl/ast/module.cc - lang/wgsl/ast/module.h - lang/wgsl/ast/must_use_attribute.cc - lang/wgsl/ast/must_use_attribute.h - lang/wgsl/ast/node.cc - lang/wgsl/ast/node.h - lang/wgsl/ast/node_id.h - lang/wgsl/ast/override.cc - lang/wgsl/ast/override.h - lang/wgsl/ast/parameter.cc - lang/wgsl/ast/parameter.h - lang/wgsl/ast/phony_expression.cc - lang/wgsl/ast/phony_expression.h - lang/wgsl/ast/pipeline_stage.cc - lang/wgsl/ast/pipeline_stage.h - lang/wgsl/ast/return_statement.cc - lang/wgsl/ast/return_statement.h - lang/wgsl/ast/stage_attribute.cc - lang/wgsl/ast/stage_attribute.h - lang/wgsl/ast/statement.cc - lang/wgsl/ast/statement.h - lang/wgsl/ast/stride_attribute.cc - lang/wgsl/ast/stride_attribute.h - lang/wgsl/ast/struct.cc - lang/wgsl/ast/struct.h - lang/wgsl/ast/struct_member.cc - lang/wgsl/ast/struct_member.h - lang/wgsl/ast/struct_member_align_attribute.cc - lang/wgsl/ast/struct_member_align_attribute.h - lang/wgsl/ast/struct_member_offset_attribute.cc - lang/wgsl/ast/struct_member_offset_attribute.h - lang/wgsl/ast/struct_member_size_attribute.cc - lang/wgsl/ast/struct_member_size_attribute.h - lang/wgsl/ast/switch_statement.cc - lang/wgsl/ast/switch_statement.h - lang/wgsl/ast/templated_identifier.cc - lang/wgsl/ast/templated_identifier.h - lang/wgsl/ast/transform/add_block_attribute.cc - lang/wgsl/ast/transform/add_block_attribute.h - lang/wgsl/ast/transform/add_empty_entry_point.cc - lang/wgsl/ast/transform/add_empty_entry_point.h - lang/wgsl/ast/transform/array_length_from_uniform.cc - lang/wgsl/ast/transform/array_length_from_uniform.h - lang/wgsl/ast/transform/binding_remapper.cc - lang/wgsl/ast/transform/binding_remapper.h - lang/wgsl/ast/transform/builtin_polyfill.cc - lang/wgsl/ast/transform/builtin_polyfill.h - lang/wgsl/ast/transform/calculate_array_length.cc - lang/wgsl/ast/transform/calculate_array_length.h - lang/wgsl/ast/transform/canonicalize_entry_point_io.cc - lang/wgsl/ast/transform/canonicalize_entry_point_io.h - lang/wgsl/ast/transform/clamp_frag_depth.cc - lang/wgsl/ast/transform/clamp_frag_depth.h - lang/wgsl/ast/transform/combine_samplers.cc - lang/wgsl/ast/transform/combine_samplers.h - lang/wgsl/ast/transform/data.cc - lang/wgsl/ast/transform/data.h - lang/wgsl/ast/transform/decompose_memory_access.cc - lang/wgsl/ast/transform/decompose_memory_access.h - lang/wgsl/ast/transform/decompose_strided_array.cc - lang/wgsl/ast/transform/decompose_strided_array.h - lang/wgsl/ast/transform/decompose_strided_matrix.cc - lang/wgsl/ast/transform/decompose_strided_matrix.h - lang/wgsl/ast/transform/demote_to_helper.cc - lang/wgsl/ast/transform/demote_to_helper.h - lang/wgsl/ast/transform/direct_variable_access.cc - lang/wgsl/ast/transform/direct_variable_access.h - lang/wgsl/ast/transform/disable_uniformity_analysis.cc - lang/wgsl/ast/transform/disable_uniformity_analysis.h - lang/wgsl/ast/transform/expand_compound_assignment.cc - lang/wgsl/ast/transform/expand_compound_assignment.h - lang/wgsl/ast/transform/first_index_offset.cc - lang/wgsl/ast/transform/first_index_offset.h - lang/wgsl/ast/transform/fold_trivial_lets.cc - lang/wgsl/ast/transform/fold_trivial_lets.h - lang/wgsl/ast/transform/for_loop_to_loop.cc - lang/wgsl/ast/transform/for_loop_to_loop.h - lang/wgsl/ast/transform/get_insertion_point.cc - lang/wgsl/ast/transform/get_insertion_point.h - lang/wgsl/ast/transform/hoist_to_decl_before.cc - lang/wgsl/ast/transform/hoist_to_decl_before.h - lang/wgsl/ast/transform/localize_struct_array_assignment.cc - lang/wgsl/ast/transform/localize_struct_array_assignment.h - lang/wgsl/ast/transform/manager.cc - lang/wgsl/ast/transform/manager.h - lang/wgsl/ast/transform/merge_return.cc - lang/wgsl/ast/transform/merge_return.h - lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc - lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.h - lang/wgsl/ast/transform/msl_subgroup_ballot.cc - lang/wgsl/ast/transform/msl_subgroup_ballot.h - lang/wgsl/ast/transform/multiplanar_external_texture.cc - lang/wgsl/ast/transform/multiplanar_external_texture.h - lang/wgsl/ast/transform/num_workgroups_from_uniform.cc - lang/wgsl/ast/transform/num_workgroups_from_uniform.h - lang/wgsl/ast/transform/packed_vec3.cc - lang/wgsl/ast/transform/packed_vec3.h - lang/wgsl/ast/transform/pad_structs.cc - lang/wgsl/ast/transform/pad_structs.h - lang/wgsl/ast/transform/preserve_padding.cc - lang/wgsl/ast/transform/preserve_padding.h - lang/wgsl/ast/transform/promote_initializers_to_let.cc - lang/wgsl/ast/transform/promote_initializers_to_let.h - lang/wgsl/ast/transform/promote_side_effects_to_decl.cc - lang/wgsl/ast/transform/promote_side_effects_to_decl.h - lang/wgsl/ast/transform/remove_continue_in_switch.cc - lang/wgsl/ast/transform/remove_continue_in_switch.h - lang/wgsl/ast/transform/remove_phonies.cc - lang/wgsl/ast/transform/remove_phonies.h - lang/wgsl/ast/transform/remove_unreachable_statements.cc - lang/wgsl/ast/transform/remove_unreachable_statements.h - lang/wgsl/ast/transform/renamer.cc - lang/wgsl/ast/transform/renamer.h - lang/wgsl/ast/transform/robustness.cc - lang/wgsl/ast/transform/robustness.h - lang/wgsl/ast/transform/simplify_pointers.cc - lang/wgsl/ast/transform/simplify_pointers.h - lang/wgsl/ast/transform/single_entry_point.cc - lang/wgsl/ast/transform/single_entry_point.h - lang/wgsl/ast/transform/spirv_atomic.cc - lang/wgsl/ast/transform/spirv_atomic.h - lang/wgsl/ast/transform/std140.cc - lang/wgsl/ast/transform/std140.h - lang/wgsl/ast/transform/substitute_override.cc - lang/wgsl/ast/transform/substitute_override.h - lang/wgsl/ast/transform/texture_1d_to_2d.cc - lang/wgsl/ast/transform/texture_1d_to_2d.h - lang/wgsl/ast/transform/transform.cc - lang/wgsl/ast/transform/transform.h - lang/wgsl/ast/transform/truncate_interstage_variables.cc - lang/wgsl/ast/transform/truncate_interstage_variables.h - lang/wgsl/ast/transform/unshadow.cc - lang/wgsl/ast/transform/unshadow.h - lang/wgsl/ast/transform/var_for_dynamic_index.cc - lang/wgsl/ast/transform/var_for_dynamic_index.h - lang/wgsl/ast/transform/vectorize_matrix_conversions.cc - lang/wgsl/ast/transform/vectorize_matrix_conversions.h - lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc - lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.h - lang/wgsl/ast/transform/vertex_pulling.cc - lang/wgsl/ast/transform/vertex_pulling.h - lang/wgsl/ast/transform/while_to_loop.cc - lang/wgsl/ast/transform/while_to_loop.h - lang/wgsl/ast/transform/zero_init_workgroup_memory.cc - lang/wgsl/ast/transform/zero_init_workgroup_memory.h - lang/wgsl/ast/traverse_expressions.h - lang/wgsl/ast/type.cc - lang/wgsl/ast/type.h - lang/wgsl/ast/type_decl.cc - lang/wgsl/ast/type_decl.h - lang/wgsl/ast/unary_op_expression.cc - lang/wgsl/ast/unary_op_expression.h - lang/wgsl/ast/var.cc - lang/wgsl/ast/var.h - lang/wgsl/ast/variable.cc - lang/wgsl/ast/variable.h - lang/wgsl/ast/variable_decl_statement.cc - lang/wgsl/ast/variable_decl_statement.h - lang/wgsl/ast/while_statement.cc - lang/wgsl/ast/while_statement.h - lang/wgsl/ast/workgroup_attribute.cc - lang/wgsl/ast/workgroup_attribute.h - lang/wgsl/helpers/append_vector.cc - lang/wgsl/helpers/append_vector.h - lang/wgsl/helpers/check_supported_extensions.cc - lang/wgsl/helpers/check_supported_extensions.h - lang/wgsl/helpers/flatten_bindings.cc - lang/wgsl/helpers/flatten_bindings.h - lang/wgsl/inspector/entry_point.cc - lang/wgsl/inspector/entry_point.h - lang/wgsl/inspector/inspector.cc - lang/wgsl/inspector/inspector.h - lang/wgsl/inspector/resource_binding.cc - lang/wgsl/inspector/resource_binding.h - lang/wgsl/inspector/scalar.cc - lang/wgsl/inspector/scalar.h - lang/wgsl/program/clone_context.cc - lang/wgsl/program/clone_context.h - lang/wgsl/program/program.cc - lang/wgsl/program/program.h - lang/wgsl/program/program_builder.cc - lang/wgsl/program/program_builder.h - lang/wgsl/sem/accessor_expression.cc - lang/wgsl/sem/accessor_expression.h - lang/wgsl/sem/array_count.cc - lang/wgsl/sem/array_count.h - lang/wgsl/sem/behavior.cc - lang/wgsl/sem/behavior.h - lang/wgsl/sem/block_statement.cc - lang/wgsl/sem/block_statement.h - lang/wgsl/sem/break_if_statement.cc - lang/wgsl/sem/break_if_statement.h - lang/wgsl/sem/builtin.cc - lang/wgsl/sem/builtin.h - lang/wgsl/sem/builtin_enum_expression.cc - lang/wgsl/sem/builtin_enum_expression.h - lang/wgsl/sem/call.cc - lang/wgsl/sem/call.h - lang/wgsl/sem/call_target.cc - lang/wgsl/sem/call_target.h - lang/core/evaluation_stage.h - lang/wgsl/sem/expression.cc - lang/wgsl/sem/expression.h - lang/wgsl/sem/for_loop_statement.cc - lang/wgsl/sem/for_loop_statement.h - lang/wgsl/sem/function.cc - lang/wgsl/sem/function_expression.cc - lang/wgsl/sem/function_expression.h - lang/wgsl/sem/if_statement.cc - lang/wgsl/sem/if_statement.h - lang/wgsl/sem/index_accessor_expression.cc - lang/wgsl/sem/index_accessor_expression.h - lang/wgsl/sem/info.cc - lang/wgsl/sem/info.h - lang/wgsl/sem/load.cc - lang/wgsl/sem/load.h - lang/wgsl/sem/loop_statement.cc - lang/wgsl/sem/loop_statement.h - lang/wgsl/sem/materialize.cc - lang/wgsl/sem/materialize.h - lang/wgsl/sem/member_accessor_expression.cc - lang/wgsl/sem/module.cc - lang/wgsl/sem/module.h - lang/wgsl/sem/node.cc - lang/wgsl/sem/node.h - lang/wgsl/sem/pipeline_stage_set.h - lang/wgsl/sem/sampler_texture_pair.h - lang/wgsl/sem/statement.cc - lang/wgsl/sem/struct.cc - lang/wgsl/sem/struct.h - lang/wgsl/sem/switch_statement.cc - lang/wgsl/sem/switch_statement.h - lang/wgsl/sem/type_expression.cc - lang/wgsl/sem/type_expression.h - lang/wgsl/sem/type_mappings.h - lang/wgsl/sem/value_constructor.cc - lang/wgsl/sem/value_constructor.h - lang/wgsl/sem/value_conversion.cc - lang/wgsl/sem/value_conversion.h - lang/wgsl/sem/value_expression.cc - lang/wgsl/sem/value_expression.h - lang/wgsl/sem/variable.cc - lang/wgsl/sem/while_statement.cc - lang/wgsl/sem/while_statement.h - lang/core/constant/eval.cc - lang/core/constant/eval.h - lang/core/intrinsic/ctor_conv.cc - lang/core/intrinsic/ctor_conv.h - lang/core/intrinsic/data/data.cc - lang/core/intrinsic/data/data.h - lang/core/intrinsic/data/type_matchers.h - lang/core/intrinsic/table.cc - lang/core/intrinsic/table.h - lang/wgsl/resolver/dependency_graph.cc - lang/wgsl/resolver/dependency_graph.h - lang/wgsl/resolver/resolve.cc - lang/wgsl/resolver/resolve.h - lang/wgsl/resolver/resolver.cc - lang/wgsl/resolver/resolver.h - lang/wgsl/resolver/sem_helper.cc - lang/wgsl/resolver/sem_helper.h - lang/wgsl/resolver/uniformity.cc - lang/wgsl/resolver/uniformity.h - lang/wgsl/resolver/validator.cc - lang/wgsl/resolver/validator.h - utils/cli/cli.cc - utils/cli/cli.h - utils/containers/bitset.h - utils/containers/enum_set.h - utils/containers/hashmap.h - utils/containers/hashmap_base.h - utils/containers/hashset.h - utils/containers/map.h - utils/containers/predicates.h - utils/containers/scope_stack.h - utils/containers/slice.h - utils/containers/unique_allocator.h - utils/containers/unique_vector.h - utils/containers/vector.h - utils/id/generation_id.cc - utils/id/generation_id.h - utils/macros/compiler.h - utils/macros/concat.h - utils/macros/foreach.h - utils/macros/scoped_assignment.h - utils/math/crc32.h - utils/math/hash.h - utils/math/math.h - utils/memory/bitcast.h - utils/memory/block_allocator.h - utils/memory/bump_allocator.h - utils/reflection/reflection.h - utils/rtti/castable.cc - utils/rtti/castable.h - utils/rtti/switch.h - utils/strconv/float_to_string.cc - utils/strconv/float_to_string.h - utils/strconv/parse_num.cc - utils/strconv/parse_num.h - utils/text/string.cc - utils/text/string.h - utils/text/string_stream.cc - utils/text/string_stream.h - utils/symbol/symbol.cc - utils/symbol/symbol.h - utils/symbol/symbol_table.cc - utils/symbol/symbol_table.h - utils/generator/text_generator.cc - utils/generator/text_generator.h - utils/traits/traits.h -) - -tint_generated(lang/core/access BENCH TEST) -tint_generated(lang/core/address_space BENCH TEST) -tint_generated(lang/core/attribute BENCH TEST) -tint_generated(lang/core/builtin BENCH TEST) -tint_generated(lang/core/builtin_value BENCH TEST) -tint_generated(lang/core/diagnostic_rule BENCH TEST) -tint_generated(lang/core/diagnostic_severity BENCH TEST) -tint_generated(lang/core/extension BENCH TEST) -tint_generated(lang/core/function) -tint_generated(lang/core/interpolation_sampling BENCH TEST) -tint_generated(lang/core/interpolation_type BENCH TEST) -tint_generated(lang/core/texel_format BENCH TEST) - -tint_generated(lang/core/intrinsic/ctor_conv) -tint_generated(lang/core/parameter_usage) - -if(UNIX) - list(APPEND TINT_LIB_SRCS utils/diagnostic/printer_posix.cc) -elseif(WIN32) - list(APPEND TINT_LIB_SRCS utils/diagnostic/printer_windows.cc) -else() - list(APPEND TINT_LIB_SRCS utils/diagnostic/printer_other.cc) -endif() - -if(${TINT_BUILD_SPV_READER}) - list(APPEND TINT_LIB_SRCS - lang/spirv/reader/ast_parser/ast_parser.cc - lang/spirv/reader/ast_parser/ast_parser.h - lang/spirv/reader/ast_parser/attributes.h - lang/spirv/reader/ast_parser/construct.cc - lang/spirv/reader/ast_parser/construct.h - lang/spirv/reader/ast_parser/entry_point_info.cc - lang/spirv/reader/ast_parser/entry_point_info.h - lang/spirv/reader/ast_parser/enum_converter.cc - lang/spirv/reader/ast_parser/enum_converter.h - lang/spirv/reader/ast_parser/fail_stream.h - lang/spirv/reader/ast_parser/function.cc - lang/spirv/reader/ast_parser/function.h - lang/spirv/reader/ast_parser/namer.cc - lang/spirv/reader/ast_parser/namer.h - lang/spirv/reader/ast_parser/parse.cc - lang/spirv/reader/ast_parser/parse.h - lang/spirv/reader/ast_parser/type.cc - lang/spirv/reader/ast_parser/type.h - lang/spirv/reader/ast_parser/usage.cc - lang/spirv/reader/ast_parser/usage.h - lang/spirv/reader/reader.cc - lang/spirv/reader/reader.h - ) -endif() - -if(${TINT_BUILD_WGSL_READER}) - list(APPEND TINT_LIB_SRCS - lang/wgsl/reader/parser/classify_template_args.cc - lang/wgsl/reader/parser/classify_template_args.h - lang/wgsl/reader/parser/detail.h - lang/wgsl/reader/parser/lexer.cc - lang/wgsl/reader/parser/lexer.h - lang/wgsl/reader/parser/parser.cc - lang/wgsl/reader/parser/parser.h - lang/wgsl/reader/parser/token.cc - lang/wgsl/reader/parser/token.h - lang/wgsl/reader/reader.cc - lang/wgsl/reader/reader.h - ) - - if(${TINT_BUILD_IR}) - list(APPEND TINT_LIB_SRCS - lang/wgsl/reader/program_to_ir/program_to_ir.cc - lang/wgsl/reader/program_to_ir/program_to_ir.h - ) - endif() -endif() - -if(${TINT_BUILD_SPV_WRITER}) - list(APPEND TINT_LIB_SRCS - lang/spirv/writer/common/binary_writer.cc - lang/spirv/writer/common/binary_writer.h - lang/spirv/writer/common/function.cc - lang/spirv/writer/common/function.h - lang/spirv/writer/common/instruction.cc - lang/spirv/writer/common/instruction.h - lang/spirv/writer/common/module.cc - lang/spirv/writer/common/module.h - lang/spirv/writer/common/operand.cc - lang/spirv/writer/common/operand.h - lang/spirv/writer/writer.cc - lang/spirv/writer/writer.h - lang/spirv/writer/ast_printer/builder.cc - lang/spirv/writer/ast_printer/builder.h - lang/spirv/writer/ast_printer/ast_printer.cc - lang/spirv/writer/ast_printer/ast_printer.h - lang/spirv/writer/ast_printer/scalar_constant.h - ) - - if(${TINT_BUILD_IR}) - list(APPEND TINT_LIB_SRCS - lang/spirv/writer/printer/printer.cc - lang/spirv/writer/printer/printer.h - lang/spirv/writer/raise/builtin_polyfill.cc - lang/spirv/writer/raise/builtin_polyfill.h - lang/spirv/writer/raise/expand_implicit_splats.cc - lang/spirv/writer/raise/expand_implicit_splats.h - lang/spirv/writer/raise/handle_matrix_arithmetic.cc - lang/spirv/writer/raise/handle_matrix_arithmetic.h - lang/spirv/writer/raise/merge_return.cc - lang/spirv/writer/raise/merge_return.h - lang/spirv/writer/raise/raise.cc - lang/spirv/writer/raise/raise.h - lang/spirv/writer/raise/shader_io.cc - lang/spirv/writer/raise/shader_io.h - lang/spirv/writer/raise/var_for_dynamic_index.cc - lang/spirv/writer/raise/var_for_dynamic_index.h - ) - endif() -endif() - -if(${TINT_BUILD_WGSL_WRITER}) - list(APPEND TINT_LIB_SRCS - lang/wgsl/writer/options.cc - lang/wgsl/writer/options.h - lang/wgsl/writer/output.cc - lang/wgsl/writer/output.h - lang/wgsl/writer/writer.cc - lang/wgsl/writer/writer.h - lang/wgsl/writer/ast_printer/ast_printer.cc - lang/wgsl/writer/ast_printer/ast_printer.h - ) - - if(${TINT_BUILD_IR}) - list(APPEND TINT_LIB_SRCS - lang/wgsl/writer/ir_to_program/ir_to_program.cc - lang/wgsl/writer/ir_to_program/ir_to_program.h - lang/wgsl/writer/ir_to_program/rename_conflicts.cc - lang/wgsl/writer/ir_to_program/rename_conflicts.h - ) - endif() -endif() - -if(${TINT_BUILD_MSL_WRITER}) - list(APPEND TINT_LIB_SRCS - lang/msl/writer/common/options.cc - lang/msl/writer/common/options.h - lang/msl/writer/common/printer_support.cc - lang/msl/writer/common/printer_support.h - lang/msl/writer/output.cc - lang/msl/writer/output.h - lang/msl/writer/writer.cc - lang/msl/writer/writer.h - lang/msl/writer/ast_printer/ast_printer.cc - lang/msl/writer/ast_printer/ast_printer.h - ) - - if(${TINT_BUILD_IR}) - list(APPEND TINT_LIB_SRCS - lang/msl/writer/printer/printer.cc - lang/msl/writer/printer/printer.h - lang/msl/writer/raise/raise.cc - lang/msl/writer/raise/raise.h - ) - endif() -endif() - -if(${TINT_BUILD_GLSL_WRITER}) - list(APPEND TINT_LIB_SRCS - lang/glsl/writer/ast_printer/ast_printer.cc - lang/glsl/writer/ast_printer/ast_printer.h - lang/glsl/writer/common/options.cc - lang/glsl/writer/common/options.h - lang/glsl/writer/common/version.h - lang/glsl/writer/output.cc - lang/glsl/writer/output.h - lang/glsl/writer/writer.cc - lang/glsl/writer/writer.h - ) -endif() - -if(${TINT_BUILD_HLSL_WRITER}) - list(APPEND TINT_LIB_SRCS - lang/hlsl/writer/common/options.cc - lang/hlsl/writer/common/options.h - lang/hlsl/writer/output.cc - lang/hlsl/writer/output.h - lang/hlsl/writer/writer.cc - lang/hlsl/writer/writer.h - lang/hlsl/writer/ast_printer/ast_printer.cc - lang/hlsl/writer/ast_printer/ast_printer.h - ) -endif() - -if(${TINT_BUILD_SYNTAX_TREE_WRITER}) - list(APPEND TINT_LIB_SRCS - lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.cc - lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.h - ) -endif() - -if(${TINT_BUILD_IR}) - list(APPEND TINT_LIB_SRCS - lang/core/ir/access.cc - lang/core/ir/access.h - lang/core/ir/binary.cc - lang/core/ir/binary.h - lang/core/ir/bitcast.cc - lang/core/ir/bitcast.h - lang/core/ir/block.cc - lang/core/ir/block.h - lang/core/ir/block_param.cc - lang/core/ir/block_param.h - lang/core/ir/break_if.cc - lang/core/ir/break_if.h - lang/core/ir/builder.cc - lang/core/ir/builder.h - lang/core/ir/builtin_call.cc - lang/core/ir/builtin_call.h - lang/core/ir/call.cc - lang/core/ir/call.h - lang/core/ir/constant.cc - lang/core/ir/constant.h - lang/core/ir/construct.cc - lang/core/ir/construct.h - lang/core/ir/continue.cc - lang/core/ir/continue.h - lang/core/ir/control_instruction.cc - lang/core/ir/control_instruction.h - lang/core/ir/convert.cc - lang/core/ir/convert.h - lang/core/ir/core_builtin_call.cc - lang/core/ir/core_builtin_call.h - lang/core/ir/disassembler.cc - lang/core/ir/disassembler.h - lang/core/ir/discard.cc - lang/core/ir/discard.h - lang/core/ir/exit_if.cc - lang/core/ir/exit_if.h - lang/core/ir/exit_loop.cc - lang/core/ir/exit_loop.h - lang/core/ir/exit_switch.cc - lang/core/ir/exit_switch.h - lang/core/ir/exit.cc - lang/core/ir/exit.h - lang/core/ir/function.cc - lang/core/ir/function.h - lang/core/ir/function_param.cc - lang/core/ir/function_param.h - lang/core/ir/if.cc - lang/core/ir/if.h - lang/core/ir/instruction.cc - lang/core/ir/instruction.h - lang/core/ir/instruction_result.cc - lang/core/ir/instruction_result.h - lang/core/ir/intrinsic_call.cc - lang/core/ir/intrinsic_call.h - lang/core/ir/let.cc - lang/core/ir/let.h - lang/core/ir/load.cc - lang/core/ir/load.h - lang/core/ir/load_vector_element.cc - lang/core/ir/load_vector_element.h - lang/core/ir/location.h - lang/core/ir/loop.cc - lang/core/ir/loop.h - lang/core/ir/module.cc - lang/core/ir/module.h - lang/core/ir/multi_in_block.cc - lang/core/ir/multi_in_block.h - lang/core/ir/next_iteration.cc - lang/core/ir/next_iteration.h - lang/core/ir/operand_instruction.cc - lang/core/ir/operand_instruction.h - lang/core/ir/return.cc - lang/core/ir/return.h - lang/core/ir/store.cc - lang/core/ir/store.h - lang/core/ir/store_vector_element.cc - lang/core/ir/store_vector_element.h - lang/core/ir/switch.cc - lang/core/ir/switch.h - lang/core/ir/swizzle.cc - lang/core/ir/swizzle.h - lang/core/ir/terminate_invocation.cc - lang/core/ir/terminate_invocation.h - lang/core/ir/terminator.cc - lang/core/ir/terminator.h - lang/core/ir/unary.cc - lang/core/ir/unary.h - lang/core/ir/unreachable.cc - lang/core/ir/unreachable.h - lang/core/ir/user_call.cc - lang/core/ir/user_call.h - lang/core/ir/validator.cc - lang/core/ir/validator.h - lang/core/ir/value.cc - lang/core/ir/value.h - lang/core/ir/var.cc - lang/core/ir/var.h - lang/core/ir/transform/add_empty_entry_point.cc - lang/core/ir/transform/add_empty_entry_point.h - lang/core/ir/transform/bgra8unorm_polyfill.cc - lang/core/ir/transform/bgra8unorm_polyfill.h - lang/core/ir/transform/binding_remapper.cc - lang/core/ir/transform/binding_remapper.h - lang/core/ir/transform/block_decorated_structs.cc - lang/core/ir/transform/block_decorated_structs.h - lang/core/ir/transform/builtin_polyfill.cc - lang/core/ir/transform/builtin_polyfill.h - lang/core/ir/transform/demote_to_helper.cc - lang/core/ir/transform/demote_to_helper.h - lang/core/ir/transform/multiplanar_external_texture.cc - lang/core/ir/transform/multiplanar_external_texture.h - lang/core/ir/transform/shader_io.cc - lang/core/ir/transform/shader_io.h - lang/core/ir/transform/std140.cc - lang/core/ir/transform/std140.h - ) -endif() - -if(MSVC) - list(APPEND TINT_LIB_SRCS - tint.natvis - ) -endif() - -## Tint IO utilities. Used by tint_val. -add_library(tint_utils_io - utils/command/command_${TINT_OS_CC_SUFFIX}.cc - utils/command/command.h - utils/file/tmpfile_${TINT_OS_CC_SUFFIX}.cc - utils/file/tmpfile.h -) -tint_default_compile_options(tint_utils_io) -target_link_libraries(tint_utils_io tint_diagnostic_utils) - -## Tint validation utilities. Used by tests and the tint executable. -add_library(tint_val - lang/hlsl/validate/hlsl.cc - lang/hlsl/validate/val.h - lang/msl/validate/msl.cc - lang/msl/validate/val.h -) - # If we're building on mac / ios and we have CoreGraphics, then we can use the # metal API to validate our shaders. This is roughly 4x faster than invoking # the metal shader compiler executable. @@ -939,786 +191,16 @@ endif() endif() -tint_default_compile_options(tint_val) -target_link_libraries(tint_val tint_utils_io) - -## Tint library -add_library(libtint ${TINT_LIB_SRCS}) -tint_default_compile_options(libtint) -target_link_libraries(libtint tint_diagnostic_utils absl_strings) -set_target_properties(libtint PROPERTIES OUTPUT_NAME "tint") - -if (${TINT_BUILD_FUZZERS}) - # Tint library with fuzzer instrumentation - add_library(libtint-fuzz ${TINT_LIB_SRCS}) - tint_default_compile_options(libtint-fuzz) - target_link_libraries(libtint-fuzz tint_diagnostic_utils absl_strings) - if (${COMPILER_IS_LIKE_GNU}) - target_compile_options(libtint-fuzz PRIVATE -fvisibility=hidden) - endif() - - if (NOT ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS} STREQUAL "") - # This is set when the fuzzers are being built by OSS-Fuzz. In this case the - # variable provides the necessary linker flags, and OSS-Fuzz will take care - # of passing suitable compiler flags. - target_link_options(libtint-fuzz PUBLIC ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS}) - else() - # When the fuzzers are being built outside of OSS-Fuzz, specific libFuzzer - # arguments to enable fuzzing are used. - target_compile_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp) - target_link_options(libtint-fuzz PUBLIC -fsanitize=fuzzer -fsanitize-coverage=trace-cmp) - endif() -endif() - -if(${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER}) - tint_spvtools_compile_options(libtint) - if (${TINT_BUILD_FUZZERS}) - tint_spvtools_compile_options(libtint-fuzz) - endif() -endif() - - ################################################################################ # Tests ################################################################################ if(TINT_BUILD_TESTS) - list(APPEND TINT_TEST_SRCS - cmd/test/main_test.cc - lang/core/number_test.cc - lang/core/constant/composite_test.cc - lang/core/constant/manager_test.cc - lang/core/constant/scalar_test.cc - lang/core/constant/splat_test.cc - lang/core/constant/value_test.cc - lang/core/type/array_test.cc - lang/core/type/atomic_test.cc - lang/core/type/bool_test.cc - lang/core/type/builtin_structs_test.cc - lang/core/type/depth_multisampled_texture_test.cc - lang/core/type/depth_texture_test.cc - lang/core/type/external_texture_test.cc - lang/core/type/f16_test.cc - lang/core/type/f32_test.cc - lang/core/type/i32_test.cc - lang/core/type/manager_test.cc - lang/core/type/matrix_test.cc - lang/core/type/multisampled_texture_test.cc - lang/core/type/pointer_test.cc - lang/core/type/reference_test.cc - lang/core/type/sampled_texture_test.cc - lang/core/type/sampler_test.cc - lang/core/type/storage_texture_test.cc - lang/core/type/struct_test.cc - lang/core/type/texture_test.cc - lang/core/type/type_test.cc - lang/core/type/u32_test.cc - lang/core/type/vector_test.cc - lang/wgsl/ast/alias_test.cc - lang/wgsl/ast/assignment_statement_test.cc - lang/wgsl/ast/binary_expression_test.cc - lang/wgsl/ast/binding_attribute_test.cc - lang/wgsl/ast/bitcast_expression_test.cc - lang/wgsl/ast/block_statement_test.cc - lang/wgsl/ast/bool_literal_expression_test.cc - lang/wgsl/ast/break_if_statement_test.cc - lang/wgsl/ast/break_statement_test.cc - lang/wgsl/ast/builtin_attribute_test.cc - lang/wgsl/ast/builtin_texture_helper_test.cc - lang/wgsl/ast/builtin_texture_helper_test.h - lang/wgsl/ast/call_expression_test.cc - lang/wgsl/ast/call_statement_test.cc - lang/wgsl/ast/case_selector_test.cc - lang/wgsl/ast/case_statement_test.cc - lang/wgsl/ast/clone_context_test.cc - lang/wgsl/ast/compound_assignment_statement_test.cc - lang/wgsl/ast/const_assert_test.cc - lang/wgsl/ast/continue_statement_test.cc - lang/wgsl/ast/diagnostic_attribute_test.cc - lang/wgsl/ast/diagnostic_control_test.cc - lang/wgsl/ast/diagnostic_directive_test.cc - lang/wgsl/ast/diagnostic_rule_name_test.cc - lang/wgsl/ast/discard_statement_test.cc - lang/wgsl/ast/enable_test.cc - lang/wgsl/ast/float_literal_expression_test.cc - lang/wgsl/ast/for_loop_statement_test.cc - lang/wgsl/ast/function_test.cc - lang/wgsl/ast/group_attribute_test.cc - lang/wgsl/ast/helper_test.h - lang/wgsl/ast/helper_test.cc - lang/wgsl/ast/id_attribute_test.cc - lang/wgsl/ast/identifier_expression_test.cc - lang/wgsl/ast/identifier_test.cc - lang/wgsl/ast/if_statement_test.cc - lang/wgsl/ast/increment_decrement_statement_test.cc - lang/wgsl/ast/index_accessor_expression_test.cc - lang/wgsl/ast/index_attribute_test.cc - lang/wgsl/ast/int_literal_expression_test.cc - lang/wgsl/ast/interpolate_attribute_test.cc - 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_test.cc - lang/wgsl/ast/phony_expression_test.cc - lang/wgsl/ast/return_statement_test.cc - lang/wgsl/ast/stage_attribute_test.cc - lang/wgsl/ast/stride_attribute_test.cc - lang/wgsl/ast/struct_member_align_attribute_test.cc - lang/wgsl/ast/struct_member_offset_attribute_test.cc - lang/wgsl/ast/struct_member_size_attribute_test.cc - lang/wgsl/ast/struct_member_test.cc - lang/wgsl/ast/struct_test.cc - lang/wgsl/ast/switch_statement_test.cc - lang/wgsl/ast/templated_identifier_test.cc - lang/wgsl/ast/transform/manager_test.cc - lang/wgsl/ast/transform/transform_test.cc - lang/wgsl/ast/traverse_expressions_test.cc - lang/wgsl/ast/unary_op_expression_test.cc - lang/wgsl/ast/variable_decl_statement_test.cc - lang/wgsl/ast/variable_test.cc - lang/wgsl/ast/while_statement_test.cc - lang/wgsl/ast/workgroup_attribute_test.cc - lang/wgsl/helpers/append_vector_test.cc - lang/wgsl/helpers/check_supported_extensions_test.cc - lang/wgsl/helpers/flatten_bindings_test.cc - lang/wgsl/program/clone_context_test.cc - lang/wgsl/program/program_builder_test.cc - lang/wgsl/program/program_test.cc - lang/wgsl/sem/builtin_test.cc - lang/wgsl/sem/diagnostic_severity_test.cc - lang/wgsl/sem/struct_test.cc - lang/wgsl/sem/value_expression_test.cc - lang/wgsl/resolver/address_space_layout_validation_test.cc - lang/wgsl/resolver/address_space_validation_test.cc - lang/wgsl/resolver/alias_analysis_test.cc - lang/wgsl/resolver/array_accessor_test.cc - lang/wgsl/resolver/assignment_validation_test.cc - lang/wgsl/resolver/atomics_test.cc - lang/wgsl/resolver/atomics_validation_test.cc - lang/wgsl/resolver/attribute_validation_test.cc - lang/wgsl/resolver/bitcast_validation_test.cc - lang/wgsl/resolver/builtin_enum_test.cc - lang/wgsl/resolver/builtin_structs_test.cc - lang/wgsl/resolver/builtin_test.cc - lang/wgsl/resolver/builtin_validation_test.cc - lang/wgsl/resolver/builtins_validation_test.cc - lang/wgsl/resolver/call_test.cc - lang/wgsl/resolver/call_validation_test.cc - lang/wgsl/resolver/compound_assignment_validation_test.cc - lang/wgsl/resolver/compound_statement_test.cc - lang/wgsl/resolver/const_assert_test.cc - lang/core/constant/eval_binary_op_test.cc - lang/core/constant/eval_bitcast_test.cc - lang/core/constant/eval_builtin_test.cc - lang/core/constant/eval_construction_test.cc - lang/core/constant/eval_conversion_test.cc - lang/core/constant/eval_indexing_test.cc - lang/core/constant/eval_member_access_test.cc - lang/core/constant/eval_runtime_semantics_test.cc - lang/core/constant/eval_test.h - lang/core/constant/eval_unary_op_test.cc - lang/wgsl/resolver/control_block_validation_test.cc - lang/wgsl/resolver/dependency_graph_test.cc - lang/wgsl/resolver/diagnostic_control_test.cc - lang/wgsl/resolver/dual_source_blending_extension_test.cc - lang/wgsl/resolver/entry_point_validation_test.cc - lang/wgsl/resolver/evaluation_stage_test.cc - lang/wgsl/resolver/expression_kind_test.cc - lang/wgsl/resolver/f16_extension_test.cc - lang/wgsl/resolver/function_validation_test.cc - lang/wgsl/resolver/host_shareable_validation_test.cc - lang/wgsl/resolver/increment_decrement_validation_test.cc - lang/wgsl/resolver/inferred_type_test.cc - lang/core/intrinsic/table_test.cc - lang/wgsl/resolver/is_host_shareable_test.cc - lang/wgsl/resolver/is_storeable_test.cc - lang/wgsl/resolver/load_test.cc - lang/wgsl/resolver/materialize_test.cc - lang/wgsl/resolver/override_test.cc - lang/wgsl/resolver/ptr_ref_test.cc - lang/wgsl/resolver/ptr_ref_validation_test.cc - lang/wgsl/resolver/resolver_behavior_test.cc - lang/wgsl/resolver/resolver_helper_test.cc - lang/wgsl/resolver/resolver_helper_test.h - lang/wgsl/resolver/resolver_test.cc - lang/wgsl/resolver/root_identifier_test.cc - lang/wgsl/resolver/side_effects_test.cc - lang/wgsl/resolver/struct_address_space_use_test.cc - lang/wgsl/resolver/struct_layout_test.cc - lang/wgsl/resolver/struct_pipeline_stage_use_test.cc - lang/wgsl/resolver/subgroups_extension_test.cc - lang/wgsl/resolver/type_validation_test.cc - lang/wgsl/resolver/unresolved_identifier_test.cc - lang/wgsl/resolver/validation_test.cc - lang/wgsl/resolver/validator_is_storeable_test.cc - lang/wgsl/resolver/value_constructor_validation_test.cc - lang/wgsl/resolver/variable_test.cc - lang/wgsl/resolver/variable_validation_test.cc - utils/cli/cli_test.cc - utils/command/command_test.cc - utils/containers/bitset_test.cc - utils/containers/enum_set_test.cc - utils/containers/hashmap_test.cc - utils/containers/hashset_test.cc - utils/containers/map_test.cc - utils/containers/predicates_test.cc - utils/containers/reverse_test.cc - utils/containers/scope_stack_test.cc - utils/containers/slice_test.cc - utils/containers/transform_test.cc - utils/containers/unique_allocator_test.cc - utils/containers/unique_vector_test.cc - utils/containers/vector_test.cc - utils/diagnostic/diagnostic_test.cc - utils/diagnostic/formatter_test.cc - utils/diagnostic/printer_test.cc - utils/diagnostic/source_test.cc - utils/file/tmpfile_test.cc - utils/ice/ice_test.cc - utils/macros/defer_test.cc - utils/macros/scoped_assignment_test.cc - utils/math/crc32_test.cc - utils/math/hash_test.cc - utils/math/math_test.cc - utils/memory/bitcast_test.cc - utils/memory/block_allocator_test.cc - utils/memory/bump_allocator_test.cc - utils/reflection/reflection_test.cc - utils/result/result_test.cc - utils/rtti/castable_test.cc - utils/rtti/switch_test.cc - utils/strconv/float_to_string_test.cc - utils/text/string_stream_test.cc - utils/text/string_test.cc - utils/symbol/symbol_table_test.cc - utils/symbol/symbol_test.cc - utils/text/unicode_test.cc - utils/traits/traits_test.cc - ) + add_executable(tint_unittests) - # Note, the source files are included here otherwise the cmd sources would not be included in the - # test binary. - list(APPEND TINT_TEST_SRCS - cmd/common/generate_external_texture_bindings.cc - cmd/common/generate_external_texture_bindings.h - cmd/common/generate_external_texture_bindings_test.cc - ) + tint_default_compile_options(tint_unittests) - # Uniformity analysis tests depend on WGSL reader - if(${TINT_BUILD_WGSL_READER}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/resolver/uniformity_test.cc - ) - endif() - - # Inspector tests depend on WGSL reader - if(${TINT_BUILD_WGSL_READER}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/inspector/inspector_builder_test.cc - lang/wgsl/inspector/inspector_builder_test.h - lang/wgsl/inspector/inspector_runner_test.cc - lang/wgsl/inspector/inspector_runner_test.h - lang/wgsl/inspector/inspector_test.cc - ) - endif() - - if(${TINT_BUILD_SPV_READER} AND ${TINT_BUILD_WGSL_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/spirv/reader/ast_parser/ast_parser_test.cc - lang/spirv/reader/ast_parser/barrier_test.cc - lang/spirv/reader/ast_parser/constant_test.cc - lang/spirv/reader/ast_parser/convert_member_decoration_test.cc - lang/spirv/reader/ast_parser/convert_type_test.cc - lang/spirv/reader/ast_parser/enum_converter_test.cc - lang/spirv/reader/ast_parser/fail_stream_test.cc - lang/spirv/reader/ast_parser/function_arithmetic_test.cc - lang/spirv/reader/ast_parser/function_bit_test.cc - lang/spirv/reader/ast_parser/function_call_test.cc - lang/spirv/reader/ast_parser/function_cfg_test.cc - lang/spirv/reader/ast_parser/function_composite_test.cc - lang/spirv/reader/ast_parser/function_conversion_test.cc - lang/spirv/reader/ast_parser/module_function_decl_test.cc - lang/spirv/reader/ast_parser/function_decl_test.cc - lang/spirv/reader/ast_parser/function_glsl_std_450_test.cc - lang/spirv/reader/ast_parser/function_logical_test.cc - lang/spirv/reader/ast_parser/function_memory_test.cc - lang/spirv/reader/ast_parser/function_misc_test.cc - lang/spirv/reader/ast_parser/function_var_test.cc - lang/spirv/reader/ast_parser/get_decorations_test.cc - lang/spirv/reader/ast_parser/handle_test.cc - lang/spirv/reader/ast_parser/helper_test.cc - lang/spirv/reader/ast_parser/helper_test.h - lang/spirv/reader/ast_parser/import_test.cc - lang/spirv/reader/ast_parser/module_var_test.cc - lang/spirv/reader/ast_parser/named_types_test.cc - lang/spirv/reader/ast_parser/namer_test.cc - lang/spirv/reader/ast_parser/parser_test.cc - lang/spirv/reader/ast_parser/spirv_tools_helpers_test.cc - lang/spirv/reader/ast_parser/spirv_tools_helpers_test.h - lang/spirv/reader/ast_parser/type_test.cc - lang/spirv/reader/ast_parser/usage_test.cc - lang/spirv/reader/ast_parser/user_name_test.cc - ) - endif() - - - if(${TINT_BUILD_IR}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/helpers/ir_program_test.h - ) - endif() - - if(${TINT_BUILD_WGSL_READER}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/reader/parser/additive_expression_test.cc - lang/wgsl/reader/parser/argument_expression_list_test.cc - lang/wgsl/reader/parser/assignment_stmt_test.cc - lang/wgsl/reader/parser/bitwise_expression_test.cc - lang/wgsl/reader/parser/break_stmt_test.cc - lang/wgsl/reader/parser/bug_cases_test.cc - lang/wgsl/reader/parser/call_stmt_test.cc - lang/wgsl/reader/parser/classify_template_args_test.cc - lang/wgsl/reader/parser/compound_stmt_test.cc - lang/wgsl/reader/parser/const_literal_test.cc - lang/wgsl/reader/parser/continue_stmt_test.cc - lang/wgsl/reader/parser/continuing_stmt_test.cc - lang/wgsl/reader/parser/core_lhs_expression_test.cc - lang/wgsl/reader/parser/diagnostic_attribute_test.cc - lang/wgsl/reader/parser/diagnostic_control_test.cc - lang/wgsl/reader/parser/diagnostic_directive_test.cc - lang/wgsl/reader/parser/enable_directive_test.cc - lang/wgsl/reader/parser/error_msg_test.cc - lang/wgsl/reader/parser/error_resync_test.cc - lang/wgsl/reader/parser/expression_test.cc - lang/wgsl/reader/parser/for_stmt_test.cc - lang/wgsl/reader/parser/function_attribute_list_test.cc - lang/wgsl/reader/parser/function_attribute_test.cc - lang/wgsl/reader/parser/function_decl_test.cc - lang/wgsl/reader/parser/function_header_test.cc - lang/wgsl/reader/parser/global_constant_decl_test.cc - lang/wgsl/reader/parser/global_decl_test.cc - lang/wgsl/reader/parser/global_variable_decl_test.cc - lang/wgsl/reader/parser/helper_test.cc - lang/wgsl/reader/parser/helper_test.h - lang/wgsl/reader/parser/if_stmt_test.cc - lang/wgsl/reader/parser/increment_decrement_stmt_test.cc - lang/wgsl/reader/parser/lexer_test.cc - lang/wgsl/reader/parser/lhs_expression_test.cc - lang/wgsl/reader/parser/loop_stmt_test.cc - lang/wgsl/reader/parser/math_expression_test.cc - lang/wgsl/reader/parser/multiplicative_expression_test.cc - lang/wgsl/reader/parser/param_list_test.cc - lang/wgsl/reader/parser/paren_expression_test.cc - lang/wgsl/reader/parser/parser_test.cc - lang/wgsl/reader/parser/primary_expression_test.cc - lang/wgsl/reader/parser/relational_expression_test.cc - lang/wgsl/reader/parser/require_directive_test.cc - lang/wgsl/reader/parser/reserved_keyword_test.cc - lang/wgsl/reader/parser/shift_expression_test.cc - lang/wgsl/reader/parser/singular_expression_test.cc - lang/wgsl/reader/parser/statement_test.cc - lang/wgsl/reader/parser/statements_test.cc - lang/wgsl/reader/parser/struct_attribute_decl_test.cc - lang/wgsl/reader/parser/struct_body_decl_test.cc - lang/wgsl/reader/parser/struct_decl_test.cc - lang/wgsl/reader/parser/struct_member_attribute_decl_test.cc - lang/wgsl/reader/parser/struct_member_attribute_test.cc - lang/wgsl/reader/parser/struct_member_test.cc - lang/wgsl/reader/parser/switch_body_test.cc - lang/wgsl/reader/parser/switch_stmt_test.cc - lang/wgsl/reader/parser/token_test.cc - lang/wgsl/reader/parser/type_alias_test.cc - lang/wgsl/reader/parser/type_decl_test.cc - lang/wgsl/reader/parser/unary_expression_test.cc - lang/wgsl/reader/parser/variable_attribute_list_test.cc - lang/wgsl/reader/parser/variable_attribute_test.cc - lang/wgsl/reader/parser/variable_decl_test.cc - lang/wgsl/reader/parser/variable_ident_decl_test.cc - lang/wgsl/reader/parser/variable_qualifier_test.cc - lang/wgsl/reader/parser/variable_stmt_test.cc - lang/wgsl/reader/parser/while_stmt_test.cc - ) - - if(${TINT_BUILD_IR}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/reader/program_to_ir/accessor_test.cc - lang/wgsl/reader/program_to_ir/binary_test.cc - lang/wgsl/reader/program_to_ir/builtin_test.cc - lang/wgsl/reader/program_to_ir/call_test.cc - lang/wgsl/reader/program_to_ir/function_test.cc - lang/wgsl/reader/program_to_ir/let_test.cc - lang/wgsl/reader/program_to_ir/literal_test.cc - lang/wgsl/reader/program_to_ir/materialize_test.cc - lang/wgsl/reader/program_to_ir/program_to_ir_test.cc - lang/wgsl/reader/program_to_ir/shadowing_test.cc - lang/wgsl/reader/program_to_ir/store_test.cc - lang/wgsl/reader/program_to_ir/unary_test.cc - lang/wgsl/reader/program_to_ir/var_test.cc - ) - endif() - endif() - - if(${TINT_BUILD_SPV_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/spirv/writer/ast_printer/accessor_expression_test.cc - lang/spirv/writer/ast_printer/assign_test.cc - lang/spirv/writer/ast_printer/ast_builtin_test.cc - lang/spirv/writer/ast_printer/ast_discard_test.cc - lang/spirv/writer/ast_printer/ast_function_test.cc - lang/spirv/writer/ast_printer/ast_if_test.cc - lang/spirv/writer/ast_printer/ast_loop_test.cc - lang/spirv/writer/ast_printer/ast_printer_test.cc - lang/spirv/writer/ast_printer/ast_switch_test.cc - lang/spirv/writer/ast_printer/ast_type_test.cc - lang/spirv/writer/ast_printer/binary_expression_test.cc - lang/spirv/writer/ast_printer/bitcast_expression_test.cc - lang/spirv/writer/ast_printer/block_test.cc - lang/spirv/writer/ast_printer/builtin_texture_test.cc - lang/spirv/writer/ast_printer/call_test.cc - lang/spirv/writer/ast_printer/const_assert_test.cc - lang/spirv/writer/ast_printer/constructor_expression_test.cc - lang/spirv/writer/ast_printer/entry_point_test.cc - lang/spirv/writer/ast_printer/format_conversion_test.cc - lang/spirv/writer/ast_printer/function_attribute_test.cc - lang/spirv/writer/ast_printer/function_variable_test.cc - lang/spirv/writer/ast_printer/global_variable_test.cc - lang/spirv/writer/ast_printer/helper_test.h - lang/spirv/writer/ast_printer/ident_expression_test.cc - lang/spirv/writer/ast_printer/literal_test.cc - lang/spirv/writer/ast_printer/return_test.cc - lang/spirv/writer/ast_printer/scalar_constant_test.cc - lang/spirv/writer/ast_printer/unary_op_expression_test.cc - lang/spirv/writer/common/binary_writer_test.cc - lang/spirv/writer/common/instruction_test.cc - lang/spirv/writer/common/module_test.cc - lang/spirv/writer/common/operand_test.cc - lang/spirv/writer/common/spv_dump_test.cc - lang/spirv/writer/common/spv_dump_test.h - ) - - if(${TINT_BUILD_IR}) - list(APPEND TINT_TEST_SRCS - lang/spirv/writer/access_test.cc - lang/spirv/writer/atomic_builtin_test.cc - lang/spirv/writer/binary_test.cc - lang/spirv/writer/bitcast_test.cc - lang/spirv/writer/builtin_test.cc - lang/spirv/writer/common/helper_test.h - lang/spirv/writer/constant_test.cc - lang/spirv/writer/construct_test.cc - lang/spirv/writer/convert_test.cc - lang/spirv/writer/discard_test.cc - lang/spirv/writer/function_test.cc - lang/spirv/writer/if_test.cc - lang/spirv/writer/let_test.cc - lang/spirv/writer/loop_test.cc - lang/spirv/writer/raise/builtin_polyfill_test.cc - lang/spirv/writer/raise/expand_implicit_splats_test.cc - lang/spirv/writer/raise/handle_matrix_arithmetic_test.cc - lang/spirv/writer/raise/merge_return_test.cc - lang/spirv/writer/raise/shader_io_test.cc - lang/spirv/writer/raise/var_for_dynamic_index_test.cc - lang/spirv/writer/switch_test.cc - lang/spirv/writer/swizzle_test.cc - lang/spirv/writer/texture_builtin_test.cc - lang/spirv/writer/type_test.cc - lang/spirv/writer/unary_test.cc - lang/spirv/writer/var_test.cc - lang/spirv/writer/writer_test.cc - ) - endif() - endif() - - if(${TINT_BUILD_WGSL_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/writer/ast_printer/ast_printer_test.cc - lang/wgsl/writer/ast_printer/alias_type_test.cc - lang/wgsl/writer/ast_printer/array_accessor_test.cc - lang/wgsl/writer/ast_printer/assign_test.cc - lang/wgsl/writer/ast_printer/binary_test.cc - lang/wgsl/writer/ast_printer/bitcast_test.cc - lang/wgsl/writer/ast_printer/block_test.cc - lang/wgsl/writer/ast_printer/break_test.cc - lang/wgsl/writer/ast_printer/call_test.cc - lang/wgsl/writer/ast_printer/case_test.cc - lang/wgsl/writer/ast_printer/cast_test.cc - lang/wgsl/writer/ast_printer/const_assert_test.cc - lang/wgsl/writer/ast_printer/constructor_test.cc - lang/wgsl/writer/ast_printer/continue_test.cc - lang/wgsl/writer/ast_printer/diagnostic_test.cc - lang/wgsl/writer/ast_printer/discard_test.cc - lang/wgsl/writer/ast_printer/enable_test.cc - lang/wgsl/writer/ast_printer/function_test.cc - lang/wgsl/writer/ast_printer/global_decl_test.cc - lang/wgsl/writer/ast_printer/helper_test.h - lang/wgsl/writer/ast_printer/identifier_test.cc - lang/wgsl/writer/ast_printer/if_test.cc - lang/wgsl/writer/ast_printer/loop_test.cc - lang/wgsl/writer/ast_printer/literal_test.cc - lang/wgsl/writer/ast_printer/member_accessor_test.cc - lang/wgsl/writer/ast_printer/return_test.cc - lang/wgsl/writer/ast_printer/switch_test.cc - lang/wgsl/writer/ast_printer/type_test.cc - lang/wgsl/writer/ast_printer/unary_op_test.cc - lang/wgsl/writer/ast_printer/variable_decl_statement_test.cc - lang/wgsl/writer/ast_printer/variable_test.cc - ) - - if (${TINT_BUILD_IR}) - list(APPEND TINT_TEST_SRCS - 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/rename_conflicts_test.cc - ) - endif() - endif() - - - - if(${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_WGSL_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/ast/module_clone_test.cc - lang/wgsl/ast/transform/add_block_attribute_test.cc - lang/wgsl/ast/transform/add_empty_entry_point_test.cc - lang/wgsl/ast/transform/array_length_from_uniform_test.cc - lang/wgsl/ast/transform/binding_remapper_test.cc - lang/wgsl/ast/transform/builtin_polyfill_test.cc - lang/wgsl/ast/transform/calculate_array_length_test.cc - lang/wgsl/ast/transform/canonicalize_entry_point_io_test.cc - lang/wgsl/ast/transform/clamp_frag_depth_test.cc - lang/wgsl/ast/transform/combine_samplers_test.cc - lang/wgsl/ast/transform/decompose_memory_access_test.cc - lang/wgsl/ast/transform/decompose_strided_array_test.cc - lang/wgsl/ast/transform/decompose_strided_matrix_test.cc - lang/wgsl/ast/transform/demote_to_helper_test.cc - lang/wgsl/ast/transform/direct_variable_access_test.cc - lang/wgsl/ast/transform/disable_uniformity_analysis_test.cc - lang/wgsl/ast/transform/expand_compound_assignment_test.cc - lang/wgsl/ast/transform/expand_compound_assignment_test.cc - lang/wgsl/ast/transform/first_index_offset_test.cc - lang/wgsl/ast/transform/fold_trivial_lets_test.cc - lang/wgsl/ast/transform/for_loop_to_loop_test.cc - lang/wgsl/ast/transform/get_insertion_point_test.cc - lang/wgsl/ast/transform/helper_test.h - lang/wgsl/ast/transform/hoist_to_decl_before_test.cc - lang/wgsl/ast/transform/localize_struct_array_assignment_test.cc - lang/wgsl/ast/transform/merge_return_test.cc - lang/wgsl/ast/transform/module_scope_var_to_entry_point_param_test.cc - lang/wgsl/ast/transform/msl_subgroup_ballot_test.cc - lang/wgsl/ast/transform/multiplanar_external_texture_test.cc - lang/wgsl/ast/transform/num_workgroups_from_uniform_test.cc - lang/wgsl/ast/transform/packed_vec3_test.cc - lang/wgsl/ast/transform/pad_structs_test.cc - lang/wgsl/ast/transform/preserve_padding_test.cc - lang/wgsl/ast/transform/promote_initializers_to_let_test.cc - lang/wgsl/ast/transform/promote_side_effects_to_decl_test.cc - lang/wgsl/ast/transform/remove_continue_in_switch_test.cc - lang/wgsl/ast/transform/remove_phonies_test.cc - lang/wgsl/ast/transform/remove_unreachable_statements_test.cc - lang/wgsl/ast/transform/renamer_test.cc - lang/wgsl/ast/transform/robustness_test.cc - lang/wgsl/ast/transform/simplify_pointers_test.cc - lang/wgsl/ast/transform/single_entry_point_test.cc - lang/wgsl/ast/transform/spirv_atomic_test.cc - lang/wgsl/ast/transform/std140_exhaustive_test.cc - lang/wgsl/ast/transform/std140_f16_test.cc - lang/wgsl/ast/transform/std140_f32_test.cc - lang/wgsl/ast/transform/std140_test.cc - lang/wgsl/ast/transform/substitute_override_test.cc - lang/wgsl/ast/transform/texture_1d_to_2d_test.cc - lang/wgsl/ast/transform/truncate_interstage_variables_test.cc - lang/wgsl/ast/transform/unshadow_test.cc - lang/wgsl/ast/transform/var_for_dynamic_index_test.cc - lang/wgsl/ast/transform/vectorize_matrix_conversions_test.cc - lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers_test.cc - lang/wgsl/ast/transform/vertex_pulling_test.cc - lang/wgsl/ast/transform/while_to_loop_test.cc - lang/wgsl/ast/transform/zero_init_workgroup_memory_test.cc - ) - endif() - - if(${TINT_BUILD_MSL_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/msl/writer/ast_printer/array_accessor_test.cc - lang/msl/writer/ast_printer/assign_test.cc - lang/msl/writer/ast_printer/ast_function_test.cc - lang/msl/writer/ast_printer/ast_printer_test.cc - lang/msl/writer/ast_printer/ast_type_test.cc - lang/msl/writer/ast_printer/binary_test.cc - lang/msl/writer/ast_printer/bitcast_test.cc - lang/msl/writer/ast_printer/block_test.cc - lang/msl/writer/ast_printer/break_test.cc - lang/msl/writer/ast_printer/builtin_test.cc - lang/msl/writer/ast_printer/builtin_texture_test.cc - lang/msl/writer/ast_printer/call_test.cc - lang/msl/writer/ast_printer/case_test.cc - lang/msl/writer/ast_printer/cast_test.cc - lang/msl/writer/ast_printer/const_assert_test.cc - lang/msl/writer/ast_printer/constructor_test.cc - lang/msl/writer/ast_printer/continue_test.cc - lang/msl/writer/ast_printer/discard_test.cc - lang/msl/writer/ast_printer/helper_test.h - lang/msl/writer/ast_printer/identifier_test.cc - lang/msl/writer/ast_printer/if_test.cc - lang/msl/writer/ast_printer/import_test.cc - lang/msl/writer/ast_printer/loop_test.cc - lang/msl/writer/ast_printer/member_accessor_test.cc - lang/msl/writer/ast_printer/module_constant_test.cc - lang/msl/writer/ast_printer/return_test.cc - lang/msl/writer/ast_printer/sanitizer_test.cc - lang/msl/writer/ast_printer/switch_test.cc - lang/msl/writer/ast_printer/unary_op_test.cc - lang/msl/writer/ast_printer/variable_decl_statement_test.cc - lang/msl/writer/common/printer_support_test.cc - ) - - if(${TINT_BUILD_IR}) - list(APPEND TINT_TEST_SRCS - lang/msl/writer/printer/binary_test.cc - lang/msl/writer/printer/constant_test.cc - lang/msl/writer/printer/function_test.cc - lang/msl/writer/printer/helper_test.h - lang/msl/writer/printer/if_test.cc - lang/msl/writer/printer/let_test.cc - lang/msl/writer/printer/return_test.cc - lang/msl/writer/printer/type_test.cc - lang/msl/writer/printer/var_test.cc - ) - endif() - endif() - - if (${TINT_BUILD_GLSL_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/glsl/writer/ast_printer/array_accessor_test.cc - lang/glsl/writer/ast_printer/assign_test.cc - lang/glsl/writer/ast_printer/ast_printer_test.cc - lang/glsl/writer/ast_printer/binary_test.cc - lang/glsl/writer/ast_printer/bitcast_test.cc - lang/glsl/writer/ast_printer/block_test.cc - lang/glsl/writer/ast_printer/break_test.cc - lang/glsl/writer/ast_printer/builtin_test.cc - lang/glsl/writer/ast_printer/builtin_texture_test.cc - lang/glsl/writer/ast_printer/call_test.cc - lang/glsl/writer/ast_printer/case_test.cc - lang/glsl/writer/ast_printer/cast_test.cc - lang/glsl/writer/ast_printer/constructor_test.cc - lang/glsl/writer/ast_printer/continue_test.cc - lang/glsl/writer/ast_printer/discard_test.cc - lang/glsl/writer/ast_printer/function_test.cc - lang/glsl/writer/ast_printer/helper_test.h - lang/glsl/writer/ast_printer/identifier_test.cc - lang/glsl/writer/ast_printer/if_test.cc - lang/glsl/writer/ast_printer/import_test.cc - lang/glsl/writer/ast_printer/loop_test.cc - lang/glsl/writer/ast_printer/member_accessor_test.cc - lang/glsl/writer/ast_printer/module_constant_test.cc - lang/glsl/writer/ast_printer/return_test.cc - lang/glsl/writer/ast_printer/sanitizer_test.cc - lang/glsl/writer/ast_printer/storage_buffer_test.cc - lang/glsl/writer/ast_printer/switch_test.cc - lang/glsl/writer/ast_printer/type_test.cc - lang/glsl/writer/ast_printer/unary_op_test.cc - lang/glsl/writer/ast_printer/uniform_buffer_test.cc - lang/glsl/writer/ast_printer/variable_decl_statement_test.cc - lang/glsl/writer/ast_printer/workgroup_var_test.cc - ) - endif() - - if (${TINT_BUILD_HLSL_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/hlsl/writer/ast_printer/array_accessor_test.cc - lang/hlsl/writer/ast_printer/assign_test.cc - lang/hlsl/writer/ast_printer/ast_printer_test.cc - lang/hlsl/writer/ast_printer/binary_test.cc - lang/hlsl/writer/ast_printer/bitcast_test.cc - lang/hlsl/writer/ast_printer/block_test.cc - lang/hlsl/writer/ast_printer/break_test.cc - lang/hlsl/writer/ast_printer/builtin_test.cc - lang/hlsl/writer/ast_printer/builtin_texture_test.cc - lang/hlsl/writer/ast_printer/call_test.cc - lang/hlsl/writer/ast_printer/case_test.cc - lang/hlsl/writer/ast_printer/cast_test.cc - lang/hlsl/writer/ast_printer/const_assert_test.cc - lang/hlsl/writer/ast_printer/constructor_test.cc - lang/hlsl/writer/ast_printer/continue_test.cc - lang/hlsl/writer/ast_printer/discard_test.cc - lang/hlsl/writer/ast_printer/function_test.cc - lang/hlsl/writer/ast_printer/helper_test.h - lang/hlsl/writer/ast_printer/identifier_test.cc - lang/hlsl/writer/ast_printer/if_test.cc - lang/hlsl/writer/ast_printer/import_test.cc - lang/hlsl/writer/ast_printer/loop_test.cc - lang/hlsl/writer/ast_printer/member_accessor_test.cc - lang/hlsl/writer/ast_printer/module_constant_test.cc - lang/hlsl/writer/ast_printer/return_test.cc - lang/hlsl/writer/ast_printer/sanitizer_test.cc - lang/hlsl/writer/ast_printer/switch_test.cc - lang/hlsl/writer/ast_printer/type_test.cc - lang/hlsl/writer/ast_printer/unary_op_test.cc - lang/hlsl/writer/ast_printer/variable_decl_statement_test.cc - lang/hlsl/writer/ast_printer/workgroup_var_test.cc - ) - endif() - - if (${TINT_BUILD_IR}) - list(APPEND TINT_TEST_SRCS - lang/core/ir/access_test.cc - lang/core/ir/binary_test.cc - lang/core/ir/bitcast_test.cc - lang/core/ir/block_param_test.cc - lang/core/ir/block_test.cc - lang/core/ir/break_if_test.cc - lang/core/ir/constant_test.cc - lang/core/ir/construct_test.cc - lang/core/ir/continue_test.cc - lang/core/ir/convert_test.cc - lang/core/ir/core_builtin_call_test.cc - lang/core/ir/discard_test.cc - lang/core/ir/exit_if_test.cc - lang/core/ir/exit_loop_test.cc - lang/core/ir/exit_switch_test.cc - lang/core/ir/function_param_test.cc - lang/core/ir/function_test.cc - lang/core/ir/if_test.cc - lang/core/ir/instruction_result_test.cc - lang/core/ir/instruction_test.cc - lang/core/ir/intrinsic_call_test.cc - lang/core/ir/let_test.cc - lang/core/ir/load_test.cc - lang/core/ir/load_vector_element_test.cc - lang/core/ir/loop_test.cc - lang/core/ir/module_test.cc - lang/core/ir/multi_in_block_test.cc - lang/core/ir/next_iteration_test.cc - lang/core/ir/operand_instruction_test.cc - lang/core/ir/return_test.cc - lang/core/ir/store_test.cc - lang/core/ir/store_vector_element_test.cc - lang/core/ir/switch_test.cc - lang/core/ir/swizzle_test.cc - lang/core/ir/transform/add_empty_entry_point_test.cc - lang/core/ir/transform/bgra8unorm_polyfill_test.cc - lang/core/ir/transform/binding_remapper_test.cc - lang/core/ir/transform/block_decorated_structs_test.cc - lang/core/ir/transform/builtin_polyfill_test.cc - lang/core/ir/transform/demote_to_helper_test.cc - lang/core/ir/transform/multiplanar_external_texture_test.cc - lang/core/ir/transform/std140_test.cc - lang/core/ir/unary_test.cc - lang/core/ir/user_call_test.cc - lang/core/ir/validator_test.cc - lang/core/ir/value_test.cc - lang/core/ir/var_test.cc - ) - endif() - - if (${TINT_BUILD_IR} AND ${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_WGSL_WRITER}) - list(APPEND TINT_TEST_SRCS - lang/wgsl/ir_roundtrip_test.cc - ) - endif() - - if (${TINT_BUILD_FUZZERS}) - list(APPEND TINT_TEST_SRCS + if(${TINT_BUILD_FUZZERS}) + target_sources(tint_unittests PRIVATE fuzzers/mersenne_twister_engine.cc fuzzers/mersenne_twister_engine.h fuzzers/random_generator.cc @@ -1729,15 +211,18 @@ ) endif() - add_executable(tint_unittests ${TINT_TEST_SRCS}) - set_target_properties(${target} PROPERTIES FOLDER "Tests") + set_target_properties(tint_unittests PROPERTIES FOLDER "Tests") + + target_include_directories(tint_unittests PRIVATE + ${gmock_SOURCE_DIR}/include + ) if(MSVC) # TODO(crbug.com/tint/1749): MSVC debug builds can suffer from stack # overflows when resolving deeply nested expression chains or statements. # Production builds neither use MSVC nor debug, so just bump the stack size # for this build combination. - if (IS_DEBUG_BUILD) + if(IS_DEBUG_BUILD) target_link_options(tint_unittests PRIVATE "/STACK:4194304") # 4MB, default is 1MB endif() else() @@ -1747,15 +232,7 @@ ) endif() - ## Test executable - target_include_directories( - tint_unittests PRIVATE ${gmock_SOURCE_DIR}/include) - target_link_libraries(tint_unittests libtint gmock tint_utils_io) - tint_default_compile_options(tint_unittests) - - if(${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER}) - tint_spvtools_compile_options(tint_unittests) - endif() + target_link_libraries(tint_unittests PRIVATE gmock) add_test(NAME tint_unittests COMMAND tint_unittests) endif(TINT_BUILD_TESTS) @@ -1764,40 +241,15 @@ # Benchmarks ################################################################################ if(TINT_BUILD_BENCHMARKS) - if(NOT TINT_BUILD_WGSL_READER) - message(FATAL_ERROR "TINT_BUILD_BENCHMARKS requires TINT_BUILD_WGSL_READER") - endif() - - list(APPEND TINT_BENCHMARK_SRCS - "utils/rtti/switch_bench.cc" + add_executable(tint_benchmark "cmd/bench/main_bench.cc" - "lang/wgsl/reader/reader_bench.cc" ) - if (${TINT_BUILD_GLSL_WRITER}) - list(APPEND TINT_BENCHMARK_SRCS lang/glsl/writer/writer_bench.cc) - endif() - if (${TINT_BUILD_HLSL_WRITER}) - list(APPEND TINT_BENCHMARK_SRCS lang/hlsl/writer/writer_bench.cc) - endif() - if (${TINT_BUILD_MSL_WRITER}) - list(APPEND TINT_BENCHMARK_SRCS lang/msl/writer/writer_bench.cc) - endif() - if (${TINT_BUILD_SPV_WRITER}) - list(APPEND TINT_BENCHMARK_SRCS lang/spirv/writer/writer_bench.cc) - endif() - if (${TINT_BUILD_WGSL_WRITER}) - list(APPEND TINT_BENCHMARK_SRCS lang/wgsl/writer/writer_bench.cc) - endif() + tint_core_compile_options(tint_benchmark) - add_executable(tint-benchmark ${TINT_BENCHMARK_SRCS}) - set_target_properties(${target} PROPERTIES FOLDER "Benchmarks") + target_link_libraries(tint_benchmark PRIVATE benchmark::benchmark) - tint_core_compile_options(tint-benchmark) - - target_link_libraries(tint-benchmark PRIVATE benchmark::benchmark libtint) - - if (TINT_EXTERNAL_BENCHMARK_CORPUS_DIR) + if(TINT_EXTERNAL_BENCHMARK_CORPUS_DIR) # Glob all the files at TINT_EXTERNAL_BENCHMARK_CORPUS_DIR, and create a header # that lists these with the macros: # TINT_BENCHMARK_EXTERNAL_WGSL_PROGRAMS() @@ -1834,7 +286,299 @@ #define TINT_BENCHMARK_EXTERNAL_SPV_PROGRAMS(FUNC) \\ ${TINT_EXTERNAL_SPV_BENCHMARK_FILES};") # Define TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER to the generated header path - target_compile_definitions(tint-benchmark PRIVATE + target_compile_definitions(tint_benchmark PRIVATE "TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER=\"${TINT_BENCHMARK_EXTERNAL_SHADERS_HEADER}\"") endif() endif(TINT_BUILD_BENCHMARKS) + +################################################################################ +# Fuzzers +################################################################################ +if(${TINT_BUILD_FUZZERS}) + add_subdirectory(fuzzers) + set(TINT_FUZZ_SUFFIX "_fuzz") +endif() + +################################################################################ +# Functions used by BUILD.cmake files +# The CMake build handles the target kinds in different ways: +# 'lib' - Translates to CMake static library. +# If TINT_BUILD_FUZZERS is enabled, then a second static library with +# the ${TINT_FUZZ_SUFFIX} suffix is also created. This is done because +# the fuzzer build requires compilation with the '-fsanitize=fuzzer' +# flag, which results in a separate set of compilation units. +# 'test' - Appends files to the 'tint_unittests' CMake target. +# Static libraries are not created for each test target, as gtest +# relies on static constructors to register the test fixtures, and +# these will get stripped by the linker if each target is packaged in +# a separate library. +# 'bench' - Appends files to the 'tint_benchmark' CMake target. +# Static libraries are not created for each test target, as google +# benchmark relies on static constructors to register the benchmark +# fixtures, and these will get stripped by the linker if each target +# is packaged in a separate library. +# 'cmd' - Translates to a CMake executable target. +# See also: docs/tint/gen.md +################################################################################ + +# A special name given to targets and target kinds that are not to be built due +# to the active CMake flags. +set(TINT_TARGET_DISABLED "<DISABLED>") + +# tint_translate_target(TARGET_OUT KIND_OUT GN_TARGET_IN) +# +# Translates a GN-style target to a CMake target name, and target kind. +# The GN-style target is of the form `<path>` for a 'lib' target or +# `<path>:<kind>` for any other target kind. +# +# Parameters: +# TARGET_OUT - The name of the variable receieving the CMake target name +# KIND_OUT - The name of the variable receieving the target kind +# GN_TARGET_IN - The GN-style target name +function(tint_translate_target TARGET_OUT KIND_OUT GN_TARGET_IN) + string(REGEX MATCH "^([^:]+):(.+)$" MATCH ${GN_TARGET_IN}) + if (MATCH) + # Explicit target kind + set(TARGET ${CMAKE_MATCH_1}) + set(KIND ${CMAKE_MATCH_2}) + else() + # No target kind. Most likely a 'lib', but needs to handle 'tint_unittests' or 'tint_benchmark' + set(TARGET ${GN_TARGET_IN}) + set(KIND "<unknown>") + endif() + + # Remove path slashes. + string(REPLACE "/" "_" TARGET "${TARGET}") + + # Infer kind, and apply naming tweaks + if ((${TARGET} STREQUAL "tint_unittests") OR (${KIND} STREQUAL "test")) + if(TINT_BUILD_TESTS) + set(TARGET "tint_unittests") + set(KIND "test") + else() + set(TARGET TINT_TARGET_DISABLED) + set(KIND TINT_TARGET_DISABLED) + endif() + elseif ((${TARGET} STREQUAL "tint_benchmark") OR (${KIND} STREQUAL "bench")) + if(TINT_BUILD_BENCHMARKS) + set(TARGET "tint_benchmark") + set(KIND "bench") + else() + set(TARGET TINT_TARGET_DISABLED) + set(KIND TINT_TARGET_DISABLED) + endif() + elseif (${KIND} STREQUAL "cmd") + if(TINT_BUILD_CMD_TOOLS) + set(TARGET "tint_${TARGET}") + set(KIND "cmd") + else() + set(TARGET TINT_TARGET_DISABLED) + set(KIND TINT_TARGET_DISABLED) + endif() + else() + set(TARGET "tint_${TARGET}") + set(KIND "lib") + endif() + + # Output values + set(${TARGET_OUT} ${TARGET} PARENT_SCOPE) + set(${KIND_OUT} ${KIND} PARENT_SCOPE) +endfunction() + +# tint_add_target(GN_TARGET [SOURCES...]) +# +# Registers the target with the given GN-style target name, with the provided +# sources. Additional sources can be appended with subsequent calls to +# tint_target_add_sources() +# +# Parameters: +# GN_TARGET - The GN-style target name +# SOURCES - a list of source files, relative to this directory +function(tint_add_target GN_TARGET) + set(SOURCES ${ARGN}) + + # Split the GN-style target name into the CMake target name and target kind + tint_translate_target(TARGET KIND ${GN_TARGET}) + + if(${KIND} STREQUAL ${TINT_TARGET_DISABLED}) + return() # Target is disabled via build flags + elseif(${KIND} STREQUAL lib) + add_library(${TARGET} STATIC EXCLUDE_FROM_ALL) + target_sources(${TARGET} PRIVATE ${SOURCES}) + tint_default_compile_options(${TARGET}) + + if(TINT_BUILD_FUZZERS) + # Create a second library target for use of the fuzzers, with the + # ${TINT_FUZZ_SUFFIX} suffix + set(FUZZ_TARGET "${TARGET}${TINT_FUZZ_SUFFIX}") + add_library(${FUZZ_TARGET} STATIC EXCLUDE_FROM_ALL) + target_sources(${FUZZ_TARGET} PRIVATE ${SOURCES}) + tint_default_compile_options(${FUZZ_TARGET}) + endif() + elseif(${KIND} STREQUAL cmd) + add_executable(${TARGET}) + target_sources(${TARGET} PRIVATE ${SOURCES}) + tint_default_compile_options(${TARGET}) + + # Strip the 'tint_cmd_' prefix for commands under src/tint/cmd/... + string(REGEX MATCH "^tint_cmd_(.+)$" MATCH ${CMD_NAME} ${TARGET}) + if (MATCH) + set(OUTPUT_NAME ${CMAKE_MATCH_1}) + if(NOT OUTPUT_NAME STREQUAL "tint") + set(OUTPUT_NAME "tint_${OUTPUT_NAME}") + endif() + set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME ${OUTPUT_NAME}) + endif() + + elseif(${KIND} STREQUAL test) + target_sources(${TARGET} PRIVATE ${SOURCES}) + elseif(${KIND} STREQUAL bench) + target_sources(${TARGET} PRIVATE ${SOURCES}) + else() + message(FATAL_ERROR "unhandled kind ${KIND}") + endif() +endfunction() + +# tint_target_add_sources(GN_TARGET [SOURCES...]) +# +# Adds source files to the target with the given GN-style target name. +# +# Parameters: +# GN_TARGET - The GN-style target name +# SOURCES - a list of source files, relative to this directory +function(tint_target_add_sources GN_TARGET) + set(SOURCES ${ARGN}) + + # Split the GN-style target name into the CMake target name and target kind + tint_translate_target(TARGET KIND ${GN_TARGET}) + + if(${KIND} STREQUAL ${TINT_TARGET_DISABLED}) + return() # Target is disabled via build flags + endif() + + target_sources(${TARGET} PRIVATE ${SOURCES}) + + # If there's a corresponding fuzz target for this target, also append the files to that target + set(FUZZ_TARGET "${TARGET}${TINT_FUZZ_SUFFIX}") + if(TARGET "${FUZZ_TARGET}") + target_sources("${FUZZ_TARGET}" PRIVATE ${SOURCES}) + endif() +endfunction() + +# tint_target_add_dependencies(GN_TARGET DEPENDENCIES...) +# +# Adds dependencies to the target with the given GN-style target name. +# +# Parameters: +# GN_TARGET - The GN-style target name +# DEPENDENCIES - a list of GN-style target names +function(tint_target_add_dependencies GN_TARGET) + set(DEPENDENCIES ${ARGN}) + + # Split the GN-style target name into the CMake target name and target kind + tint_translate_target(TARGET KIND ${GN_TARGET}) + + if(${KIND} STREQUAL ${TINT_TARGET_DISABLED}) + return() # Target is disabled via build flags + endif() + + # Translate list of GN-style target names to CMake target names + set(DEPENDENCY_TARGETS "") + foreach(DEPENDENCY ${DEPENDENCIES}) + tint_translate_target(DEP_TARGET DEP_KIND ${DEPENDENCY}) + if (DEP_KIND STREQUAL lib) # If the dependency is a 'lib' + list(APPEND DEPENDENCY_TARGETS ${DEP_TARGET}) + endif() + endforeach() + + # Register the dependencies + target_link_libraries(${TARGET} PRIVATE ${DEPENDENCY_TARGETS}) + + # If there's a corresponding fuzz target for this target, add the corresponding fuzz dependencies + # to the fuzz target. + set(FUZZ_TARGET "${TARGET}${TINT_FUZZ_SUFFIX}") + if(TARGET "${FUZZ_TARGET}") + set(FUZZ_DEPENDENCY_TARGETS "") + foreach(TARGET ${DEPENDENCY_TARGETS}) + list(APPEND FUZZ_DEPENDENCY_TARGETS "${TARGET}${TINT_FUZZ_SUFFIX}" ) + endforeach() + target_link_libraries("${FUZZ_TARGET}" PRIVATE ${FUZZ_DEPENDENCY_TARGETS}) + endif() +endfunction() + +# tint_target_add_external_dependencies(GN_TARGET DEPENDENCIES...) +# +# Adds external dependencies to the target with the given GN-style target name. +# +# Parameters: +# GN_TARGET - The GN-style target name +# DEPENDENCIES - a list of external target names +# +# See tools/src/cmd/gen/build/externals.json for the list of external dependencies. +function(tint_target_add_external_dependencies GN_TARGET) + set(DEPENDENCIES ${ARGN}) + + # Split the GN-style target name into the CMake target name and target kind + tint_translate_target(UNSUFFIXED_TARGET KIND ${GN_TARGET}) + + if(${KIND} STREQUAL ${TINT_TARGET_DISABLED}) + return() # Target is disabled via build flags + endif() + + # Build a list of targets that we're going to operate on + set(TARGETS ${UNSUFFIXED_TARGET}) + if(TARGET "${UNSUFFIXED_TARGET}${TINT_FUZZ_SUFFIX}") + list(APPEND TARGETS "${UNSUFFIXED_TARGET}${TINT_FUZZ_SUFFIX}") + endif() + + foreach(TARGET ${TARGETS}) + foreach(DEPENDENCY ${DEPENDENCIES}) + # Each external dependency requires special handling... + if(${DEPENDENCY} STREQUAL "abseil") + target_link_libraries(${TARGET} PRIVATE + absl_strings + ) + elseif(${DEPENDENCY} STREQUAL "spirv-headers") + tint_spvheaders_compile_options(${TARGET}) + elseif(${DEPENDENCY} STREQUAL "spirv-tools") + tint_spvtools_compile_options(${TARGET}) + elseif(${DEPENDENCY} STREQUAL "spirv-opt-internal") + target_link_libraries(${TARGET} PRIVATE + SPIRV-Tools-opt + ) + target_include_directories(${TARGET} PRIVATE + "${TINT_SPIRV_TOOLS_DIR}" + "${TINT_SPIRV_TOOLS_DIR}/include" + "${TINT_SPIRV_TOOLS_DIR}/source" + "${spirv-tools_BINARY_DIR}" + ) + elseif(${DEPENDENCY} STREQUAL "glslang") + target_link_libraries(${TARGET} PRIVATE glslang) + if (NOT MSVC) + target_compile_options(${TARGET} PRIVATE + -Wno-reserved-id-macro + -Wno-shadow-field-in-constructor + -Wno-shadow + -Wno-weak-vtables + ) + endif() + elseif(${DEPENDENCY} STREQUAL "glslang-res-limits") + target_link_libraries(${TARGET} PRIVATE + glslang-default-resource-limits + ) + else() + message(FATAL_ERROR "unhandled external dependency ${DEPENDENCY}") + endif() + endforeach() + endforeach() +endfunction() + +################################################################################ +# Include the generated build files +################################################################################ +include("BUILD.cmake") + +################################################################################ +# Tint aliases +################################################################################ +add_library(libtint ALIAS tint_api)
diff --git a/src/tint/api/BUILD.cmake b/src/tint/api/BUILD.cmake new file mode 100644 index 0000000..1ba680c --- /dev/null +++ b/src/tint/api/BUILD.cmake
@@ -0,0 +1,61 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("api" + api/tint.cc + api/tint.h +) + +tint_target_add_dependencies("api" + "lang/wgsl/reader" + "lang/wgsl/writer" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("api" + "lang/glsl/writer" + ) +endif(TINT_BUILD_GLSL_WRITER) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("api" + "lang/hlsl/writer" + ) +endif(TINT_BUILD_HLSL_WRITER) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("api" + "lang/msl/writer" + ) +endif(TINT_BUILD_MSL_WRITER) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("api" + "lang/spirv/reader" + ) +endif(TINT_BUILD_SPV_READER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("api" + "lang/spirv/writer" + ) +endif(TINT_BUILD_SPV_WRITER)
diff --git a/src/tint/cmd/BUILD.cmake b/src/tint/cmd/BUILD.cmake new file mode 100644 index 0000000..f547319 --- /dev/null +++ b/src/tint/cmd/BUILD.cmake
@@ -0,0 +1,28 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(cmd/bench/BUILD.cmake) +include(cmd/common/BUILD.cmake) +include(cmd/info/BUILD.cmake) +include(cmd/loopy/BUILD.cmake) +include(cmd/test/BUILD.cmake) +include(cmd/tint/BUILD.cmake)
diff --git a/src/tint/cmd/CMakeLists.txt b/src/tint/cmd/CMakeLists.txt deleted file mode 100644 index f20e512..0000000 --- a/src/tint/cmd/CMakeLists.txt +++ /dev/null
@@ -1,67 +0,0 @@ -# Copyright 2020 The Tint Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -## Tint executable -add_executable(tint "") -target_sources(tint PRIVATE - "common/generate_external_texture_bindings.cc" - "common/generate_external_texture_bindings.h" - "common/helper.cc" - "common/helper.h" - "tint/main.cc" -) -tint_default_compile_options(tint) -target_link_libraries(tint libtint tint_val) - -if (${TINT_BUILD_SPV_READER} OR ${TINT_BUILD_SPV_WRITER}) - target_link_libraries(tint SPIRV-Tools) -endif() - -if (${TINT_BUILD_GLSL_WRITER}) - target_link_libraries(tint glslang) - target_link_libraries(tint glslang-default-resource-limits) - if (NOT MSVC) - target_compile_options(tint PRIVATE - -Wno-reserved-id-macro - -Wno-shadow-field-in-constructor - -Wno-shadow - -Wno-weak-vtables - ) - endif() -endif() - -add_executable(tint_info "") -target_sources(tint_info PRIVATE - "common/helper.cc" - "common/helper.h" - "info/main.cc" -) -tint_default_compile_options(tint_info) -target_link_libraries(tint_info libtint tint_val) - -if (${TINT_BUILD_SPV_READER}) - target_link_libraries(tint_info SPIRV-Tools) -endif() - -add_executable(tint-loopy "") -target_sources(tint-loopy PRIVATE - "common/generate_external_texture_bindings.cc" - "common/generate_external_texture_bindings.h" - "common/helper.cc" - "common/helper.h" - "loopy/main.cc" -) -tint_default_compile_options(tint-loopy) -target_link_libraries(tint-loopy libtint tint_val) -
diff --git a/src/tint/cmd/bench/BUILD.cmake b/src/tint/cmd/bench/BUILD.cmake new file mode 100644 index 0000000..433ce29 --- /dev/null +++ b/src/tint/cmd/bench/BUILD.cmake
@@ -0,0 +1,76 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("cmd/bench" + cmd/bench/bench.h + cmd/bench/benchmark.cc +) + +tint_target_add_dependencies("cmd/bench" + "lang/wgsl/program" + "utils/macros" +) + +tint_add_target("cmd/bench:bench" + cmd/bench/main_bench.cc +) + +tint_target_add_dependencies("cmd/bench:bench" + "cmd/bench" + "lang/core:bench" + "lang/wgsl/reader" + "lang/wgsl/reader:bench" + "lang/wgsl/writer" + "lang/wgsl/writer:bench" + "utils/rtti:bench" + "utils/text" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("cmd/bench:bench" + "lang/glsl/writer:bench" + ) +endif(TINT_BUILD_GLSL_WRITER) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("cmd/bench:bench" + "lang/hlsl/writer:bench" + ) +endif(TINT_BUILD_HLSL_WRITER) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("cmd/bench:bench" + "lang/msl/writer:bench" + ) +endif(TINT_BUILD_MSL_WRITER) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("cmd/bench:bench" + "lang/spirv/reader" + ) +endif(TINT_BUILD_SPV_READER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("cmd/bench:bench" + "lang/spirv/writer:bench" + ) +endif(TINT_BUILD_SPV_WRITER)
diff --git a/src/tint/cmd/bench/benchmark.cc b/src/tint/cmd/bench/benchmark.cc new file mode 100644 index 0000000..9b28d93 --- /dev/null +++ b/src/tint/cmd/bench/benchmark.cc
@@ -0,0 +1,20 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_cmd_bench_symbol = 1; + +#endif
diff --git a/src/tint/cmd/common/BUILD.cmake b/src/tint/cmd/common/BUILD.cmake new file mode 100644 index 0000000..6f59465 --- /dev/null +++ b/src/tint/cmd/common/BUILD.cmake
@@ -0,0 +1,63 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("cmd/common" + cmd/common/generate_external_texture_bindings.cc + cmd/common/generate_external_texture_bindings.h + cmd/common/helper.cc + cmd/common/helper.h +) + +tint_target_add_dependencies("cmd/common" + "lang/core/type" + "lang/spirv/reader/common" + "lang/wgsl/ast" + "lang/wgsl/inspector" + "lang/wgsl/program" + "lang/wgsl/reader" + "lang/wgsl/sem" + "lang/wgsl/writer" + "utils/diagnostic" + "utils/text" +) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("cmd/common" + "lang/spirv/reader" + ) +endif(TINT_BUILD_SPV_READER) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("cmd/common" + "spirv-tools" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +tint_add_target("cmd/common:test" + cmd/common/generate_external_texture_bindings_test.cc +) + +tint_target_add_dependencies("cmd/common:test" + "cmd/common" + "lang/wgsl/program" + "lang/wgsl/resolver" +)
diff --git a/src/tint/cmd/info/BUILD.cmake b/src/tint/cmd/info/BUILD.cmake new file mode 100644 index 0000000..6fa735c --- /dev/null +++ b/src/tint/cmd/info/BUILD.cmake
@@ -0,0 +1,41 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("cmd/info:cmd" + cmd/info/main.cc +) + +tint_target_add_dependencies("cmd/info:cmd" + "cmd/common" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/inspector" + "utils/command" + "utils/containers" + "utils/text" +) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("cmd/info:cmd" + "spirv-tools" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER)
diff --git a/src/tint/cmd/loopy/BUILD.cmake b/src/tint/cmd/loopy/BUILD.cmake new file mode 100644 index 0000000..6e4ec49 --- /dev/null +++ b/src/tint/cmd/loopy/BUILD.cmake
@@ -0,0 +1,70 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("cmd/loopy:cmd" + cmd/loopy/main.cc +) + +tint_target_add_dependencies("cmd/loopy:cmd" + "api" + "cmd/common" + "lang/wgsl/helpers" + "lang/wgsl/reader" + "lang/wgsl/writer" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("cmd/loopy:cmd" + "lang/glsl/writer" + ) +endif(TINT_BUILD_GLSL_WRITER) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("cmd/loopy:cmd" + "lang/hlsl/writer" + ) +endif(TINT_BUILD_HLSL_WRITER) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("cmd/loopy:cmd" + "lang/core/ir" + "lang/wgsl/reader/program_to_ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("cmd/loopy:cmd" + "lang/msl/writer" + ) +endif(TINT_BUILD_MSL_WRITER) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("cmd/loopy:cmd" + "lang/spirv/reader" + ) +endif(TINT_BUILD_SPV_READER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("cmd/loopy:cmd" + "lang/spirv/writer" + ) +endif(TINT_BUILD_SPV_WRITER)
diff --git a/src/tint/cmd/test/BUILD.cmake b/src/tint/cmd/test/BUILD.cmake new file mode 100644 index 0000000..1e5441f --- /dev/null +++ b/src/tint/cmd/test/BUILD.cmake
@@ -0,0 +1,115 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("cmd/test:test" + cmd/test/main_test.cc +) + +tint_target_add_dependencies("cmd/test:test" + "api" + "cmd/common:test" + "lang/core/constant:test" + "lang/core/intrinsic:test" + "lang/core/type:test" + "lang/core:test" + "lang/wgsl/ast/transform:test" + "lang/wgsl/ast:test" + "lang/wgsl/helpers:test" + "lang/wgsl/inspector:test" + "lang/wgsl/program:test" + "lang/wgsl/reader/parser:test" + "lang/wgsl/resolver:test" + "lang/wgsl/sem:test" + "lang/wgsl/writer/ast_printer:test" + "lang/wgsl:test" + "utils/cli:test" + "utils/command:test" + "utils/containers:test" + "utils/diagnostic:test" + "utils/file:test" + "utils/ice" + "utils/ice:test" + "utils/macros:test" + "utils/math:test" + "utils/memory:test" + "utils/reflection:test" + "utils/result:test" + "utils/rtti:test" + "utils/strconv:test" + "utils/symbol:test" + "utils/text:test" + "utils/traits:test" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("cmd/test:test" + "lang/glsl/writer/ast_printer:test" + ) +endif(TINT_BUILD_GLSL_WRITER) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("cmd/test:test" + "lang/hlsl/writer/ast_printer:test" + ) +endif(TINT_BUILD_HLSL_WRITER) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("cmd/test:test" + "lang/core/ir/transform:test" + "lang/core/ir:test" + "lang/wgsl/reader/program_to_ir:test" + "lang/wgsl/writer/ir_to_program:test" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("cmd/test:test" + "lang/msl/writer/ast_printer:test" + "lang/msl/writer/common:test" + ) +endif(TINT_BUILD_MSL_WRITER) + +if (TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("cmd/test:test" + "lang/msl/writer/printer:test" + ) +endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("cmd/test:test" + "lang/spirv/reader/ast_parser:test" + ) +endif(TINT_BUILD_SPV_READER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("cmd/test:test" + "lang/spirv/writer/ast_printer:test" + "lang/spirv/writer/common:test" + "lang/spirv/writer:test" + ) +endif(TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("cmd/test:test" + "lang/spirv/writer/raise:test" + ) +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR)
diff --git a/src/tint/cmd/tint/BUILD.cmake b/src/tint/cmd/tint/BUILD.cmake new file mode 100644 index 0000000..2847068 --- /dev/null +++ b/src/tint/cmd/tint/BUILD.cmake
@@ -0,0 +1,90 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("cmd/tint:cmd" + cmd/tint/main.cc +) + +tint_target_add_dependencies("cmd/tint:cmd" + "api" + "cmd/common" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/helpers" + "lang/wgsl/reader" + "lang/wgsl/writer" + "utils/cli" + "utils/command" + "utils/containers" + "utils/diagnostic" + "utils/macros" + "utils/text" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("cmd/tint:cmd" + "lang/glsl/writer" + ) + tint_target_add_external_dependencies("cmd/tint:cmd" + "glslang" + "glslang-res-limits" + ) +endif(TINT_BUILD_GLSL_WRITER) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("cmd/tint:cmd" + "lang/hlsl/validate" + "lang/hlsl/writer" + ) +endif(TINT_BUILD_HLSL_WRITER) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("cmd/tint:cmd" + "lang/core/ir" + "lang/wgsl/reader/program_to_ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("cmd/tint:cmd" + "lang/msl/validate" + "lang/msl/writer" + ) +endif(TINT_BUILD_MSL_WRITER) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("cmd/tint:cmd" + "lang/spirv/reader" + ) +endif(TINT_BUILD_SPV_READER) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("cmd/tint:cmd" + "spirv-tools" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("cmd/tint:cmd" + "lang/spirv/writer" + ) +endif(TINT_BUILD_SPV_WRITER)
diff --git a/src/tint/fuzzers/CMakeLists.txt b/src/tint/fuzzers/CMakeLists.txt index c53b0ec..32eb73e 100644 --- a/src/tint/fuzzers/CMakeLists.txt +++ b/src/tint/fuzzers/CMakeLists.txt
@@ -35,8 +35,11 @@ tint_reader_writer_fuzzer.h transform_builder.h ) - target_link_libraries(${NAME} libtint-fuzz) - tint_default_compile_options(${NAME}) + tint_fuzzer_compile_options(${NAME}) + if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_spvheaders_compile_options(${NAME}) + tint_spvtools_compile_options(${NAME}) + endif() target_compile_options(${NAME} PRIVATE -Wno-missing-prototypes) endfunction() @@ -56,8 +59,9 @@ add_tint_fuzzer(tint_wgsl_reader_spv_writer_fuzzer) endif() -if (${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_IR}) +if (TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_IR) add_tint_fuzzer(tint_ir_roundtrip_fuzzer) + target_link_libraries(tint_ir_roundtrip_fuzzer PRIVATE tint_lang_wgsl_writer_ir_to_program) endif() if (${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_HLSL_WRITER}) @@ -118,6 +122,7 @@ tint_common_fuzzer.cc tint_common_fuzzer.h ) - target_link_libraries(tint_black_box_fuzz_target libtint) + target_link_libraries(tint_black_box_fuzz_target PRIVATE libtint) tint_default_compile_options(tint_black_box_fuzz_target) + tint_spvtools_compile_options(tint_black_box_fuzz_target) endif()
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/CMakeLists.txt b/src/tint/fuzzers/tint_ast_fuzzer/CMakeLists.txt index e311c82..8d22901 100644 --- a/src/tint/fuzzers/tint_ast_fuzzer/CMakeLists.txt +++ b/src/tint/fuzzers/tint_ast_fuzzer/CMakeLists.txt
@@ -14,8 +14,12 @@ function(add_tint_ast_fuzzer NAME) add_executable(${NAME} ${NAME}.cc ${AST_FUZZER_SOURCES}) - target_link_libraries(${NAME} libtint-fuzz libtint_ast_fuzzer) - tint_default_compile_options(${NAME}) + target_link_libraries(${NAME} PRIVATE libtint_ast_fuzzer) + tint_fuzzer_compile_options(${NAME}) + if(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_spvheaders_compile_options(${NAME}) + tint_spvtools_compile_options(${NAME}) + endif() target_compile_definitions(${NAME} PRIVATE CUSTOM_MUTATOR) target_include_directories(${NAME} PRIVATE ${CMAKE_BINARY_DIR}) endfunction()
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/CMakeLists.txt b/src/tint/fuzzers/tint_regex_fuzzer/CMakeLists.txt index de05287..45802cd 100644 --- a/src/tint/fuzzers/tint_regex_fuzzer/CMakeLists.txt +++ b/src/tint/fuzzers/tint_regex_fuzzer/CMakeLists.txt
@@ -14,8 +14,9 @@ function(add_tint_regex_fuzzer NAME) add_executable(${NAME} ${NAME}.cc ${REGEX_FUZZER_SOURCES}) - target_link_libraries(${NAME} libtint-fuzz libtint_regex_fuzzer) - tint_default_compile_options(${NAME}) + target_link_libraries(${NAME} PRIVATE libtint_regex_fuzzer) + tint_fuzzer_compile_options(${NAME}) + tint_spvtools_compile_options(${NAME}) target_compile_definitions(${NAME} PRIVATE CUSTOM_MUTATOR) target_include_directories(${NAME} PRIVATE ${CMAKE_BINARY_DIR}) endfunction()
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/CMakeLists.txt b/src/tint/fuzzers/tint_spirv_tools_fuzzer/CMakeLists.txt index 3d6c37b..28bb473 100644 --- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/CMakeLists.txt +++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/CMakeLists.txt
@@ -46,28 +46,33 @@ function(configure_spirv_tools_fuzzer_target NAME SOURCES) add_executable(${NAME} ${SOURCES}) - target_link_libraries(${NAME} SPIRV-Tools SPIRV-Tools-opt SPIRV-Tools-fuzz SPIRV-Tools-reduce) + target_link_libraries(${NAME} PRIVATE + SPIRV-Tools + SPIRV-Tools-opt + SPIRV-Tools-fuzz + SPIRV-Tools-reduce + ) tint_default_compile_options(${NAME}) target_compile_options(${NAME} PRIVATE - -Wno-missing-prototypes - -Wno-zero-as-null-pointer-constant - -Wno-reserved-id-macro - -Wno-sign-conversion - -Wno-extra-semi-stmt - -Wno-inconsistent-missing-destructor-override - -Wno-newline-eof - -Wno-old-style-cast - -Wno-weak-vtables - -Wno-undef) + -Wno-missing-prototypes + -Wno-zero-as-null-pointer-constant + -Wno-reserved-id-macro + -Wno-sign-conversion + -Wno-extra-semi-stmt + -Wno-inconsistent-missing-destructor-override + -Wno-newline-eof + -Wno-old-style-cast + -Wno-weak-vtables + -Wno-undef) target_include_directories(${NAME} PRIVATE - ${spirv-tools_SOURCE_DIR} - ${spirv-tools_BINARY_DIR}) + ${spirv-tools_SOURCE_DIR} + ${spirv-tools_BINARY_DIR}) endfunction() function(add_tint_spirv_tools_fuzzer NAME) set(FUZZER_TARGET_SOURCES ${NAME}.cc ${FUZZER_SOURCES}) configure_spirv_tools_fuzzer_target(${NAME} "${FUZZER_TARGET_SOURCES}") - target_link_libraries(${NAME} libtint-fuzz) + tint_fuzzer_compile_options(${NAME}) target_compile_definitions(tint_spirv_tools_fuzzer PUBLIC CUSTOM_MUTATOR) target_compile_definitions(tint_spirv_tools_fuzzer PRIVATE TARGET_FUZZER) endfunction() @@ -82,27 +87,27 @@ add_tint_spirv_tools_fuzzer(tint_spirv_tools_wgsl_writer_fuzzer) set(DEBUGGER_SOURCES - ../mersenne_twister_engine.cc - ../random_generator.cc - ../random_generator_engine.cc - cli.cc - mutator.cc - mutator_debugger.cc - spirv_fuzz_mutator.cc - spirv_opt_mutator.cc - spirv_reduce_mutator.cc - util.cc) + ../mersenne_twister_engine.cc + ../random_generator.cc + ../random_generator_engine.cc + cli.cc + mutator.cc + mutator_debugger.cc + spirv_fuzz_mutator.cc + spirv_opt_mutator.cc + spirv_reduce_mutator.cc + util.cc) set(DEBUGGER_SOURCES ${DEBUGGER_SOURCES} - ../mersenne_twister_engine.h - ../random_generator.h - ../random_generator_engine.h - cli.h - mutator.h - spirv_fuzz_mutator.h - spirv_opt_mutator.h - spirv_reduce_mutator.h - util.h) + ../mersenne_twister_engine.h + ../random_generator.h + ../random_generator_engine.h + cli.h + mutator.h + spirv_fuzz_mutator.h + spirv_opt_mutator.h + spirv_reduce_mutator.h + util.h) configure_spirv_tools_fuzzer_target(tint_spirv_tools_mutator_debugger "${DEBUGGER_SOURCES}") target_compile_definitions(tint_spirv_tools_mutator_debugger PRIVATE TARGET_DEBUGGER)
diff --git a/src/tint/lang/BUILD.cmake b/src/tint/lang/BUILD.cmake new file mode 100644 index 0000000..63e16fb --- /dev/null +++ b/src/tint/lang/BUILD.cmake
@@ -0,0 +1,28 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/core/BUILD.cmake) +include(lang/glsl/BUILD.cmake) +include(lang/hlsl/BUILD.cmake) +include(lang/msl/BUILD.cmake) +include(lang/spirv/BUILD.cmake) +include(lang/wgsl/BUILD.cmake)
diff --git a/src/tint/lang/core/BUILD.cmake b/src/tint/lang/core/BUILD.cmake new file mode 100644 index 0000000..2f87bf2 --- /dev/null +++ b/src/tint/lang/core/BUILD.cmake
@@ -0,0 +1,115 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/core/constant/BUILD.cmake) +include(lang/core/intrinsic/BUILD.cmake) +include(lang/core/ir/BUILD.cmake) +include(lang/core/type/BUILD.cmake) + +tint_add_target("lang/core" + lang/core/access.cc + lang/core/access.h + lang/core/address_space.cc + lang/core/address_space.h + lang/core/attribute.cc + lang/core/attribute.h + lang/core/binary_op.cc + lang/core/binary_op.h + lang/core/builtin.cc + lang/core/builtin.h + lang/core/builtin_value.cc + lang/core/builtin_value.h + lang/core/diagnostic_rule.cc + lang/core/diagnostic_rule.h + lang/core/diagnostic_severity.cc + lang/core/diagnostic_severity.h + lang/core/evaluation_stage.h + lang/core/extension.cc + lang/core/extension.h + lang/core/fluent_types.h + lang/core/function.cc + lang/core/function.h + lang/core/interpolation.h + lang/core/interpolation_sampling.cc + lang/core/interpolation_sampling.h + lang/core/interpolation_type.cc + lang/core/interpolation_type.h + lang/core/number.cc + lang/core/number.h + lang/core/parameter_usage.cc + lang/core/parameter_usage.h + lang/core/texel_format.cc + lang/core/texel_format.h + lang/core/unary_op.cc + lang/core/unary_op.h +) + +tint_target_add_dependencies("lang/core" + "utils/containers" + "utils/diagnostic" + "utils/ice" + "utils/macros" + "utils/memory" + "utils/result" + "utils/text" + "utils/traits" +) + +tint_add_target("lang/core:test" + lang/core/access_test.cc + lang/core/address_space_test.cc + lang/core/attribute_test.cc + lang/core/builtin_test.cc + lang/core/builtin_value_test.cc + lang/core/diagnostic_rule_test.cc + lang/core/diagnostic_severity_test.cc + lang/core/extension_test.cc + lang/core/interpolation_sampling_test.cc + lang/core/interpolation_type_test.cc + lang/core/number_test.cc + lang/core/texel_format_test.cc +) + +tint_target_add_dependencies("lang/core:test" + "lang/core" + "lang/wgsl/program" + "utils/macros" + "utils/text" +) + +tint_add_target("lang/core:bench" + lang/core/access_bench.cc + lang/core/address_space_bench.cc + lang/core/attribute_bench.cc + lang/core/builtin_bench.cc + lang/core/builtin_value_bench.cc + lang/core/diagnostic_rule_bench.cc + lang/core/diagnostic_severity_bench.cc + lang/core/extension_bench.cc + lang/core/interpolation_sampling_bench.cc + lang/core/interpolation_type_bench.cc + lang/core/texel_format_bench.cc +) + +tint_target_add_dependencies("lang/core:bench" + "lang/core" +)
diff --git a/src/tint/lang/core/constant/BUILD.cmake b/src/tint/lang/core/constant/BUILD.cmake new file mode 100644 index 0000000..08da524 --- /dev/null +++ b/src/tint/lang/core/constant/BUILD.cmake
@@ -0,0 +1,85 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/core/constant" + lang/core/constant/clone_context.h + lang/core/constant/composite.cc + lang/core/constant/composite.h + lang/core/constant/eval.cc + lang/core/constant/eval.h + lang/core/constant/manager.cc + lang/core/constant/manager.h + lang/core/constant/node.cc + lang/core/constant/node.h + lang/core/constant/scalar.cc + lang/core/constant/scalar.h + lang/core/constant/splat.cc + lang/core/constant/splat.h + lang/core/constant/value.cc + lang/core/constant/value.h +) + +tint_target_add_dependencies("lang/core/constant" + "lang/core" + "lang/core/type" + "utils/containers" + "utils/diagnostic" + "utils/macros" + "utils/math" + "utils/memory" + "utils/result" + "utils/rtti" + "utils/text" +) + +tint_add_target("lang/core/constant:test" + lang/core/constant/composite_test.cc + lang/core/constant/eval_binary_op_test.cc + lang/core/constant/eval_bitcast_test.cc + lang/core/constant/eval_builtin_test.cc + lang/core/constant/eval_construction_test.cc + lang/core/constant/eval_conversion_test.cc + lang/core/constant/eval_indexing_test.cc + lang/core/constant/eval_member_access_test.cc + lang/core/constant/eval_runtime_semantics_test.cc + lang/core/constant/eval_test.h + lang/core/constant/eval_unary_op_test.cc + lang/core/constant/helper_test.h + lang/core/constant/manager_test.cc + lang/core/constant/scalar_test.cc + lang/core/constant/splat_test.cc + lang/core/constant/value_test.cc +) + +tint_target_add_dependencies("lang/core/constant:test" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/core/type:test" + "lang/wgsl/program" + "lang/wgsl/reader" + "lang/wgsl/resolver:test" + "lang/wgsl/sem" + "utils/result" + "utils/rtti" + "utils/text" +)
diff --git a/src/tint/lang/core/intrinsic/BUILD.cmake b/src/tint/lang/core/intrinsic/BUILD.cmake new file mode 100644 index 0000000..876dd98 --- /dev/null +++ b/src/tint/lang/core/intrinsic/BUILD.cmake
@@ -0,0 +1,56 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/core/intrinsic/data/BUILD.cmake) + +tint_add_target("lang/core/intrinsic" + lang/core/intrinsic/ctor_conv.cc + lang/core/intrinsic/ctor_conv.h + lang/core/intrinsic/table.cc + lang/core/intrinsic/table.h + lang/core/intrinsic/table_data.h +) + +tint_target_add_dependencies("lang/core/intrinsic" + "lang/core" + "lang/core/constant" + "lang/core/type" + "utils/containers" + "utils/diagnostic" + "utils/macros" + "utils/math" + "utils/rtti" + "utils/text" +) + +tint_add_target("lang/core/intrinsic:test" + lang/core/intrinsic/table_test.cc +) + +tint_target_add_dependencies("lang/core/intrinsic:test" + "lang/core/intrinsic" + "lang/core/intrinsic/data" + "lang/core/type" + "lang/core/type:test" + "lang/wgsl/resolver:test" + "lang/wgsl/sem" +)
diff --git a/src/tint/lang/core/intrinsic/data/BUILD.cmake b/src/tint/lang/core/intrinsic/data/BUILD.cmake new file mode 100644 index 0000000..05abcb6 --- /dev/null +++ b/src/tint/lang/core/intrinsic/data/BUILD.cmake
@@ -0,0 +1,34 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/core/intrinsic/data" + lang/core/intrinsic/data/data.cc + lang/core/intrinsic/data/data.h + lang/core/intrinsic/data/type_matchers.h +) + +tint_target_add_dependencies("lang/core/intrinsic/data" + "lang/core" + "lang/core/intrinsic" + "lang/core/type" + "utils/text" +)
diff --git a/src/tint/lang/core/ir/BUILD.cmake b/src/tint/lang/core/ir/BUILD.cmake new file mode 100644 index 0000000..0903315 --- /dev/null +++ b/src/tint/lang/core/ir/BUILD.cmake
@@ -0,0 +1,199 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/core/ir/transform/BUILD.cmake) + +if(TINT_BUILD_IR) +tint_add_target("lang/core/ir" + lang/core/ir/access.cc + lang/core/ir/access.h + lang/core/ir/binary.cc + lang/core/ir/binary.h + lang/core/ir/bitcast.cc + lang/core/ir/bitcast.h + lang/core/ir/block.cc + lang/core/ir/block.h + lang/core/ir/block_param.cc + lang/core/ir/block_param.h + lang/core/ir/break_if.cc + lang/core/ir/break_if.h + lang/core/ir/builder.cc + lang/core/ir/builder.h + lang/core/ir/builtin_call.cc + lang/core/ir/builtin_call.h + lang/core/ir/call.cc + lang/core/ir/call.h + lang/core/ir/constant.cc + lang/core/ir/constant.h + lang/core/ir/construct.cc + lang/core/ir/construct.h + lang/core/ir/continue.cc + lang/core/ir/continue.h + lang/core/ir/control_instruction.cc + lang/core/ir/control_instruction.h + lang/core/ir/convert.cc + lang/core/ir/convert.h + lang/core/ir/core_builtin_call.cc + lang/core/ir/core_builtin_call.h + lang/core/ir/disassembler.cc + lang/core/ir/disassembler.h + lang/core/ir/discard.cc + lang/core/ir/discard.h + lang/core/ir/exit.cc + lang/core/ir/exit.h + lang/core/ir/exit_if.cc + lang/core/ir/exit_if.h + lang/core/ir/exit_loop.cc + lang/core/ir/exit_loop.h + lang/core/ir/exit_switch.cc + lang/core/ir/exit_switch.h + lang/core/ir/function.cc + lang/core/ir/function.h + lang/core/ir/function_param.cc + lang/core/ir/function_param.h + lang/core/ir/if.cc + lang/core/ir/if.h + lang/core/ir/instruction.cc + lang/core/ir/instruction.h + lang/core/ir/instruction_result.cc + lang/core/ir/instruction_result.h + lang/core/ir/intrinsic_call.cc + lang/core/ir/intrinsic_call.h + lang/core/ir/let.cc + lang/core/ir/let.h + lang/core/ir/load.cc + lang/core/ir/load.h + lang/core/ir/load_vector_element.cc + lang/core/ir/load_vector_element.h + lang/core/ir/location.h + lang/core/ir/loop.cc + lang/core/ir/loop.h + lang/core/ir/module.cc + lang/core/ir/module.h + lang/core/ir/multi_in_block.cc + lang/core/ir/multi_in_block.h + lang/core/ir/next_iteration.cc + lang/core/ir/next_iteration.h + lang/core/ir/operand_instruction.cc + lang/core/ir/operand_instruction.h + lang/core/ir/return.cc + lang/core/ir/return.h + lang/core/ir/store.cc + lang/core/ir/store.h + lang/core/ir/store_vector_element.cc + lang/core/ir/store_vector_element.h + lang/core/ir/switch.cc + lang/core/ir/switch.h + lang/core/ir/swizzle.cc + lang/core/ir/swizzle.h + lang/core/ir/terminate_invocation.cc + lang/core/ir/terminate_invocation.h + lang/core/ir/terminator.cc + lang/core/ir/terminator.h + lang/core/ir/unary.cc + lang/core/ir/unary.h + lang/core/ir/unreachable.cc + lang/core/ir/unreachable.h + lang/core/ir/user_call.cc + lang/core/ir/user_call.h + lang/core/ir/validator.cc + lang/core/ir/validator.h + lang/core/ir/value.cc + lang/core/ir/value.h + lang/core/ir/var.cc + lang/core/ir/var.h +) + +tint_target_add_dependencies("lang/core/ir" + "lang/core" + "lang/core/constant" + "lang/core/type" + "utils/containers" + "utils/diagnostic" + "utils/ice" + "utils/id" + "utils/macros" + "utils/memory" + "utils/result" + "utils/rtti" + "utils/symbol" + "utils/text" +) + +endif(TINT_BUILD_IR) +if(TINT_BUILD_IR) +tint_add_target("lang/core/ir:test" + lang/core/ir/access_test.cc + lang/core/ir/binary_test.cc + lang/core/ir/bitcast_test.cc + lang/core/ir/block_param_test.cc + lang/core/ir/block_test.cc + lang/core/ir/break_if_test.cc + lang/core/ir/constant_test.cc + lang/core/ir/construct_test.cc + lang/core/ir/continue_test.cc + lang/core/ir/convert_test.cc + lang/core/ir/core_builtin_call_test.cc + lang/core/ir/discard_test.cc + lang/core/ir/exit_if_test.cc + lang/core/ir/exit_loop_test.cc + lang/core/ir/exit_switch_test.cc + lang/core/ir/function_param_test.cc + lang/core/ir/function_test.cc + lang/core/ir/if_test.cc + lang/core/ir/instruction_result_test.cc + lang/core/ir/instruction_test.cc + lang/core/ir/intrinsic_call_test.cc + lang/core/ir/ir_helper_test.h + lang/core/ir/let_test.cc + lang/core/ir/load_test.cc + lang/core/ir/load_vector_element_test.cc + lang/core/ir/loop_test.cc + lang/core/ir/module_test.cc + lang/core/ir/multi_in_block_test.cc + lang/core/ir/next_iteration_test.cc + lang/core/ir/operand_instruction_test.cc + lang/core/ir/return_test.cc + lang/core/ir/store_test.cc + lang/core/ir/store_vector_element_test.cc + lang/core/ir/switch_test.cc + lang/core/ir/swizzle_test.cc + lang/core/ir/unary_test.cc + lang/core/ir/user_call_test.cc + lang/core/ir/validator_test.cc + lang/core/ir/value_test.cc + lang/core/ir/var_test.cc +) + +tint_target_add_dependencies("lang/core/ir:test" + "lang/core" + "lang/core/type" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/core/ir:test" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +endif(TINT_BUILD_IR) \ No newline at end of file
diff --git a/src/tint/lang/core/ir/transform/BUILD.cmake b/src/tint/lang/core/ir/transform/BUILD.cmake new file mode 100644 index 0000000..ea3abf5 --- /dev/null +++ b/src/tint/lang/core/ir/transform/BUILD.cmake
@@ -0,0 +1,83 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_IR) +tint_add_target("lang/core/ir/transform" + lang/core/ir/transform/add_empty_entry_point.cc + lang/core/ir/transform/add_empty_entry_point.h + lang/core/ir/transform/bgra8unorm_polyfill.cc + lang/core/ir/transform/bgra8unorm_polyfill.h + lang/core/ir/transform/binding_remapper.cc + lang/core/ir/transform/binding_remapper.h + lang/core/ir/transform/block_decorated_structs.cc + lang/core/ir/transform/block_decorated_structs.h + lang/core/ir/transform/builtin_polyfill.cc + lang/core/ir/transform/builtin_polyfill.h + lang/core/ir/transform/demote_to_helper.cc + lang/core/ir/transform/demote_to_helper.h + lang/core/ir/transform/multiplanar_external_texture.cc + lang/core/ir/transform/multiplanar_external_texture.h + lang/core/ir/transform/shader_io.cc + lang/core/ir/transform/shader_io.h + lang/core/ir/transform/std140.cc + lang/core/ir/transform/std140.h +) + +tint_target_add_dependencies("lang/core/ir/transform" + "lang/core/type" + "utils/ice" + "utils/result" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/core/ir/transform" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +endif(TINT_BUILD_IR) +if(TINT_BUILD_IR) +tint_add_target("lang/core/ir/transform:test" + lang/core/ir/transform/add_empty_entry_point_test.cc + lang/core/ir/transform/bgra8unorm_polyfill_test.cc + lang/core/ir/transform/binding_remapper_test.cc + lang/core/ir/transform/block_decorated_structs_test.cc + lang/core/ir/transform/builtin_polyfill_test.cc + lang/core/ir/transform/demote_to_helper_test.cc + lang/core/ir/transform/helper_test.h + lang/core/ir/transform/multiplanar_external_texture_test.cc + lang/core/ir/transform/std140_test.cc +) + +tint_target_add_dependencies("lang/core/ir/transform:test" + "lang/core/type" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/core/ir/transform:test" + "lang/core/ir" + "lang/core/ir/transform" + ) +endif(TINT_BUILD_IR) + +endif(TINT_BUILD_IR) \ No newline at end of file
diff --git a/src/tint/lang/core/type/BUILD.cmake b/src/tint/lang/core/type/BUILD.cmake new file mode 100644 index 0000000..a5af5d4 --- /dev/null +++ b/src/tint/lang/core/type/BUILD.cmake
@@ -0,0 +1,143 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/core/type" + lang/core/type/abstract_float.cc + lang/core/type/abstract_float.h + lang/core/type/abstract_int.cc + lang/core/type/abstract_int.h + lang/core/type/abstract_numeric.cc + lang/core/type/abstract_numeric.h + lang/core/type/array.cc + lang/core/type/array.h + lang/core/type/array_count.cc + lang/core/type/array_count.h + lang/core/type/atomic.cc + lang/core/type/atomic.h + lang/core/type/bool.cc + lang/core/type/bool.h + lang/core/type/builtin_structs.cc + lang/core/type/builtin_structs.h + lang/core/type/clone_context.h + lang/core/type/depth_multisampled_texture.cc + lang/core/type/depth_multisampled_texture.h + lang/core/type/depth_texture.cc + lang/core/type/depth_texture.h + lang/core/type/external_texture.cc + lang/core/type/external_texture.h + lang/core/type/f16.cc + lang/core/type/f16.h + lang/core/type/f32.cc + lang/core/type/f32.h + lang/core/type/i32.cc + lang/core/type/i32.h + lang/core/type/manager.cc + lang/core/type/manager.h + lang/core/type/matrix.cc + lang/core/type/matrix.h + lang/core/type/multisampled_texture.cc + lang/core/type/multisampled_texture.h + lang/core/type/node.cc + lang/core/type/node.h + lang/core/type/numeric_scalar.cc + lang/core/type/numeric_scalar.h + lang/core/type/pointer.cc + lang/core/type/pointer.h + lang/core/type/reference.cc + lang/core/type/reference.h + lang/core/type/sampled_texture.cc + lang/core/type/sampled_texture.h + lang/core/type/sampler.cc + lang/core/type/sampler.h + lang/core/type/sampler_kind.cc + lang/core/type/sampler_kind.h + lang/core/type/scalar.cc + lang/core/type/scalar.h + lang/core/type/storage_texture.cc + lang/core/type/storage_texture.h + lang/core/type/struct.cc + lang/core/type/struct.h + lang/core/type/texture.cc + lang/core/type/texture.h + lang/core/type/texture_dimension.cc + lang/core/type/texture_dimension.h + lang/core/type/type.cc + lang/core/type/type.h + lang/core/type/u32.cc + lang/core/type/u32.h + lang/core/type/unique_node.cc + lang/core/type/unique_node.h + lang/core/type/vector.cc + lang/core/type/vector.h + lang/core/type/void.cc + lang/core/type/void.h +) + +tint_target_add_dependencies("lang/core/type" + "lang/core" + "utils/containers" + "utils/diagnostic" + "utils/ice" + "utils/macros" + "utils/math" + "utils/rtti" + "utils/symbol" + "utils/text" + "utils/traits" +) + +tint_add_target("lang/core/type:test" + lang/core/type/array_test.cc + lang/core/type/atomic_test.cc + lang/core/type/bool_test.cc + lang/core/type/builtin_structs_test.cc + lang/core/type/depth_multisampled_texture_test.cc + lang/core/type/depth_texture_test.cc + lang/core/type/external_texture_test.cc + lang/core/type/f16_test.cc + lang/core/type/f32_test.cc + lang/core/type/helper_test.h + lang/core/type/i32_test.cc + lang/core/type/manager_test.cc + lang/core/type/matrix_test.cc + lang/core/type/multisampled_texture_test.cc + lang/core/type/pointer_test.cc + lang/core/type/reference_test.cc + lang/core/type/sampled_texture_test.cc + lang/core/type/sampler_test.cc + lang/core/type/storage_texture_test.cc + lang/core/type/struct_test.cc + lang/core/type/texture_test.cc + lang/core/type/type_test.cc + lang/core/type/u32_test.cc + lang/core/type/vector_test.cc +) + +tint_target_add_dependencies("lang/core/type:test" + "lang/core" + "lang/core/type" + "lang/wgsl/program" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "utils/id" + "utils/symbol" +)
diff --git a/src/tint/lang/glsl/BUILD.cmake b/src/tint/lang/glsl/BUILD.cmake new file mode 100644 index 0000000..84d8c48 --- /dev/null +++ b/src/tint/lang/glsl/BUILD.cmake
@@ -0,0 +1,23 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/glsl/writer/BUILD.cmake)
diff --git a/src/tint/lang/glsl/writer/BUILD.cmake b/src/tint/lang/glsl/writer/BUILD.cmake new file mode 100644 index 0000000..25bd799 --- /dev/null +++ b/src/tint/lang/glsl/writer/BUILD.cmake
@@ -0,0 +1,64 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/glsl/writer/ast_printer/BUILD.cmake) +include(lang/glsl/writer/common/BUILD.cmake) + +if(TINT_BUILD_GLSL_WRITER) +tint_add_target("lang/glsl/writer" + lang/glsl/writer/output.cc + lang/glsl/writer/output.h + lang/glsl/writer/writer.cc + lang/glsl/writer/writer.h +) + +tint_target_add_dependencies("lang/glsl/writer" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "utils/result" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("lang/glsl/writer" + "lang/glsl/writer/ast_printer" + "lang/glsl/writer/common" + ) +endif(TINT_BUILD_GLSL_WRITER) + +endif(TINT_BUILD_GLSL_WRITER) +if(TINT_BUILD_GLSL_WRITER) +tint_add_target("lang/glsl/writer:bench" + lang/glsl/writer/writer_bench.cc +) + +tint_target_add_dependencies("lang/glsl/writer:bench" + "cmd/bench" + "lang/wgsl/ast" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("lang/glsl/writer:bench" + "lang/glsl/writer" + ) +endif(TINT_BUILD_GLSL_WRITER) + +endif(TINT_BUILD_GLSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/glsl/writer/ast_printer/BUILD.cmake b/src/tint/lang/glsl/writer/ast_printer/BUILD.cmake new file mode 100644 index 0000000..117ceb4 --- /dev/null +++ b/src/tint/lang/glsl/writer/ast_printer/BUILD.cmake
@@ -0,0 +1,110 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_GLSL_WRITER) +tint_add_target("lang/glsl/writer/ast_printer" + lang/glsl/writer/ast_printer/ast_printer.cc + lang/glsl/writer/ast_printer/ast_printer.h +) + +tint_target_add_dependencies("lang/glsl/writer/ast_printer" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/helpers" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/generator" + "utils/ice" + "utils/macros" + "utils/math" + "utils/rtti" + "utils/strconv" + "utils/text" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("lang/glsl/writer/ast_printer" + "lang/glsl/writer/common" + ) +endif(TINT_BUILD_GLSL_WRITER) + +endif(TINT_BUILD_GLSL_WRITER) +if(TINT_BUILD_GLSL_WRITER) +tint_add_target("lang/glsl/writer/ast_printer:test" + lang/glsl/writer/ast_printer/array_accessor_test.cc + lang/glsl/writer/ast_printer/assign_test.cc + lang/glsl/writer/ast_printer/ast_printer_test.cc + lang/glsl/writer/ast_printer/binary_test.cc + lang/glsl/writer/ast_printer/bitcast_test.cc + lang/glsl/writer/ast_printer/block_test.cc + lang/glsl/writer/ast_printer/break_test.cc + lang/glsl/writer/ast_printer/builtin_test.cc + lang/glsl/writer/ast_printer/builtin_texture_test.cc + lang/glsl/writer/ast_printer/call_test.cc + lang/glsl/writer/ast_printer/case_test.cc + lang/glsl/writer/ast_printer/cast_test.cc + lang/glsl/writer/ast_printer/constructor_test.cc + lang/glsl/writer/ast_printer/continue_test.cc + lang/glsl/writer/ast_printer/discard_test.cc + lang/glsl/writer/ast_printer/function_test.cc + lang/glsl/writer/ast_printer/helper_test.h + lang/glsl/writer/ast_printer/identifier_test.cc + lang/glsl/writer/ast_printer/if_test.cc + lang/glsl/writer/ast_printer/import_test.cc + lang/glsl/writer/ast_printer/loop_test.cc + lang/glsl/writer/ast_printer/member_accessor_test.cc + lang/glsl/writer/ast_printer/module_constant_test.cc + lang/glsl/writer/ast_printer/return_test.cc + lang/glsl/writer/ast_printer/sanitizer_test.cc + lang/glsl/writer/ast_printer/storage_buffer_test.cc + lang/glsl/writer/ast_printer/switch_test.cc + lang/glsl/writer/ast_printer/type_test.cc + lang/glsl/writer/ast_printer/unary_op_test.cc + lang/glsl/writer/ast_printer/uniform_buffer_test.cc + lang/glsl/writer/ast_printer/variable_decl_statement_test.cc + lang/glsl/writer/ast_printer/workgroup_var_test.cc +) + +tint_target_add_dependencies("lang/glsl/writer/ast_printer:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/ast:test" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "utils/text" +) + +if (TINT_BUILD_GLSL_WRITER) + tint_target_add_dependencies("lang/glsl/writer/ast_printer:test" + "lang/glsl/writer" + "lang/glsl/writer/ast_printer" + "lang/glsl/writer/common" + ) +endif(TINT_BUILD_GLSL_WRITER) + +endif(TINT_BUILD_GLSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/glsl/writer/common/BUILD.cmake b/src/tint/lang/glsl/writer/common/BUILD.cmake new file mode 100644 index 0000000..7f0c883 --- /dev/null +++ b/src/tint/lang/glsl/writer/common/BUILD.cmake
@@ -0,0 +1,35 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_GLSL_WRITER) +tint_add_target("lang/glsl/writer/common" + lang/glsl/writer/common/options.cc + lang/glsl/writer/common/options.h + lang/glsl/writer/common/version.h +) + +tint_target_add_dependencies("lang/glsl/writer/common" + "lang/core" + "lang/wgsl/sem" +) + +endif(TINT_BUILD_GLSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/hlsl/BUILD.cmake b/src/tint/lang/hlsl/BUILD.cmake new file mode 100644 index 0000000..4a79af9 --- /dev/null +++ b/src/tint/lang/hlsl/BUILD.cmake
@@ -0,0 +1,24 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/hlsl/validate/BUILD.cmake) +include(lang/hlsl/writer/BUILD.cmake)
diff --git a/src/tint/lang/hlsl/validate/BUILD.cmake b/src/tint/lang/hlsl/validate/BUILD.cmake new file mode 100644 index 0000000..4c1258d --- /dev/null +++ b/src/tint/lang/hlsl/validate/BUILD.cmake
@@ -0,0 +1,36 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_HLSL_WRITER) +tint_add_target("lang/hlsl/validate" + lang/hlsl/validate/hlsl.cc + lang/hlsl/validate/val.h +) + +tint_target_add_dependencies("lang/hlsl/validate" + "lang/wgsl/ast" + "utils/command" + "utils/file" + "utils/text" +) + +endif(TINT_BUILD_HLSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/hlsl/writer/BUILD.cmake b/src/tint/lang/hlsl/writer/BUILD.cmake new file mode 100644 index 0000000..11d0990 --- /dev/null +++ b/src/tint/lang/hlsl/writer/BUILD.cmake
@@ -0,0 +1,62 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/hlsl/writer/ast_printer/BUILD.cmake) +include(lang/hlsl/writer/common/BUILD.cmake) + +if(TINT_BUILD_HLSL_WRITER) +tint_add_target("lang/hlsl/writer" + lang/hlsl/writer/output.cc + lang/hlsl/writer/output.h + lang/hlsl/writer/writer.cc + lang/hlsl/writer/writer.h +) + +tint_target_add_dependencies("lang/hlsl/writer" + "lang/hlsl/writer/common" + "lang/wgsl/ast" + "utils/result" +) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("lang/hlsl/writer" + "lang/hlsl/writer/ast_printer" + ) +endif(TINT_BUILD_HLSL_WRITER) + +endif(TINT_BUILD_HLSL_WRITER) +if(TINT_BUILD_HLSL_WRITER) +tint_add_target("lang/hlsl/writer:bench" + lang/hlsl/writer/writer_bench.cc +) + +tint_target_add_dependencies("lang/hlsl/writer:bench" + "cmd/bench" +) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("lang/hlsl/writer:bench" + "lang/hlsl/writer" + ) +endif(TINT_BUILD_HLSL_WRITER) + +endif(TINT_BUILD_HLSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/hlsl/writer/ast_printer/BUILD.cfg b/src/tint/lang/hlsl/writer/ast_printer/BUILD.cfg new file mode 100644 index 0000000..31b4636 --- /dev/null +++ b/src/tint/lang/hlsl/writer/ast_printer/BUILD.cfg
@@ -0,0 +1,3 @@ +{ + "condition": "tint_build_hlsl_writer" +}
diff --git a/src/tint/lang/hlsl/writer/ast_printer/BUILD.cmake b/src/tint/lang/hlsl/writer/ast_printer/BUILD.cmake new file mode 100644 index 0000000..45d0357 --- /dev/null +++ b/src/tint/lang/hlsl/writer/ast_printer/BUILD.cmake
@@ -0,0 +1,104 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_HLSL_WRITER) +tint_add_target("lang/hlsl/writer/ast_printer" + lang/hlsl/writer/ast_printer/ast_printer.cc + lang/hlsl/writer/ast_printer/ast_printer.h +) + +tint_target_add_dependencies("lang/hlsl/writer/ast_printer" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/hlsl/writer/common" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/helpers" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/generator" + "utils/ice" + "utils/macros" + "utils/math" + "utils/rtti" + "utils/strconv" + "utils/text" +) + +endif(TINT_BUILD_HLSL_WRITER) +if(TINT_BUILD_HLSL_WRITER) +tint_add_target("lang/hlsl/writer/ast_printer:test" + lang/hlsl/writer/ast_printer/array_accessor_test.cc + lang/hlsl/writer/ast_printer/assign_test.cc + lang/hlsl/writer/ast_printer/ast_printer_test.cc + lang/hlsl/writer/ast_printer/binary_test.cc + lang/hlsl/writer/ast_printer/bitcast_test.cc + lang/hlsl/writer/ast_printer/block_test.cc + lang/hlsl/writer/ast_printer/break_test.cc + lang/hlsl/writer/ast_printer/builtin_test.cc + lang/hlsl/writer/ast_printer/builtin_texture_test.cc + lang/hlsl/writer/ast_printer/call_test.cc + lang/hlsl/writer/ast_printer/case_test.cc + lang/hlsl/writer/ast_printer/cast_test.cc + lang/hlsl/writer/ast_printer/const_assert_test.cc + lang/hlsl/writer/ast_printer/constructor_test.cc + lang/hlsl/writer/ast_printer/continue_test.cc + lang/hlsl/writer/ast_printer/discard_test.cc + lang/hlsl/writer/ast_printer/function_test.cc + lang/hlsl/writer/ast_printer/helper_test.h + lang/hlsl/writer/ast_printer/identifier_test.cc + lang/hlsl/writer/ast_printer/if_test.cc + lang/hlsl/writer/ast_printer/import_test.cc + lang/hlsl/writer/ast_printer/loop_test.cc + lang/hlsl/writer/ast_printer/member_accessor_test.cc + lang/hlsl/writer/ast_printer/module_constant_test.cc + lang/hlsl/writer/ast_printer/return_test.cc + lang/hlsl/writer/ast_printer/sanitizer_test.cc + lang/hlsl/writer/ast_printer/switch_test.cc + lang/hlsl/writer/ast_printer/type_test.cc + lang/hlsl/writer/ast_printer/unary_op_test.cc + lang/hlsl/writer/ast_printer/variable_decl_statement_test.cc + lang/hlsl/writer/ast_printer/workgroup_var_test.cc +) + +tint_target_add_dependencies("lang/hlsl/writer/ast_printer:test" + "lang/core" + "lang/core/type" + "lang/hlsl/writer/common" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/ast:test" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "utils/text" +) + +if (TINT_BUILD_HLSL_WRITER) + tint_target_add_dependencies("lang/hlsl/writer/ast_printer:test" + "lang/hlsl/writer" + "lang/hlsl/writer/ast_printer" + ) +endif(TINT_BUILD_HLSL_WRITER) + +endif(TINT_BUILD_HLSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/hlsl/writer/common/BUILD.cmake b/src/tint/lang/hlsl/writer/common/BUILD.cmake new file mode 100644 index 0000000..cc78336 --- /dev/null +++ b/src/tint/lang/hlsl/writer/common/BUILD.cmake
@@ -0,0 +1,30 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/hlsl/writer/common" + lang/hlsl/writer/common/options.cc + lang/hlsl/writer/common/options.h +) + +tint_target_add_dependencies("lang/hlsl/writer/common" + "utils/reflection" +)
diff --git a/src/tint/lang/msl/BUILD.cmake b/src/tint/lang/msl/BUILD.cmake new file mode 100644 index 0000000..b08b8ee --- /dev/null +++ b/src/tint/lang/msl/BUILD.cmake
@@ -0,0 +1,24 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/msl/validate/BUILD.cmake) +include(lang/msl/writer/BUILD.cmake)
diff --git a/src/tint/lang/msl/validate/BUILD.cmake b/src/tint/lang/msl/validate/BUILD.cmake new file mode 100644 index 0000000..1bb754a --- /dev/null +++ b/src/tint/lang/msl/validate/BUILD.cmake
@@ -0,0 +1,36 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_MSL_WRITER) +tint_add_target("lang/msl/validate" + lang/msl/validate/msl.cc + lang/msl/validate/val.h +) + +tint_target_add_dependencies("lang/msl/validate" + "lang/wgsl/ast" + "lang/wgsl/program" + "utils/command" + "utils/file" +) + +endif(TINT_BUILD_MSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/msl/writer/BUILD.cmake b/src/tint/lang/msl/writer/BUILD.cmake new file mode 100644 index 0000000..24c87ee --- /dev/null +++ b/src/tint/lang/msl/writer/BUILD.cmake
@@ -0,0 +1,78 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/msl/writer/ast_printer/BUILD.cmake) +include(lang/msl/writer/common/BUILD.cmake) +include(lang/msl/writer/printer/BUILD.cmake) +include(lang/msl/writer/raise/BUILD.cmake) + +if(TINT_BUILD_MSL_WRITER) +tint_add_target("lang/msl/writer" + lang/msl/writer/output.cc + lang/msl/writer/output.h + lang/msl/writer/writer.cc + lang/msl/writer/writer.h +) + +tint_target_add_dependencies("lang/msl/writer" + "lang/msl/writer/raise" + "utils/result" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/msl/writer" + "lang/wgsl/reader/program_to_ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("lang/msl/writer" + "lang/msl/writer/ast_printer" + "lang/msl/writer/common" + ) +endif(TINT_BUILD_MSL_WRITER) + +if (TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("lang/msl/writer" + "lang/msl/writer/printer" + ) +endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) + +endif(TINT_BUILD_MSL_WRITER) +if(TINT_BUILD_MSL_WRITER) +tint_add_target("lang/msl/writer:bench" + lang/msl/writer/writer_bench.cc +) + +tint_target_add_dependencies("lang/msl/writer:bench" + "cmd/bench" + "lang/wgsl/ast" + "lang/wgsl/sem" +) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("lang/msl/writer:bench" + "lang/msl/writer" + ) +endif(TINT_BUILD_MSL_WRITER) + +endif(TINT_BUILD_MSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/msl/writer/ast_printer/BUILD.cmake b/src/tint/lang/msl/writer/ast_printer/BUILD.cmake new file mode 100644 index 0000000..e78f3f4 --- /dev/null +++ b/src/tint/lang/msl/writer/ast_printer/BUILD.cmake
@@ -0,0 +1,104 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_MSL_WRITER) +tint_add_target("lang/msl/writer/ast_printer" + lang/msl/writer/ast_printer/ast_printer.cc + lang/msl/writer/ast_printer/ast_printer.h +) + +tint_target_add_dependencies("lang/msl/writer/ast_printer" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/helpers" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/generator" + "utils/macros" + "utils/rtti" + "utils/text" +) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("lang/msl/writer/ast_printer" + "lang/msl/writer/common" + ) +endif(TINT_BUILD_MSL_WRITER) + +endif(TINT_BUILD_MSL_WRITER) +if(TINT_BUILD_MSL_WRITER) +tint_add_target("lang/msl/writer/ast_printer:test" + lang/msl/writer/ast_printer/array_accessor_test.cc + lang/msl/writer/ast_printer/assign_test.cc + lang/msl/writer/ast_printer/ast_function_test.cc + lang/msl/writer/ast_printer/ast_printer_test.cc + lang/msl/writer/ast_printer/ast_type_test.cc + lang/msl/writer/ast_printer/binary_test.cc + lang/msl/writer/ast_printer/bitcast_test.cc + lang/msl/writer/ast_printer/block_test.cc + lang/msl/writer/ast_printer/break_test.cc + lang/msl/writer/ast_printer/builtin_test.cc + lang/msl/writer/ast_printer/builtin_texture_test.cc + lang/msl/writer/ast_printer/call_test.cc + lang/msl/writer/ast_printer/case_test.cc + lang/msl/writer/ast_printer/cast_test.cc + lang/msl/writer/ast_printer/const_assert_test.cc + lang/msl/writer/ast_printer/constructor_test.cc + lang/msl/writer/ast_printer/continue_test.cc + lang/msl/writer/ast_printer/discard_test.cc + lang/msl/writer/ast_printer/helper_test.h + lang/msl/writer/ast_printer/identifier_test.cc + lang/msl/writer/ast_printer/if_test.cc + lang/msl/writer/ast_printer/import_test.cc + lang/msl/writer/ast_printer/loop_test.cc + lang/msl/writer/ast_printer/member_accessor_test.cc + lang/msl/writer/ast_printer/module_constant_test.cc + lang/msl/writer/ast_printer/return_test.cc + lang/msl/writer/ast_printer/sanitizer_test.cc + lang/msl/writer/ast_printer/switch_test.cc + lang/msl/writer/ast_printer/unary_op_test.cc + lang/msl/writer/ast_printer/variable_decl_statement_test.cc +) + +tint_target_add_dependencies("lang/msl/writer/ast_printer:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast:test" + "lang/wgsl/program" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "utils/text" +) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("lang/msl/writer/ast_printer:test" + "lang/msl/writer" + "lang/msl/writer/ast_printer" + ) +endif(TINT_BUILD_MSL_WRITER) + +endif(TINT_BUILD_MSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/msl/writer/common/BUILD.cmake b/src/tint/lang/msl/writer/common/BUILD.cmake new file mode 100644 index 0000000..524f5f6 --- /dev/null +++ b/src/tint/lang/msl/writer/common/BUILD.cmake
@@ -0,0 +1,53 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_MSL_WRITER) +tint_add_target("lang/msl/writer/common" + lang/msl/writer/common/options.cc + lang/msl/writer/common/options.h + lang/msl/writer/common/printer_support.cc + lang/msl/writer/common/printer_support.h +) + +tint_target_add_dependencies("lang/msl/writer/common" + "lang/core" + "lang/core/type" + "utils/ice" + "utils/reflection" + "utils/rtti" + "utils/strconv" + "utils/text" +) + +endif(TINT_BUILD_MSL_WRITER) +if(TINT_BUILD_MSL_WRITER) +tint_add_target("lang/msl/writer/common:test" + lang/msl/writer/common/printer_support_test.cc +) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("lang/msl/writer/common:test" + "lang/msl/writer/common" + ) +endif(TINT_BUILD_MSL_WRITER) + +endif(TINT_BUILD_MSL_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/msl/writer/printer/BUILD.cmake b/src/tint/lang/msl/writer/printer/BUILD.cmake new file mode 100644 index 0000000..cdb6736 --- /dev/null +++ b/src/tint/lang/msl/writer/printer/BUILD.cmake
@@ -0,0 +1,86 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) +tint_add_target("lang/msl/writer/printer" + lang/msl/writer/printer/printer.cc + lang/msl/writer/printer/printer.h +) + +tint_target_add_dependencies("lang/msl/writer/printer" + "lang/core" + "lang/core/constant" + "lang/core/type" + "utils/containers" + "utils/diagnostic" + "utils/generator" + "utils/macros" + "utils/rtti" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/msl/writer/printer" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_MSL_WRITER) + tint_target_add_dependencies("lang/msl/writer/printer" + "lang/msl/writer/common" + ) +endif(TINT_BUILD_MSL_WRITER) + +endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) +if(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) +tint_add_target("lang/msl/writer/printer:test" + lang/msl/writer/printer/binary_test.cc + lang/msl/writer/printer/constant_test.cc + lang/msl/writer/printer/function_test.cc + lang/msl/writer/printer/helper_test.h + lang/msl/writer/printer/if_test.cc + lang/msl/writer/printer/let_test.cc + lang/msl/writer/printer/return_test.cc + lang/msl/writer/printer/type_test.cc + lang/msl/writer/printer/var_test.cc +) + +tint_target_add_dependencies("lang/msl/writer/printer:test" + "lang/core" + "lang/core/type" + "lang/msl/writer/raise" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/msl/writer/printer:test" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("lang/msl/writer/printer:test" + "lang/msl/writer/printer" + ) +endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) + +endif(TINT_BUILD_MSL_WRITER AND TINT_BUILD_IR) \ No newline at end of file
diff --git a/src/tint/lang/msl/writer/raise/BUILD.cmake b/src/tint/lang/msl/writer/raise/BUILD.cmake new file mode 100644 index 0000000..d9d2aa2 --- /dev/null +++ b/src/tint/lang/msl/writer/raise/BUILD.cmake
@@ -0,0 +1,30 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/msl/writer/raise" + lang/msl/writer/raise/raise.cc + lang/msl/writer/raise/raise.h +) + +tint_target_add_dependencies("lang/msl/writer/raise" + "utils/result" +)
diff --git a/src/tint/lang/spirv/BUILD.cmake b/src/tint/lang/spirv/BUILD.cmake new file mode 100644 index 0000000..0b8158e --- /dev/null +++ b/src/tint/lang/spirv/BUILD.cmake
@@ -0,0 +1,24 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/spirv/reader/BUILD.cmake) +include(lang/spirv/writer/BUILD.cmake)
diff --git a/src/tint/lang/spirv/reader/BUILD.cmake b/src/tint/lang/spirv/reader/BUILD.cmake new file mode 100644 index 0000000..76044d5 --- /dev/null +++ b/src/tint/lang/spirv/reader/BUILD.cmake
@@ -0,0 +1,43 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/spirv/reader/ast_parser/BUILD.cmake) +include(lang/spirv/reader/common/BUILD.cmake) + +if(TINT_BUILD_SPV_READER) +tint_add_target("lang/spirv/reader" + lang/spirv/reader/reader.cc + lang/spirv/reader/reader.h +) + +tint_target_add_dependencies("lang/spirv/reader" + "lang/spirv/reader/common" + "lang/wgsl/program" +) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("lang/spirv/reader" + "lang/spirv/reader/ast_parser" + ) +endif(TINT_BUILD_SPV_READER) + +endif(TINT_BUILD_SPV_READER) \ No newline at end of file
diff --git a/src/tint/lang/spirv/reader/ast_parser/BUILD.cfg b/src/tint/lang/spirv/reader/ast_parser/BUILD.cfg new file mode 100644 index 0000000..a460fd5 --- /dev/null +++ b/src/tint/lang/spirv/reader/ast_parser/BUILD.cfg
@@ -0,0 +1,3 @@ +{ + "condition": "tint_build_spv_reader" +}
diff --git a/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake b/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake new file mode 100644 index 0000000..2459346 --- /dev/null +++ b/src/tint/lang/spirv/reader/ast_parser/BUILD.cmake
@@ -0,0 +1,136 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_SPV_READER) +tint_add_target("lang/spirv/reader/ast_parser" + lang/spirv/reader/ast_parser/ast_parser.cc + lang/spirv/reader/ast_parser/ast_parser.h + lang/spirv/reader/ast_parser/attributes.h + lang/spirv/reader/ast_parser/construct.cc + lang/spirv/reader/ast_parser/construct.h + lang/spirv/reader/ast_parser/entry_point_info.cc + lang/spirv/reader/ast_parser/entry_point_info.h + lang/spirv/reader/ast_parser/enum_converter.cc + lang/spirv/reader/ast_parser/enum_converter.h + lang/spirv/reader/ast_parser/fail_stream.h + lang/spirv/reader/ast_parser/function.cc + lang/spirv/reader/ast_parser/function.h + lang/spirv/reader/ast_parser/namer.cc + lang/spirv/reader/ast_parser/namer.h + lang/spirv/reader/ast_parser/parse.cc + lang/spirv/reader/ast_parser/parse.h + lang/spirv/reader/ast_parser/type.cc + lang/spirv/reader/ast_parser/type.h + lang/spirv/reader/ast_parser/usage.cc + lang/spirv/reader/ast_parser/usage.h +) + +tint_target_add_dependencies("lang/spirv/reader/ast_parser" + "lang/core" + "lang/core/type" + "lang/spirv/reader/common" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/program" + "lang/wgsl/resolver" + "utils/containers" + "utils/ice" + "utils/macros" + "utils/math" + "utils/memory" + "utils/rtti" + "utils/symbol" + "utils/text" + "utils/traits" +) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/reader/ast_parser" + "spirv-headers" + "spirv-opt-internal" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_READER) +if(TINT_BUILD_SPV_READER) +tint_add_target("lang/spirv/reader/ast_parser:test" + lang/spirv/reader/ast_parser/ast_parser_test.cc + lang/spirv/reader/ast_parser/barrier_test.cc + lang/spirv/reader/ast_parser/constant_test.cc + lang/spirv/reader/ast_parser/convert_member_decoration_test.cc + lang/spirv/reader/ast_parser/convert_type_test.cc + lang/spirv/reader/ast_parser/enum_converter_test.cc + lang/spirv/reader/ast_parser/fail_stream_test.cc + lang/spirv/reader/ast_parser/function_arithmetic_test.cc + lang/spirv/reader/ast_parser/function_bit_test.cc + lang/spirv/reader/ast_parser/function_call_test.cc + lang/spirv/reader/ast_parser/function_cfg_test.cc + lang/spirv/reader/ast_parser/function_composite_test.cc + lang/spirv/reader/ast_parser/function_conversion_test.cc + lang/spirv/reader/ast_parser/function_decl_test.cc + lang/spirv/reader/ast_parser/function_glsl_std_450_test.cc + lang/spirv/reader/ast_parser/function_logical_test.cc + lang/spirv/reader/ast_parser/function_memory_test.cc + lang/spirv/reader/ast_parser/function_misc_test.cc + lang/spirv/reader/ast_parser/function_var_test.cc + lang/spirv/reader/ast_parser/get_decorations_test.cc + lang/spirv/reader/ast_parser/handle_test.cc + lang/spirv/reader/ast_parser/helper_test.cc + lang/spirv/reader/ast_parser/helper_test.h + lang/spirv/reader/ast_parser/import_test.cc + lang/spirv/reader/ast_parser/module_function_decl_test.cc + lang/spirv/reader/ast_parser/module_var_test.cc + lang/spirv/reader/ast_parser/named_types_test.cc + lang/spirv/reader/ast_parser/namer_test.cc + lang/spirv/reader/ast_parser/parser_test.cc + lang/spirv/reader/ast_parser/spirv_tools_helpers_test.cc + lang/spirv/reader/ast_parser/spirv_tools_helpers_test.h + lang/spirv/reader/ast_parser/type_test.cc + lang/spirv/reader/ast_parser/usage_test.cc + lang/spirv/reader/ast_parser/user_name_test.cc +) + +tint_target_add_dependencies("lang/spirv/reader/ast_parser:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/sem" + "lang/wgsl/writer/ast_printer" + "utils/macros" + "utils/rtti" + "utils/text" +) + +if (TINT_BUILD_SPV_READER) + tint_target_add_dependencies("lang/spirv/reader/ast_parser:test" + "lang/spirv/reader/ast_parser" + ) +endif(TINT_BUILD_SPV_READER) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/reader/ast_parser:test" + "spirv-opt-internal" + "spirv-tools" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_READER) \ No newline at end of file
diff --git a/src/tint/lang/spirv/reader/common/BUILD.cmake b/src/tint/lang/spirv/reader/common/BUILD.cmake new file mode 100644 index 0000000..6032e1c --- /dev/null +++ b/src/tint/lang/spirv/reader/common/BUILD.cmake
@@ -0,0 +1,26 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/spirv/reader/common" + lang/spirv/reader/common/common.cc + lang/spirv/reader/common/options.h +)
diff --git a/src/tint/lang/spirv/reader/common/common.cc b/src/tint/lang/spirv/reader/common/common.cc new file mode 100644 index 0000000..66dc3af --- /dev/null +++ b/src/tint/lang/spirv/reader/common/common.cc
@@ -0,0 +1,20 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_lang_spirv_reader_common = 1; + +#endif
diff --git a/src/tint/lang/spirv/writer/BUILD.cmake b/src/tint/lang/spirv/writer/BUILD.cmake new file mode 100644 index 0000000..76e34ba --- /dev/null +++ b/src/tint/lang/spirv/writer/BUILD.cmake
@@ -0,0 +1,131 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/spirv/writer/ast_printer/BUILD.cmake) +include(lang/spirv/writer/common/BUILD.cmake) +include(lang/spirv/writer/printer/BUILD.cmake) +include(lang/spirv/writer/raise/BUILD.cmake) + +if(TINT_BUILD_SPV_WRITER) +tint_add_target("lang/spirv/writer" + lang/spirv/writer/output.h + lang/spirv/writer/writer.cc + lang/spirv/writer/writer.h +) + +tint_target_add_dependencies("lang/spirv/writer" + "utils/result" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer" + "lang/core/ir/transform" + "lang/wgsl/reader/program_to_ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/writer" + "spirv-headers" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer" + "lang/spirv/writer/ast_printer" + "lang/spirv/writer/common" + ) +endif(TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer" + "lang/spirv/writer/printer" + "lang/spirv/writer/raise" + ) +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + +endif(TINT_BUILD_SPV_WRITER) +if(TINT_BUILD_SPV_WRITER) +tint_add_target("lang/spirv/writer:test" +) + +tint_target_add_dependencies("lang/spirv/writer:test" + "lang/core" + "lang/core/type" +) + +if (TINT_BUILD_IR) + tint_target_add_sources("lang/spirv/writer:test" + "lang/spirv/writer/access_test.cc" + "lang/spirv/writer/atomic_builtin_test.cc" + "lang/spirv/writer/binary_test.cc" + "lang/spirv/writer/bitcast_test.cc" + "lang/spirv/writer/builtin_test.cc" + "lang/spirv/writer/constant_test.cc" + "lang/spirv/writer/construct_test.cc" + "lang/spirv/writer/convert_test.cc" + "lang/spirv/writer/discard_test.cc" + "lang/spirv/writer/function_test.cc" + "lang/spirv/writer/if_test.cc" + "lang/spirv/writer/let_test.cc" + "lang/spirv/writer/loop_test.cc" + "lang/spirv/writer/switch_test.cc" + "lang/spirv/writer/swizzle_test.cc" + "lang/spirv/writer/texture_builtin_test.cc" + "lang/spirv/writer/type_test.cc" + "lang/spirv/writer/unary_test.cc" + "lang/spirv/writer/var_test.cc" + "lang/spirv/writer/writer_test.cc" + ) + tint_target_add_dependencies("lang/spirv/writer:test" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer:test" + "lang/spirv/writer/common:test" + ) +endif(TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_WRITER) +if(TINT_BUILD_SPV_WRITER) +tint_add_target("lang/spirv/writer:bench" +) + +tint_target_add_dependencies("lang/spirv/writer:bench" + "cmd/bench" +) + +if (TINT_BUILD_IR) + tint_target_add_sources("lang/spirv/writer:bench" + "lang/spirv/writer/writer_bench.cc" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer:bench" + "lang/spirv/writer" + ) +endif(TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/ast_printer/BUILD.cmake b/src/tint/lang/spirv/writer/ast_printer/BUILD.cmake new file mode 100644 index 0000000..74ef39f --- /dev/null +++ b/src/tint/lang/spirv/writer/ast_printer/BUILD.cmake
@@ -0,0 +1,117 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_SPV_WRITER) +tint_add_target("lang/spirv/writer/ast_printer" + lang/spirv/writer/ast_printer/ast_printer.cc + lang/spirv/writer/ast_printer/ast_printer.h + lang/spirv/writer/ast_printer/builder.cc + lang/spirv/writer/ast_printer/builder.h + lang/spirv/writer/ast_printer/scalar_constant.h +) + +tint_target_add_dependencies("lang/spirv/writer/ast_printer" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/helpers" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/macros" + "utils/math" + "utils/text" +) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/writer/ast_printer" + "spirv-headers" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer/ast_printer" + "lang/spirv/writer/common" + ) +endif(TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_WRITER) +if(TINT_BUILD_SPV_WRITER) +tint_add_target("lang/spirv/writer/ast_printer:test" + lang/spirv/writer/ast_printer/accessor_expression_test.cc + lang/spirv/writer/ast_printer/assign_test.cc + lang/spirv/writer/ast_printer/ast_builtin_test.cc + lang/spirv/writer/ast_printer/ast_discard_test.cc + lang/spirv/writer/ast_printer/ast_function_test.cc + lang/spirv/writer/ast_printer/ast_if_test.cc + lang/spirv/writer/ast_printer/ast_loop_test.cc + lang/spirv/writer/ast_printer/ast_printer_test.cc + lang/spirv/writer/ast_printer/ast_switch_test.cc + lang/spirv/writer/ast_printer/ast_type_test.cc + lang/spirv/writer/ast_printer/binary_expression_test.cc + lang/spirv/writer/ast_printer/bitcast_expression_test.cc + lang/spirv/writer/ast_printer/block_test.cc + lang/spirv/writer/ast_printer/builtin_texture_test.cc + lang/spirv/writer/ast_printer/call_test.cc + lang/spirv/writer/ast_printer/const_assert_test.cc + lang/spirv/writer/ast_printer/constructor_expression_test.cc + lang/spirv/writer/ast_printer/entry_point_test.cc + lang/spirv/writer/ast_printer/format_conversion_test.cc + lang/spirv/writer/ast_printer/function_attribute_test.cc + lang/spirv/writer/ast_printer/function_variable_test.cc + lang/spirv/writer/ast_printer/global_variable_test.cc + lang/spirv/writer/ast_printer/helper_test.h + lang/spirv/writer/ast_printer/ident_expression_test.cc + lang/spirv/writer/ast_printer/literal_test.cc + lang/spirv/writer/ast_printer/return_test.cc + lang/spirv/writer/ast_printer/scalar_constant_test.cc + lang/spirv/writer/ast_printer/unary_op_expression_test.cc +) + +tint_target_add_dependencies("lang/spirv/writer/ast_printer:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast:test" + "lang/wgsl/program" + "lang/wgsl/resolver" + "utils/text" +) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/writer/ast_printer:test" + "spirv-tools" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer/ast_printer:test" + "lang/spirv/writer" + "lang/spirv/writer/ast_printer" + "lang/spirv/writer/common" + "lang/spirv/writer/common:test" + ) +endif(TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/common/BUILD.cmake b/src/tint/lang/spirv/writer/common/BUILD.cmake new file mode 100644 index 0000000..2674bf8 --- /dev/null +++ b/src/tint/lang/spirv/writer/common/BUILD.cmake
@@ -0,0 +1,93 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_SPV_WRITER) +tint_add_target("lang/spirv/writer/common" + lang/spirv/writer/common/binary_writer.cc + lang/spirv/writer/common/binary_writer.h + lang/spirv/writer/common/function.cc + lang/spirv/writer/common/function.h + lang/spirv/writer/common/instruction.cc + lang/spirv/writer/common/instruction.h + lang/spirv/writer/common/module.cc + lang/spirv/writer/common/module.h + lang/spirv/writer/common/operand.cc + lang/spirv/writer/common/operand.h + lang/spirv/writer/common/options.h +) + +tint_target_add_dependencies("lang/spirv/writer/common" + "utils/math" + "utils/reflection" +) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/writer/common" + "spirv-headers" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_WRITER) +if(TINT_BUILD_SPV_WRITER) +tint_add_target("lang/spirv/writer/common:test" + lang/spirv/writer/common/binary_writer_test.cc + lang/spirv/writer/common/instruction_test.cc + lang/spirv/writer/common/module_test.cc + lang/spirv/writer/common/operand_test.cc + lang/spirv/writer/common/spv_dump_test.cc + lang/spirv/writer/common/spv_dump_test.h +) + +tint_target_add_dependencies("lang/spirv/writer/common:test" + "lang/core/type" +) + +if (TINT_BUILD_IR) + tint_target_add_sources("lang/spirv/writer/common:test" + "lang/spirv/writer/common/helper_test.h" + ) + tint_target_add_dependencies("lang/spirv/writer/common:test" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/writer/common:test" + "spirv-headers" + "spirv-tools" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer/common:test" + "lang/spirv/writer/common" + ) +endif(TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer/common:test" + "lang/spirv/writer/printer" + "lang/spirv/writer/raise" + ) +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + +endif(TINT_BUILD_SPV_WRITER) \ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/printer/BUILD.cmake b/src/tint/lang/spirv/writer/printer/BUILD.cmake new file mode 100644 index 0000000..065d957 --- /dev/null +++ b/src/tint/lang/spirv/writer/printer/BUILD.cmake
@@ -0,0 +1,66 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) +tint_add_target("lang/spirv/writer/printer" + lang/spirv/writer/printer/printer.cc + lang/spirv/writer/printer/printer.h +) + +tint_target_add_dependencies("lang/spirv/writer/printer" + "lang/core" + "lang/core/constant" + "lang/core/type" + "utils/containers" + "utils/diagnostic" + "utils/macros" + "utils/result" + "utils/rtti" + "utils/symbol" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer/printer" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/writer/printer" + "spirv-headers" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer/printer" + "lang/spirv/writer/ast_printer" + "lang/spirv/writer/common" + ) +endif(TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer/printer" + "lang/spirv/writer/raise" + ) +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) \ No newline at end of file
diff --git a/src/tint/lang/spirv/writer/raise/BUILD.cmake b/src/tint/lang/spirv/writer/raise/BUILD.cmake new file mode 100644 index 0000000..96c3fe1 --- /dev/null +++ b/src/tint/lang/spirv/writer/raise/BUILD.cmake
@@ -0,0 +1,96 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) +tint_add_target("lang/spirv/writer/raise" + lang/spirv/writer/raise/builtin_polyfill.cc + lang/spirv/writer/raise/builtin_polyfill.h + lang/spirv/writer/raise/expand_implicit_splats.cc + lang/spirv/writer/raise/expand_implicit_splats.h + lang/spirv/writer/raise/handle_matrix_arithmetic.cc + lang/spirv/writer/raise/handle_matrix_arithmetic.h + lang/spirv/writer/raise/merge_return.cc + lang/spirv/writer/raise/merge_return.h + lang/spirv/writer/raise/raise.cc + lang/spirv/writer/raise/raise.h + lang/spirv/writer/raise/shader_io.cc + lang/spirv/writer/raise/shader_io.h + lang/spirv/writer/raise/var_for_dynamic_index.cc + lang/spirv/writer/raise/var_for_dynamic_index.h +) + +tint_target_add_dependencies("lang/spirv/writer/raise" + "lang/core" + "lang/core/type" + "utils/containers" + "utils/ice" + "utils/result" + "utils/rtti" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer/raise" + "lang/core/ir" + "lang/core/ir/transform" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + tint_target_add_external_dependencies("lang/spirv/writer/raise" + "spirv-headers" + ) +endif(TINT_BUILD_SPV_READER OR TINT_BUILD_SPV_WRITER) + +if (TINT_BUILD_SPV_WRITER) + tint_target_add_dependencies("lang/spirv/writer/raise" + "lang/spirv/writer/common" + ) +endif(TINT_BUILD_SPV_WRITER) + +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) +if(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) +tint_add_target("lang/spirv/writer/raise:test" + lang/spirv/writer/raise/builtin_polyfill_test.cc + lang/spirv/writer/raise/expand_implicit_splats_test.cc + lang/spirv/writer/raise/handle_matrix_arithmetic_test.cc + lang/spirv/writer/raise/merge_return_test.cc + lang/spirv/writer/raise/shader_io_test.cc + lang/spirv/writer/raise/var_for_dynamic_index_test.cc +) + +tint_target_add_dependencies("lang/spirv/writer/raise:test" + "lang/core/type" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer/raise:test" + "lang/core/ir/transform:test" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + tint_target_add_dependencies("lang/spirv/writer/raise:test" + "lang/spirv/writer/raise" + ) +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) + +endif(TINT_BUILD_SPV_WRITER AND TINT_BUILD_IR) \ No newline at end of file
diff --git a/src/tint/lang/wgsl/BUILD.cmake b/src/tint/lang/wgsl/BUILD.cmake new file mode 100644 index 0000000..3756cc5 --- /dev/null +++ b/src/tint/lang/wgsl/BUILD.cmake
@@ -0,0 +1,53 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/wgsl/ast/BUILD.cmake) +include(lang/wgsl/helpers/BUILD.cmake) +include(lang/wgsl/inspector/BUILD.cmake) +include(lang/wgsl/program/BUILD.cmake) +include(lang/wgsl/reader/BUILD.cmake) +include(lang/wgsl/resolver/BUILD.cmake) +include(lang/wgsl/sem/BUILD.cmake) +include(lang/wgsl/writer/BUILD.cmake) + +tint_add_target("lang/wgsl:test" +) + +tint_target_add_dependencies("lang/wgsl:test" + "lang/wgsl/helpers:test" + "lang/wgsl/reader" + "lang/wgsl/writer" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/wgsl:test" + "lang/wgsl/reader/program_to_ir" + "lang/wgsl/writer/ir_to_program" + ) +endif(TINT_BUILD_IR) + +if (TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_IR) + tint_target_add_sources("lang/wgsl:test" + "lang/wgsl/ir_roundtrip_test.cc" + ) +endif(TINT_BUILD_WGSL_READER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_IR)
diff --git a/src/tint/lang/wgsl/ast/BUILD.cmake b/src/tint/lang/wgsl/ast/BUILD.cmake new file mode 100644 index 0000000..b63991b --- /dev/null +++ b/src/tint/lang/wgsl/ast/BUILD.cmake
@@ -0,0 +1,275 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/wgsl/ast/transform/BUILD.cmake) + +tint_add_target("lang/wgsl/ast" + lang/wgsl/ast/accessor_expression.cc + lang/wgsl/ast/accessor_expression.h + lang/wgsl/ast/alias.cc + lang/wgsl/ast/alias.h + lang/wgsl/ast/assignment_statement.cc + lang/wgsl/ast/assignment_statement.h + lang/wgsl/ast/attribute.cc + lang/wgsl/ast/attribute.h + lang/wgsl/ast/binary_expression.cc + lang/wgsl/ast/binary_expression.h + lang/wgsl/ast/binding_attribute.cc + lang/wgsl/ast/binding_attribute.h + lang/wgsl/ast/bitcast_expression.cc + lang/wgsl/ast/bitcast_expression.h + lang/wgsl/ast/block_statement.cc + lang/wgsl/ast/block_statement.h + lang/wgsl/ast/bool_literal_expression.cc + lang/wgsl/ast/bool_literal_expression.h + lang/wgsl/ast/break_if_statement.cc + lang/wgsl/ast/break_if_statement.h + lang/wgsl/ast/break_statement.cc + lang/wgsl/ast/break_statement.h + lang/wgsl/ast/builder.cc + lang/wgsl/ast/builder.h + lang/wgsl/ast/builtin_attribute.cc + lang/wgsl/ast/builtin_attribute.h + lang/wgsl/ast/call_expression.cc + lang/wgsl/ast/call_expression.h + lang/wgsl/ast/call_statement.cc + lang/wgsl/ast/call_statement.h + lang/wgsl/ast/case_selector.cc + lang/wgsl/ast/case_selector.h + lang/wgsl/ast/case_statement.cc + lang/wgsl/ast/case_statement.h + lang/wgsl/ast/clone_context.cc + lang/wgsl/ast/clone_context.h + lang/wgsl/ast/compound_assignment_statement.cc + lang/wgsl/ast/compound_assignment_statement.h + lang/wgsl/ast/const.cc + lang/wgsl/ast/const.h + lang/wgsl/ast/const_assert.cc + lang/wgsl/ast/const_assert.h + lang/wgsl/ast/continue_statement.cc + lang/wgsl/ast/continue_statement.h + lang/wgsl/ast/diagnostic_attribute.cc + lang/wgsl/ast/diagnostic_attribute.h + lang/wgsl/ast/diagnostic_control.cc + lang/wgsl/ast/diagnostic_control.h + lang/wgsl/ast/diagnostic_directive.cc + lang/wgsl/ast/diagnostic_directive.h + lang/wgsl/ast/diagnostic_rule_name.cc + lang/wgsl/ast/diagnostic_rule_name.h + lang/wgsl/ast/disable_validation_attribute.cc + lang/wgsl/ast/disable_validation_attribute.h + lang/wgsl/ast/discard_statement.cc + lang/wgsl/ast/discard_statement.h + lang/wgsl/ast/enable.cc + lang/wgsl/ast/enable.h + lang/wgsl/ast/expression.cc + lang/wgsl/ast/expression.h + lang/wgsl/ast/extension.cc + lang/wgsl/ast/extension.h + lang/wgsl/ast/float_literal_expression.cc + lang/wgsl/ast/float_literal_expression.h + lang/wgsl/ast/for_loop_statement.cc + lang/wgsl/ast/for_loop_statement.h + lang/wgsl/ast/function.cc + lang/wgsl/ast/function.h + lang/wgsl/ast/group_attribute.cc + lang/wgsl/ast/group_attribute.h + lang/wgsl/ast/id_attribute.cc + lang/wgsl/ast/id_attribute.h + lang/wgsl/ast/identifier.cc + lang/wgsl/ast/identifier.h + lang/wgsl/ast/identifier_expression.cc + lang/wgsl/ast/identifier_expression.h + lang/wgsl/ast/if_statement.cc + lang/wgsl/ast/if_statement.h + lang/wgsl/ast/increment_decrement_statement.cc + lang/wgsl/ast/increment_decrement_statement.h + lang/wgsl/ast/index_accessor_expression.cc + lang/wgsl/ast/index_accessor_expression.h + lang/wgsl/ast/index_attribute.cc + lang/wgsl/ast/index_attribute.h + lang/wgsl/ast/int_literal_expression.cc + lang/wgsl/ast/int_literal_expression.h + lang/wgsl/ast/internal_attribute.cc + lang/wgsl/ast/internal_attribute.h + lang/wgsl/ast/interpolate_attribute.cc + lang/wgsl/ast/interpolate_attribute.h + lang/wgsl/ast/invariant_attribute.cc + lang/wgsl/ast/invariant_attribute.h + lang/wgsl/ast/let.cc + lang/wgsl/ast/let.h + lang/wgsl/ast/literal_expression.cc + lang/wgsl/ast/literal_expression.h + lang/wgsl/ast/location_attribute.cc + lang/wgsl/ast/location_attribute.h + lang/wgsl/ast/loop_statement.cc + lang/wgsl/ast/loop_statement.h + lang/wgsl/ast/member_accessor_expression.cc + lang/wgsl/ast/member_accessor_expression.h + lang/wgsl/ast/module.cc + lang/wgsl/ast/module.h + lang/wgsl/ast/must_use_attribute.cc + lang/wgsl/ast/must_use_attribute.h + lang/wgsl/ast/node.cc + lang/wgsl/ast/node.h + lang/wgsl/ast/node_id.h + lang/wgsl/ast/override.cc + lang/wgsl/ast/override.h + lang/wgsl/ast/parameter.cc + lang/wgsl/ast/parameter.h + lang/wgsl/ast/phony_expression.cc + lang/wgsl/ast/phony_expression.h + lang/wgsl/ast/pipeline_stage.cc + lang/wgsl/ast/pipeline_stage.h + lang/wgsl/ast/return_statement.cc + lang/wgsl/ast/return_statement.h + lang/wgsl/ast/stage_attribute.cc + lang/wgsl/ast/stage_attribute.h + lang/wgsl/ast/statement.cc + lang/wgsl/ast/statement.h + lang/wgsl/ast/stride_attribute.cc + lang/wgsl/ast/stride_attribute.h + lang/wgsl/ast/struct.cc + lang/wgsl/ast/struct.h + lang/wgsl/ast/struct_member.cc + lang/wgsl/ast/struct_member.h + lang/wgsl/ast/struct_member_align_attribute.cc + lang/wgsl/ast/struct_member_align_attribute.h + lang/wgsl/ast/struct_member_offset_attribute.cc + lang/wgsl/ast/struct_member_offset_attribute.h + lang/wgsl/ast/struct_member_size_attribute.cc + lang/wgsl/ast/struct_member_size_attribute.h + lang/wgsl/ast/switch_statement.cc + lang/wgsl/ast/switch_statement.h + lang/wgsl/ast/templated_identifier.cc + lang/wgsl/ast/templated_identifier.h + lang/wgsl/ast/traverse_expressions.h + lang/wgsl/ast/type.cc + lang/wgsl/ast/type.h + lang/wgsl/ast/type_decl.cc + lang/wgsl/ast/type_decl.h + lang/wgsl/ast/unary_op_expression.cc + lang/wgsl/ast/unary_op_expression.h + lang/wgsl/ast/var.cc + lang/wgsl/ast/var.h + lang/wgsl/ast/variable.cc + lang/wgsl/ast/variable.h + lang/wgsl/ast/variable_decl_statement.cc + lang/wgsl/ast/variable_decl_statement.h + lang/wgsl/ast/while_statement.cc + lang/wgsl/ast/while_statement.h + lang/wgsl/ast/workgroup_attribute.cc + lang/wgsl/ast/workgroup_attribute.h +) + +tint_target_add_dependencies("lang/wgsl/ast" + "lang/core" + "lang/core/constant" + "lang/core/type" + "utils/containers" + "utils/diagnostic" + "utils/ice" + "utils/id" + "utils/macros" + "utils/rtti" + "utils/symbol" + "utils/text" + "utils/traits" +) + +tint_add_target("lang/wgsl/ast:test" + lang/wgsl/ast/alias_test.cc + lang/wgsl/ast/assignment_statement_test.cc + lang/wgsl/ast/binary_expression_test.cc + lang/wgsl/ast/binding_attribute_test.cc + lang/wgsl/ast/bitcast_expression_test.cc + lang/wgsl/ast/block_statement_test.cc + lang/wgsl/ast/bool_literal_expression_test.cc + lang/wgsl/ast/break_if_statement_test.cc + lang/wgsl/ast/break_statement_test.cc + lang/wgsl/ast/builtin_attribute_test.cc + lang/wgsl/ast/builtin_texture_helper_test.cc + lang/wgsl/ast/builtin_texture_helper_test.h + lang/wgsl/ast/call_expression_test.cc + lang/wgsl/ast/call_statement_test.cc + lang/wgsl/ast/case_selector_test.cc + lang/wgsl/ast/case_statement_test.cc + lang/wgsl/ast/clone_context_test.cc + lang/wgsl/ast/compound_assignment_statement_test.cc + lang/wgsl/ast/const_assert_test.cc + lang/wgsl/ast/continue_statement_test.cc + lang/wgsl/ast/diagnostic_attribute_test.cc + lang/wgsl/ast/diagnostic_control_test.cc + lang/wgsl/ast/diagnostic_directive_test.cc + lang/wgsl/ast/diagnostic_rule_name_test.cc + lang/wgsl/ast/discard_statement_test.cc + lang/wgsl/ast/enable_test.cc + lang/wgsl/ast/float_literal_expression_test.cc + lang/wgsl/ast/for_loop_statement_test.cc + lang/wgsl/ast/function_test.cc + lang/wgsl/ast/group_attribute_test.cc + lang/wgsl/ast/helper_test.cc + lang/wgsl/ast/helper_test.h + lang/wgsl/ast/id_attribute_test.cc + lang/wgsl/ast/identifier_expression_test.cc + lang/wgsl/ast/identifier_test.cc + lang/wgsl/ast/if_statement_test.cc + lang/wgsl/ast/increment_decrement_statement_test.cc + lang/wgsl/ast/index_accessor_expression_test.cc + lang/wgsl/ast/index_attribute_test.cc + lang/wgsl/ast/int_literal_expression_test.cc + lang/wgsl/ast/interpolate_attribute_test.cc + 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 + lang/wgsl/ast/stage_attribute_test.cc + lang/wgsl/ast/stride_attribute_test.cc + lang/wgsl/ast/struct_member_align_attribute_test.cc + lang/wgsl/ast/struct_member_offset_attribute_test.cc + lang/wgsl/ast/struct_member_size_attribute_test.cc + lang/wgsl/ast/struct_member_test.cc + lang/wgsl/ast/struct_test.cc + lang/wgsl/ast/switch_statement_test.cc + lang/wgsl/ast/templated_identifier_test.cc + lang/wgsl/ast/traverse_expressions_test.cc + lang/wgsl/ast/unary_op_expression_test.cc + lang/wgsl/ast/variable_decl_statement_test.cc + lang/wgsl/ast/variable_test.cc + lang/wgsl/ast/while_statement_test.cc + lang/wgsl/ast/workgroup_attribute_test.cc +) + +tint_target_add_dependencies("lang/wgsl/ast:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/program" + "lang/wgsl/reader" + "lang/wgsl/resolver" + "lang/wgsl/writer" + "utils/text" +)
diff --git a/src/tint/lang/wgsl/ast/transform/BUILD.cmake b/src/tint/lang/wgsl/ast/transform/BUILD.cmake new file mode 100644 index 0000000..d48ebf7 --- /dev/null +++ b/src/tint/lang/wgsl/ast/transform/BUILD.cmake
@@ -0,0 +1,226 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/ast/transform" + lang/wgsl/ast/transform/add_block_attribute.cc + lang/wgsl/ast/transform/add_block_attribute.h + lang/wgsl/ast/transform/add_empty_entry_point.cc + lang/wgsl/ast/transform/add_empty_entry_point.h + lang/wgsl/ast/transform/array_length_from_uniform.cc + lang/wgsl/ast/transform/array_length_from_uniform.h + lang/wgsl/ast/transform/binding_remapper.cc + lang/wgsl/ast/transform/binding_remapper.h + lang/wgsl/ast/transform/builtin_polyfill.cc + lang/wgsl/ast/transform/builtin_polyfill.h + lang/wgsl/ast/transform/calculate_array_length.cc + lang/wgsl/ast/transform/calculate_array_length.h + lang/wgsl/ast/transform/canonicalize_entry_point_io.cc + lang/wgsl/ast/transform/canonicalize_entry_point_io.h + lang/wgsl/ast/transform/clamp_frag_depth.cc + lang/wgsl/ast/transform/clamp_frag_depth.h + lang/wgsl/ast/transform/combine_samplers.cc + lang/wgsl/ast/transform/combine_samplers.h + lang/wgsl/ast/transform/data.cc + lang/wgsl/ast/transform/data.h + lang/wgsl/ast/transform/decompose_memory_access.cc + lang/wgsl/ast/transform/decompose_memory_access.h + lang/wgsl/ast/transform/decompose_strided_array.cc + lang/wgsl/ast/transform/decompose_strided_array.h + lang/wgsl/ast/transform/decompose_strided_matrix.cc + lang/wgsl/ast/transform/decompose_strided_matrix.h + lang/wgsl/ast/transform/demote_to_helper.cc + lang/wgsl/ast/transform/demote_to_helper.h + lang/wgsl/ast/transform/direct_variable_access.cc + lang/wgsl/ast/transform/direct_variable_access.h + lang/wgsl/ast/transform/disable_uniformity_analysis.cc + lang/wgsl/ast/transform/disable_uniformity_analysis.h + lang/wgsl/ast/transform/expand_compound_assignment.cc + lang/wgsl/ast/transform/expand_compound_assignment.h + lang/wgsl/ast/transform/first_index_offset.cc + lang/wgsl/ast/transform/first_index_offset.h + lang/wgsl/ast/transform/fold_trivial_lets.cc + lang/wgsl/ast/transform/fold_trivial_lets.h + lang/wgsl/ast/transform/for_loop_to_loop.cc + lang/wgsl/ast/transform/for_loop_to_loop.h + lang/wgsl/ast/transform/get_insertion_point.cc + lang/wgsl/ast/transform/get_insertion_point.h + lang/wgsl/ast/transform/hoist_to_decl_before.cc + lang/wgsl/ast/transform/hoist_to_decl_before.h + lang/wgsl/ast/transform/localize_struct_array_assignment.cc + lang/wgsl/ast/transform/localize_struct_array_assignment.h + lang/wgsl/ast/transform/manager.cc + lang/wgsl/ast/transform/manager.h + lang/wgsl/ast/transform/merge_return.cc + lang/wgsl/ast/transform/merge_return.h + lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc + lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.h + lang/wgsl/ast/transform/msl_subgroup_ballot.cc + lang/wgsl/ast/transform/msl_subgroup_ballot.h + lang/wgsl/ast/transform/multiplanar_external_texture.cc + lang/wgsl/ast/transform/multiplanar_external_texture.h + lang/wgsl/ast/transform/num_workgroups_from_uniform.cc + lang/wgsl/ast/transform/num_workgroups_from_uniform.h + lang/wgsl/ast/transform/packed_vec3.cc + lang/wgsl/ast/transform/packed_vec3.h + lang/wgsl/ast/transform/pad_structs.cc + lang/wgsl/ast/transform/pad_structs.h + lang/wgsl/ast/transform/preserve_padding.cc + lang/wgsl/ast/transform/preserve_padding.h + lang/wgsl/ast/transform/promote_initializers_to_let.cc + lang/wgsl/ast/transform/promote_initializers_to_let.h + lang/wgsl/ast/transform/promote_side_effects_to_decl.cc + lang/wgsl/ast/transform/promote_side_effects_to_decl.h + lang/wgsl/ast/transform/remove_continue_in_switch.cc + lang/wgsl/ast/transform/remove_continue_in_switch.h + lang/wgsl/ast/transform/remove_phonies.cc + lang/wgsl/ast/transform/remove_phonies.h + lang/wgsl/ast/transform/remove_unreachable_statements.cc + lang/wgsl/ast/transform/remove_unreachable_statements.h + lang/wgsl/ast/transform/renamer.cc + lang/wgsl/ast/transform/renamer.h + lang/wgsl/ast/transform/robustness.cc + lang/wgsl/ast/transform/robustness.h + lang/wgsl/ast/transform/simplify_pointers.cc + lang/wgsl/ast/transform/simplify_pointers.h + lang/wgsl/ast/transform/single_entry_point.cc + lang/wgsl/ast/transform/single_entry_point.h + lang/wgsl/ast/transform/spirv_atomic.cc + lang/wgsl/ast/transform/spirv_atomic.h + lang/wgsl/ast/transform/std140.cc + lang/wgsl/ast/transform/std140.h + lang/wgsl/ast/transform/substitute_override.cc + lang/wgsl/ast/transform/substitute_override.h + lang/wgsl/ast/transform/texture_1d_to_2d.cc + lang/wgsl/ast/transform/texture_1d_to_2d.h + lang/wgsl/ast/transform/transform.cc + lang/wgsl/ast/transform/transform.h + lang/wgsl/ast/transform/truncate_interstage_variables.cc + lang/wgsl/ast/transform/truncate_interstage_variables.h + lang/wgsl/ast/transform/unshadow.cc + lang/wgsl/ast/transform/unshadow.h + lang/wgsl/ast/transform/var_for_dynamic_index.cc + lang/wgsl/ast/transform/var_for_dynamic_index.h + lang/wgsl/ast/transform/vectorize_matrix_conversions.cc + lang/wgsl/ast/transform/vectorize_matrix_conversions.h + lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc + lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.h + lang/wgsl/ast/transform/vertex_pulling.cc + lang/wgsl/ast/transform/vertex_pulling.h + lang/wgsl/ast/transform/while_to_loop.cc + lang/wgsl/ast/transform/while_to_loop.h + lang/wgsl/ast/transform/zero_init_workgroup_memory.cc + lang/wgsl/ast/transform/zero_init_workgroup_memory.h +) + +tint_target_add_dependencies("lang/wgsl/ast/transform" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "utils/containers" + "utils/diagnostic" + "utils/ice" + "utils/macros" + "utils/math" + "utils/memory" + "utils/reflection" + "utils/rtti" + "utils/text" +) + +tint_add_target("lang/wgsl/ast/transform:test" + lang/wgsl/ast/transform/add_block_attribute_test.cc + lang/wgsl/ast/transform/add_empty_entry_point_test.cc + lang/wgsl/ast/transform/array_length_from_uniform_test.cc + lang/wgsl/ast/transform/binding_remapper_test.cc + lang/wgsl/ast/transform/builtin_polyfill_test.cc + lang/wgsl/ast/transform/calculate_array_length_test.cc + lang/wgsl/ast/transform/canonicalize_entry_point_io_test.cc + lang/wgsl/ast/transform/clamp_frag_depth_test.cc + lang/wgsl/ast/transform/combine_samplers_test.cc + lang/wgsl/ast/transform/decompose_memory_access_test.cc + lang/wgsl/ast/transform/decompose_strided_array_test.cc + lang/wgsl/ast/transform/decompose_strided_matrix_test.cc + lang/wgsl/ast/transform/demote_to_helper_test.cc + lang/wgsl/ast/transform/direct_variable_access_test.cc + lang/wgsl/ast/transform/disable_uniformity_analysis_test.cc + lang/wgsl/ast/transform/expand_compound_assignment_test.cc + lang/wgsl/ast/transform/first_index_offset_test.cc + lang/wgsl/ast/transform/fold_trivial_lets_test.cc + lang/wgsl/ast/transform/for_loop_to_loop_test.cc + lang/wgsl/ast/transform/get_insertion_point_test.cc + lang/wgsl/ast/transform/helper_test.h + lang/wgsl/ast/transform/hoist_to_decl_before_test.cc + lang/wgsl/ast/transform/localize_struct_array_assignment_test.cc + lang/wgsl/ast/transform/manager_test.cc + lang/wgsl/ast/transform/merge_return_test.cc + lang/wgsl/ast/transform/module_scope_var_to_entry_point_param_test.cc + lang/wgsl/ast/transform/msl_subgroup_ballot_test.cc + lang/wgsl/ast/transform/multiplanar_external_texture_test.cc + lang/wgsl/ast/transform/num_workgroups_from_uniform_test.cc + lang/wgsl/ast/transform/packed_vec3_test.cc + lang/wgsl/ast/transform/pad_structs_test.cc + lang/wgsl/ast/transform/preserve_padding_test.cc + lang/wgsl/ast/transform/promote_initializers_to_let_test.cc + lang/wgsl/ast/transform/promote_side_effects_to_decl_test.cc + lang/wgsl/ast/transform/remove_continue_in_switch_test.cc + lang/wgsl/ast/transform/remove_phonies_test.cc + lang/wgsl/ast/transform/remove_unreachable_statements_test.cc + lang/wgsl/ast/transform/renamer_test.cc + lang/wgsl/ast/transform/robustness_test.cc + lang/wgsl/ast/transform/simplify_pointers_test.cc + lang/wgsl/ast/transform/single_entry_point_test.cc + lang/wgsl/ast/transform/spirv_atomic_test.cc + lang/wgsl/ast/transform/std140_exhaustive_test.cc + lang/wgsl/ast/transform/std140_f16_test.cc + lang/wgsl/ast/transform/std140_f32_test.cc + lang/wgsl/ast/transform/std140_test.cc + lang/wgsl/ast/transform/substitute_override_test.cc + lang/wgsl/ast/transform/texture_1d_to_2d_test.cc + lang/wgsl/ast/transform/transform_test.cc + lang/wgsl/ast/transform/truncate_interstage_variables_test.cc + lang/wgsl/ast/transform/unshadow_test.cc + lang/wgsl/ast/transform/var_for_dynamic_index_test.cc + lang/wgsl/ast/transform/vectorize_matrix_conversions_test.cc + lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers_test.cc + lang/wgsl/ast/transform/vertex_pulling_test.cc + lang/wgsl/ast/transform/while_to_loop_test.cc + lang/wgsl/ast/transform/zero_init_workgroup_memory_test.cc +) + +tint_target_add_dependencies("lang/wgsl/ast/transform:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/ast:test" + "lang/wgsl/program" + "lang/wgsl/reader" + "lang/wgsl/reader/parser" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "lang/wgsl/writer" + "utils/ice" + "utils/text" +)
diff --git a/src/tint/lang/wgsl/helpers/BUILD.cmake b/src/tint/lang/wgsl/helpers/BUILD.cmake new file mode 100644 index 0000000..6f06ae7 --- /dev/null +++ b/src/tint/lang/wgsl/helpers/BUILD.cmake
@@ -0,0 +1,69 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/helpers" + lang/wgsl/helpers/append_vector.cc + lang/wgsl/helpers/append_vector.h + lang/wgsl/helpers/check_supported_extensions.cc + lang/wgsl/helpers/check_supported_extensions.h + lang/wgsl/helpers/flatten_bindings.cc + lang/wgsl/helpers/flatten_bindings.h +) + +tint_target_add_dependencies("lang/wgsl/helpers" + "lang/core" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/inspector" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/diagnostic" + "utils/rtti" + "utils/text" +) + +tint_add_target("lang/wgsl/helpers:test" + lang/wgsl/helpers/append_vector_test.cc + lang/wgsl/helpers/check_supported_extensions_test.cc + lang/wgsl/helpers/flatten_bindings_test.cc + lang/wgsl/helpers/ir_program_test.h +) + +tint_target_add_dependencies("lang/wgsl/helpers:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast:test" + "lang/wgsl/helpers" + "lang/wgsl/program" + "lang/wgsl/reader" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/wgsl/helpers:test" + "lang/core/ir" + "lang/wgsl/reader/program_to_ir" + ) +endif(TINT_BUILD_IR)
diff --git a/src/tint/lang/wgsl/helpers/ir_program_test.h b/src/tint/lang/wgsl/helpers/ir_program_test.h index 1f148e4..d1b96dd 100644 --- a/src/tint/lang/wgsl/helpers/ir_program_test.h +++ b/src/tint/lang/wgsl/helpers/ir_program_test.h
@@ -76,6 +76,7 @@ } return result; #else + (void)wgsl; return std::string("error: Tint not built with the WGSL reader"); #endif }
diff --git a/src/tint/lang/wgsl/inspector/BUILD.cmake b/src/tint/lang/wgsl/inspector/BUILD.cmake new file mode 100644 index 0000000..90990cd --- /dev/null +++ b/src/tint/lang/wgsl/inspector/BUILD.cmake
@@ -0,0 +1,64 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/inspector" + lang/wgsl/inspector/entry_point.cc + lang/wgsl/inspector/entry_point.h + lang/wgsl/inspector/inspector.cc + lang/wgsl/inspector/inspector.h + lang/wgsl/inspector/resource_binding.cc + lang/wgsl/inspector/resource_binding.h + lang/wgsl/inspector/scalar.cc + lang/wgsl/inspector/scalar.h +) + +tint_target_add_dependencies("lang/wgsl/inspector" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/math" + "utils/rtti" + "utils/text" +) + +tint_add_target("lang/wgsl/inspector:test" + lang/wgsl/inspector/inspector_builder_test.cc + lang/wgsl/inspector/inspector_builder_test.h + lang/wgsl/inspector/inspector_runner_test.cc + lang/wgsl/inspector/inspector_runner_test.h + lang/wgsl/inspector/inspector_test.cc +) + +tint_target_add_dependencies("lang/wgsl/inspector:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/inspector" + "lang/wgsl/program" + "lang/wgsl/reader" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "utils/diagnostic" +)
diff --git a/src/tint/lang/wgsl/program/BUILD.cmake b/src/tint/lang/wgsl/program/BUILD.cmake new file mode 100644 index 0000000..26b412c --- /dev/null +++ b/src/tint/lang/wgsl/program/BUILD.cmake
@@ -0,0 +1,58 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/program" + lang/wgsl/program/clone_context.cc + lang/wgsl/program/clone_context.h + lang/wgsl/program/program.cc + lang/wgsl/program/program.h + lang/wgsl/program/program_builder.cc + lang/wgsl/program/program_builder.h +) + +tint_target_add_dependencies("lang/wgsl/program" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/sem" + "utils/containers" + "utils/ice" + "utils/id" + "utils/macros" + "utils/rtti" + "utils/symbol" + "utils/text" +) + +tint_add_target("lang/wgsl/program:test" + lang/wgsl/program/clone_context_test.cc + lang/wgsl/program/program_builder_test.cc + lang/wgsl/program/program_test.cc +) + +tint_target_add_dependencies("lang/wgsl/program:test" + "lang/wgsl/ast" + "lang/wgsl/ast:test" + "lang/wgsl/program" + "lang/wgsl/resolver" +)
diff --git a/src/tint/lang/wgsl/reader/BUILD.cmake b/src/tint/lang/wgsl/reader/BUILD.cmake new file mode 100644 index 0000000..4728364 --- /dev/null +++ b/src/tint/lang/wgsl/reader/BUILD.cmake
@@ -0,0 +1,44 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/wgsl/reader/parser/BUILD.cmake) +include(lang/wgsl/reader/program_to_ir/BUILD.cmake) + +tint_add_target("lang/wgsl/reader" + lang/wgsl/reader/reader.cc + lang/wgsl/reader/reader.h +) + +tint_target_add_dependencies("lang/wgsl/reader" + "lang/wgsl/program" + "lang/wgsl/reader/parser" + "lang/wgsl/resolver" +) + +tint_add_target("lang/wgsl/reader:bench" + lang/wgsl/reader/reader_bench.cc +) + +tint_target_add_dependencies("lang/wgsl/reader:bench" + "cmd/bench" + "lang/wgsl/reader" +)
diff --git a/src/tint/lang/wgsl/reader/parser/BUILD.cmake b/src/tint/lang/wgsl/reader/parser/BUILD.cmake new file mode 100644 index 0000000..29981dd --- /dev/null +++ b/src/tint/lang/wgsl/reader/parser/BUILD.cmake
@@ -0,0 +1,127 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/reader/parser" + lang/wgsl/reader/parser/classify_template_args.cc + lang/wgsl/reader/parser/classify_template_args.h + lang/wgsl/reader/parser/detail.h + lang/wgsl/reader/parser/lexer.cc + lang/wgsl/reader/parser/lexer.h + lang/wgsl/reader/parser/parser.cc + lang/wgsl/reader/parser/parser.h + lang/wgsl/reader/parser/token.cc + lang/wgsl/reader/parser/token.h +) + +tint_target_add_dependencies("lang/wgsl/reader/parser" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/resolver" + "utils/containers" + "utils/diagnostic" + "utils/ice" + "utils/macros" + "utils/strconv" + "utils/text" +) + +tint_add_target("lang/wgsl/reader/parser:test" + lang/wgsl/reader/parser/additive_expression_test.cc + lang/wgsl/reader/parser/argument_expression_list_test.cc + lang/wgsl/reader/parser/assignment_stmt_test.cc + lang/wgsl/reader/parser/bitwise_expression_test.cc + lang/wgsl/reader/parser/break_stmt_test.cc + lang/wgsl/reader/parser/bug_cases_test.cc + lang/wgsl/reader/parser/call_stmt_test.cc + lang/wgsl/reader/parser/classify_template_args_test.cc + lang/wgsl/reader/parser/compound_stmt_test.cc + lang/wgsl/reader/parser/const_literal_test.cc + lang/wgsl/reader/parser/continue_stmt_test.cc + lang/wgsl/reader/parser/continuing_stmt_test.cc + lang/wgsl/reader/parser/core_lhs_expression_test.cc + lang/wgsl/reader/parser/diagnostic_attribute_test.cc + lang/wgsl/reader/parser/diagnostic_control_test.cc + lang/wgsl/reader/parser/diagnostic_directive_test.cc + lang/wgsl/reader/parser/enable_directive_test.cc + lang/wgsl/reader/parser/error_msg_test.cc + lang/wgsl/reader/parser/error_resync_test.cc + lang/wgsl/reader/parser/expression_test.cc + lang/wgsl/reader/parser/for_stmt_test.cc + lang/wgsl/reader/parser/function_attribute_list_test.cc + lang/wgsl/reader/parser/function_attribute_test.cc + lang/wgsl/reader/parser/function_decl_test.cc + lang/wgsl/reader/parser/function_header_test.cc + lang/wgsl/reader/parser/global_constant_decl_test.cc + lang/wgsl/reader/parser/global_decl_test.cc + lang/wgsl/reader/parser/global_variable_decl_test.cc + lang/wgsl/reader/parser/helper_test.cc + lang/wgsl/reader/parser/helper_test.h + lang/wgsl/reader/parser/if_stmt_test.cc + lang/wgsl/reader/parser/increment_decrement_stmt_test.cc + lang/wgsl/reader/parser/lexer_test.cc + lang/wgsl/reader/parser/lhs_expression_test.cc + lang/wgsl/reader/parser/loop_stmt_test.cc + lang/wgsl/reader/parser/math_expression_test.cc + lang/wgsl/reader/parser/multiplicative_expression_test.cc + lang/wgsl/reader/parser/param_list_test.cc + lang/wgsl/reader/parser/paren_expression_test.cc + lang/wgsl/reader/parser/parser_test.cc + lang/wgsl/reader/parser/primary_expression_test.cc + lang/wgsl/reader/parser/relational_expression_test.cc + lang/wgsl/reader/parser/require_directive_test.cc + lang/wgsl/reader/parser/reserved_keyword_test.cc + lang/wgsl/reader/parser/shift_expression_test.cc + lang/wgsl/reader/parser/singular_expression_test.cc + lang/wgsl/reader/parser/statement_test.cc + lang/wgsl/reader/parser/statements_test.cc + lang/wgsl/reader/parser/struct_attribute_decl_test.cc + lang/wgsl/reader/parser/struct_body_decl_test.cc + lang/wgsl/reader/parser/struct_decl_test.cc + lang/wgsl/reader/parser/struct_member_attribute_decl_test.cc + lang/wgsl/reader/parser/struct_member_attribute_test.cc + lang/wgsl/reader/parser/struct_member_test.cc + lang/wgsl/reader/parser/switch_body_test.cc + lang/wgsl/reader/parser/switch_stmt_test.cc + lang/wgsl/reader/parser/token_test.cc + lang/wgsl/reader/parser/type_alias_test.cc + lang/wgsl/reader/parser/type_decl_test.cc + lang/wgsl/reader/parser/unary_expression_test.cc + lang/wgsl/reader/parser/variable_attribute_list_test.cc + lang/wgsl/reader/parser/variable_attribute_test.cc + lang/wgsl/reader/parser/variable_decl_test.cc + lang/wgsl/reader/parser/variable_ident_decl_test.cc + lang/wgsl/reader/parser/variable_qualifier_test.cc + lang/wgsl/reader/parser/variable_stmt_test.cc + lang/wgsl/reader/parser/while_stmt_test.cc +) + +tint_target_add_dependencies("lang/wgsl/reader/parser:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/ast:test" + "lang/wgsl/reader/parser" + "utils/containers" + "utils/text" +)
diff --git a/src/tint/lang/wgsl/reader/program_to_ir/BUILD.cmake b/src/tint/lang/wgsl/reader/program_to_ir/BUILD.cmake new file mode 100644 index 0000000..6f617c9 --- /dev/null +++ b/src/tint/lang/wgsl/reader/program_to_ir/BUILD.cmake
@@ -0,0 +1,78 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_IR) +tint_add_target("lang/wgsl/reader/program_to_ir" + lang/wgsl/reader/program_to_ir/program_to_ir.cc + lang/wgsl/reader/program_to_ir/program_to_ir.h +) + +tint_target_add_dependencies("lang/wgsl/reader/program_to_ir" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/macros" + "utils/result" + "utils/rtti" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/wgsl/reader/program_to_ir" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +endif(TINT_BUILD_IR) +if(TINT_BUILD_IR) +tint_add_target("lang/wgsl/reader/program_to_ir:test" + lang/wgsl/reader/program_to_ir/accessor_test.cc + lang/wgsl/reader/program_to_ir/binary_test.cc + lang/wgsl/reader/program_to_ir/builtin_test.cc + lang/wgsl/reader/program_to_ir/call_test.cc + lang/wgsl/reader/program_to_ir/function_test.cc + lang/wgsl/reader/program_to_ir/let_test.cc + lang/wgsl/reader/program_to_ir/literal_test.cc + lang/wgsl/reader/program_to_ir/materialize_test.cc + lang/wgsl/reader/program_to_ir/program_to_ir_test.cc + lang/wgsl/reader/program_to_ir/shadowing_test.cc + lang/wgsl/reader/program_to_ir/store_test.cc + lang/wgsl/reader/program_to_ir/unary_test.cc + lang/wgsl/reader/program_to_ir/var_test.cc +) + +tint_target_add_dependencies("lang/wgsl/reader/program_to_ir:test" + "lang/core" + "lang/core/constant" + "lang/wgsl/ast" + "lang/wgsl/helpers:test" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/wgsl/reader/program_to_ir:test" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +endif(TINT_BUILD_IR) \ No newline at end of file
diff --git a/src/tint/lang/wgsl/resolver/BUILD.cmake b/src/tint/lang/wgsl/resolver/BUILD.cmake new file mode 100644 index 0000000..e11cd82 --- /dev/null +++ b/src/tint/lang/wgsl/resolver/BUILD.cmake
@@ -0,0 +1,131 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/resolver" + lang/wgsl/resolver/dependency_graph.cc + lang/wgsl/resolver/dependency_graph.h + lang/wgsl/resolver/resolve.cc + lang/wgsl/resolver/resolve.h + lang/wgsl/resolver/resolver.cc + lang/wgsl/resolver/resolver.h + lang/wgsl/resolver/sem_helper.cc + lang/wgsl/resolver/sem_helper.h + lang/wgsl/resolver/uniformity.cc + lang/wgsl/resolver/uniformity.h + lang/wgsl/resolver/validator.cc + lang/wgsl/resolver/validator.h +) + +tint_target_add_dependencies("lang/wgsl/resolver" + "lang/core" + "lang/core/constant" + "lang/core/intrinsic" + "lang/core/intrinsic/data" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/containers" + "utils/diagnostic" + "utils/macros" + "utils/math" + "utils/memory" + "utils/rtti" + "utils/text" +) + +tint_add_target("lang/wgsl/resolver:test" + lang/wgsl/resolver/address_space_layout_validation_test.cc + lang/wgsl/resolver/address_space_validation_test.cc + lang/wgsl/resolver/alias_analysis_test.cc + lang/wgsl/resolver/array_accessor_test.cc + lang/wgsl/resolver/assignment_validation_test.cc + lang/wgsl/resolver/atomics_test.cc + lang/wgsl/resolver/atomics_validation_test.cc + lang/wgsl/resolver/attribute_validation_test.cc + lang/wgsl/resolver/bitcast_validation_test.cc + lang/wgsl/resolver/builtin_enum_test.cc + lang/wgsl/resolver/builtin_structs_test.cc + lang/wgsl/resolver/builtin_test.cc + lang/wgsl/resolver/builtin_validation_test.cc + lang/wgsl/resolver/builtins_validation_test.cc + lang/wgsl/resolver/call_test.cc + lang/wgsl/resolver/call_validation_test.cc + lang/wgsl/resolver/compound_assignment_validation_test.cc + lang/wgsl/resolver/compound_statement_test.cc + lang/wgsl/resolver/const_assert_test.cc + lang/wgsl/resolver/control_block_validation_test.cc + lang/wgsl/resolver/dependency_graph_test.cc + lang/wgsl/resolver/diagnostic_control_test.cc + lang/wgsl/resolver/dual_source_blending_extension_test.cc + lang/wgsl/resolver/entry_point_validation_test.cc + lang/wgsl/resolver/evaluation_stage_test.cc + lang/wgsl/resolver/expression_kind_test.cc + lang/wgsl/resolver/f16_extension_test.cc + lang/wgsl/resolver/function_validation_test.cc + lang/wgsl/resolver/host_shareable_validation_test.cc + lang/wgsl/resolver/increment_decrement_validation_test.cc + lang/wgsl/resolver/inferred_type_test.cc + lang/wgsl/resolver/is_host_shareable_test.cc + lang/wgsl/resolver/is_storeable_test.cc + lang/wgsl/resolver/load_test.cc + lang/wgsl/resolver/materialize_test.cc + lang/wgsl/resolver/override_test.cc + lang/wgsl/resolver/ptr_ref_test.cc + lang/wgsl/resolver/ptr_ref_validation_test.cc + lang/wgsl/resolver/resolver_behavior_test.cc + lang/wgsl/resolver/resolver_helper_test.cc + lang/wgsl/resolver/resolver_helper_test.h + lang/wgsl/resolver/resolver_test.cc + lang/wgsl/resolver/root_identifier_test.cc + lang/wgsl/resolver/side_effects_test.cc + lang/wgsl/resolver/struct_address_space_use_test.cc + lang/wgsl/resolver/struct_layout_test.cc + lang/wgsl/resolver/struct_pipeline_stage_use_test.cc + lang/wgsl/resolver/subgroups_extension_test.cc + lang/wgsl/resolver/type_validation_test.cc + lang/wgsl/resolver/uniformity_test.cc + lang/wgsl/resolver/unresolved_identifier_test.cc + lang/wgsl/resolver/validation_test.cc + lang/wgsl/resolver/validator_is_storeable_test.cc + lang/wgsl/resolver/value_constructor_validation_test.cc + lang/wgsl/resolver/variable_test.cc + lang/wgsl/resolver/variable_validation_test.cc +) + +tint_target_add_dependencies("lang/wgsl/resolver:test" + "lang/core" + "lang/core/type" + "lang/core/type:test" + "lang/wgsl/ast" + "lang/wgsl/ast/transform" + "lang/wgsl/ast:test" + "lang/wgsl/program" + "lang/wgsl/reader" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "lang/wgsl/sem:test" + "utils/containers" + "utils/rtti" + "utils/text" + "utils/traits" +)
diff --git a/src/tint/lang/wgsl/sem/BUILD.cmake b/src/tint/lang/wgsl/sem/BUILD.cmake new file mode 100644 index 0000000..cf4d742 --- /dev/null +++ b/src/tint/lang/wgsl/sem/BUILD.cmake
@@ -0,0 +1,119 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/sem" + lang/wgsl/sem/accessor_expression.cc + lang/wgsl/sem/accessor_expression.h + lang/wgsl/sem/array_count.cc + lang/wgsl/sem/array_count.h + lang/wgsl/sem/behavior.cc + lang/wgsl/sem/behavior.h + lang/wgsl/sem/block_statement.cc + lang/wgsl/sem/block_statement.h + lang/wgsl/sem/break_if_statement.cc + lang/wgsl/sem/break_if_statement.h + lang/wgsl/sem/builtin.cc + lang/wgsl/sem/builtin.h + lang/wgsl/sem/builtin_enum_expression.cc + lang/wgsl/sem/builtin_enum_expression.h + lang/wgsl/sem/call.cc + lang/wgsl/sem/call.h + lang/wgsl/sem/call_target.cc + lang/wgsl/sem/call_target.h + lang/wgsl/sem/expression.cc + lang/wgsl/sem/expression.h + lang/wgsl/sem/for_loop_statement.cc + lang/wgsl/sem/for_loop_statement.h + lang/wgsl/sem/function.cc + lang/wgsl/sem/function.h + lang/wgsl/sem/function_expression.cc + lang/wgsl/sem/function_expression.h + lang/wgsl/sem/if_statement.cc + lang/wgsl/sem/if_statement.h + lang/wgsl/sem/index_accessor_expression.cc + lang/wgsl/sem/index_accessor_expression.h + lang/wgsl/sem/info.cc + lang/wgsl/sem/info.h + lang/wgsl/sem/load.cc + lang/wgsl/sem/load.h + lang/wgsl/sem/loop_statement.cc + lang/wgsl/sem/loop_statement.h + lang/wgsl/sem/materialize.cc + lang/wgsl/sem/materialize.h + lang/wgsl/sem/member_accessor_expression.cc + lang/wgsl/sem/member_accessor_expression.h + lang/wgsl/sem/module.cc + lang/wgsl/sem/module.h + lang/wgsl/sem/node.cc + lang/wgsl/sem/node.h + lang/wgsl/sem/pipeline_stage_set.h + lang/wgsl/sem/sampler_texture_pair.h + lang/wgsl/sem/statement.cc + lang/wgsl/sem/statement.h + lang/wgsl/sem/struct.cc + lang/wgsl/sem/struct.h + lang/wgsl/sem/switch_statement.cc + lang/wgsl/sem/switch_statement.h + lang/wgsl/sem/type_expression.cc + lang/wgsl/sem/type_expression.h + lang/wgsl/sem/type_mappings.h + lang/wgsl/sem/value_constructor.cc + lang/wgsl/sem/value_constructor.h + lang/wgsl/sem/value_conversion.cc + lang/wgsl/sem/value_conversion.h + lang/wgsl/sem/value_expression.cc + lang/wgsl/sem/value_expression.h + lang/wgsl/sem/variable.cc + lang/wgsl/sem/variable.h + lang/wgsl/sem/while_statement.cc + lang/wgsl/sem/while_statement.h +) + +tint_target_add_dependencies("lang/wgsl/sem" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/wgsl/ast" + "utils/containers" + "utils/ice" + "utils/math" + "utils/rtti" + "utils/symbol" + "utils/text" + "utils/traits" +) + +tint_add_target("lang/wgsl/sem:test" + lang/wgsl/sem/builtin_test.cc + lang/wgsl/sem/diagnostic_severity_test.cc + lang/wgsl/sem/helper_test.h + lang/wgsl/sem/struct_test.cc + lang/wgsl/sem/value_expression_test.cc +) + +tint_target_add_dependencies("lang/wgsl/sem:test" + "lang/core" + "lang/core/type" + "lang/wgsl/program" + "lang/wgsl/resolver" + "lang/wgsl/sem" +)
diff --git a/src/tint/lang/wgsl/writer/BUILD.cmake b/src/tint/lang/wgsl/writer/BUILD.cmake new file mode 100644 index 0000000..bcab9fd --- /dev/null +++ b/src/tint/lang/wgsl/writer/BUILD.cmake
@@ -0,0 +1,51 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(lang/wgsl/writer/ast_printer/BUILD.cmake) +include(lang/wgsl/writer/ir_to_program/BUILD.cmake) +include(lang/wgsl/writer/syntax_tree_printer/BUILD.cmake) + +tint_add_target("lang/wgsl/writer" + lang/wgsl/writer/options.cc + lang/wgsl/writer/options.h + lang/wgsl/writer/output.cc + lang/wgsl/writer/output.h + lang/wgsl/writer/writer.cc + lang/wgsl/writer/writer.h +) + +tint_target_add_dependencies("lang/wgsl/writer" + "lang/wgsl/program" + "lang/wgsl/writer/ast_printer" + "lang/wgsl/writer/syntax_tree_printer" + "utils/reflection" + "utils/result" +) + +tint_add_target("lang/wgsl/writer:bench" + lang/wgsl/writer/writer_bench.cc +) + +tint_target_add_dependencies("lang/wgsl/writer:bench" + "cmd/bench" + "lang/wgsl/writer" +)
diff --git a/src/tint/lang/wgsl/writer/ast_printer/BUILD.cmake b/src/tint/lang/wgsl/writer/ast_printer/BUILD.cmake new file mode 100644 index 0000000..6f54463 --- /dev/null +++ b/src/tint/lang/wgsl/writer/ast_printer/BUILD.cmake
@@ -0,0 +1,84 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/writer/ast_printer" + lang/wgsl/writer/ast_printer/ast_printer.cc + lang/wgsl/writer/ast_printer/ast_printer.h +) + +tint_target_add_dependencies("lang/wgsl/writer/ast_printer" + "lang/core" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/generator" + "utils/macros" + "utils/math" + "utils/rtti" + "utils/strconv" + "utils/text" +) + +tint_add_target("lang/wgsl/writer/ast_printer:test" + lang/wgsl/writer/ast_printer/alias_type_test.cc + lang/wgsl/writer/ast_printer/array_accessor_test.cc + lang/wgsl/writer/ast_printer/assign_test.cc + lang/wgsl/writer/ast_printer/ast_printer_test.cc + lang/wgsl/writer/ast_printer/binary_test.cc + lang/wgsl/writer/ast_printer/bitcast_test.cc + lang/wgsl/writer/ast_printer/block_test.cc + lang/wgsl/writer/ast_printer/break_test.cc + lang/wgsl/writer/ast_printer/call_test.cc + lang/wgsl/writer/ast_printer/case_test.cc + lang/wgsl/writer/ast_printer/cast_test.cc + lang/wgsl/writer/ast_printer/const_assert_test.cc + lang/wgsl/writer/ast_printer/constructor_test.cc + lang/wgsl/writer/ast_printer/continue_test.cc + lang/wgsl/writer/ast_printer/diagnostic_test.cc + lang/wgsl/writer/ast_printer/discard_test.cc + lang/wgsl/writer/ast_printer/enable_test.cc + lang/wgsl/writer/ast_printer/function_test.cc + lang/wgsl/writer/ast_printer/global_decl_test.cc + lang/wgsl/writer/ast_printer/helper_test.h + lang/wgsl/writer/ast_printer/identifier_test.cc + lang/wgsl/writer/ast_printer/if_test.cc + lang/wgsl/writer/ast_printer/literal_test.cc + lang/wgsl/writer/ast_printer/loop_test.cc + lang/wgsl/writer/ast_printer/member_accessor_test.cc + lang/wgsl/writer/ast_printer/return_test.cc + lang/wgsl/writer/ast_printer/switch_test.cc + lang/wgsl/writer/ast_printer/type_test.cc + lang/wgsl/writer/ast_printer/unary_op_test.cc + lang/wgsl/writer/ast_printer/variable_decl_statement_test.cc + lang/wgsl/writer/ast_printer/variable_test.cc +) + +tint_target_add_dependencies("lang/wgsl/writer/ast_printer:test" + "lang/core" + "lang/core/type" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/resolver" + "lang/wgsl/sem" + "lang/wgsl/writer/ast_printer" + "utils/text" +)
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake new file mode 100644 index 0000000..59dc028 --- /dev/null +++ b/src/tint/lang/wgsl/writer/ir_to_program/BUILD.cmake
@@ -0,0 +1,74 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +if(TINT_BUILD_IR) +tint_add_target("lang/wgsl/writer/ir_to_program" + lang/wgsl/writer/ir_to_program/ir_to_program.cc + lang/wgsl/writer/ir_to_program/ir_to_program.h + lang/wgsl/writer/ir_to_program/rename_conflicts.cc + lang/wgsl/writer/ir_to_program/rename_conflicts.h +) + +tint_target_add_dependencies("lang/wgsl/writer/ir_to_program" + "lang/core" + "lang/core/constant" + "lang/core/type" + "lang/wgsl/program" + "lang/wgsl/resolver" + "utils/containers" + "utils/macros" + "utils/math" + "utils/result" + "utils/rtti" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/wgsl/writer/ir_to_program" + "lang/core/ir" + ) +endif(TINT_BUILD_IR) + +endif(TINT_BUILD_IR) +if(TINT_BUILD_IR) +tint_add_target("lang/wgsl/writer/ir_to_program: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 +) + +tint_target_add_dependencies("lang/wgsl/writer/ir_to_program:test" + "lang/core/type" + "lang/wgsl/writer" + "utils/text" +) + +if (TINT_BUILD_IR) + tint_target_add_dependencies("lang/wgsl/writer/ir_to_program:test" + "lang/core/ir" + "lang/core/ir:test" + "lang/wgsl/writer/ir_to_program" + ) +endif(TINT_BUILD_IR) + +endif(TINT_BUILD_IR) \ No newline at end of file
diff --git a/src/tint/lang/wgsl/writer/syntax_tree_printer/BUILD.cmake b/src/tint/lang/wgsl/writer/syntax_tree_printer/BUILD.cmake new file mode 100644 index 0000000..83f72e1 --- /dev/null +++ b/src/tint/lang/wgsl/writer/syntax_tree_printer/BUILD.cmake
@@ -0,0 +1,39 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("lang/wgsl/writer/syntax_tree_printer" + lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.cc + lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.h +) + +tint_target_add_dependencies("lang/wgsl/writer/syntax_tree_printer" + "lang/core" + "lang/wgsl/ast" + "lang/wgsl/program" + "lang/wgsl/sem" + "utils/generator" + "utils/macros" + "utils/math" + "utils/rtti" + "utils/strconv" + "utils/text" +)
diff --git a/src/tint/utils/BUILD.cmake b/src/tint/utils/BUILD.cmake new file mode 100644 index 0000000..b4c50f5 --- /dev/null +++ b/src/tint/utils/BUILD.cmake
@@ -0,0 +1,41 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +include(utils/cli/BUILD.cmake) +include(utils/command/BUILD.cmake) +include(utils/containers/BUILD.cmake) +include(utils/debug/BUILD.cmake) +include(utils/diagnostic/BUILD.cmake) +include(utils/file/BUILD.cmake) +include(utils/generator/BUILD.cmake) +include(utils/ice/BUILD.cmake) +include(utils/id/BUILD.cmake) +include(utils/macros/BUILD.cmake) +include(utils/math/BUILD.cmake) +include(utils/memory/BUILD.cmake) +include(utils/reflection/BUILD.cmake) +include(utils/result/BUILD.cmake) +include(utils/rtti/BUILD.cmake) +include(utils/strconv/BUILD.cmake) +include(utils/symbol/BUILD.cmake) +include(utils/text/BUILD.cmake) +include(utils/traits/BUILD.cmake)
diff --git a/src/tint/utils/cli/BUILD.cmake b/src/tint/utils/cli/BUILD.cmake new file mode 100644 index 0000000..2b0e0a2 --- /dev/null +++ b/src/tint/utils/cli/BUILD.cmake
@@ -0,0 +1,45 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/cli" + utils/cli/cli.cc + utils/cli/cli.h +) + +tint_target_add_dependencies("utils/cli" + "utils/containers" + "utils/macros" + "utils/memory" + "utils/result" + "utils/strconv" + "utils/text" +) + +tint_add_target("utils/cli:test" + utils/cli/cli_test.cc +) + +tint_target_add_dependencies("utils/cli:test" + "utils/cli" + "utils/containers" + "utils/text" +)
diff --git a/src/tint/utils/command/BUILD.cmake b/src/tint/utils/command/BUILD.cmake new file mode 100644 index 0000000..9899eab --- /dev/null +++ b/src/tint/utils/command/BUILD.cmake
@@ -0,0 +1,56 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/command" + utils/command/command.h +) + +tint_target_add_dependencies("utils/command" + "utils/macros" + "utils/text" +) + +if ((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN)) + tint_target_add_sources("utils/command" + "utils/command/command_other.cc" + ) +endif((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN)) + +if (IS_LINUX OR IS_MAC) + tint_target_add_sources("utils/command" + "utils/command/command_posix.cc" + ) +endif(IS_LINUX OR IS_MAC) + +if (IS_WIN) + tint_target_add_sources("utils/command" + "utils/command/command_windows.cc" + ) +endif(IS_WIN) + +tint_add_target("utils/command:test" + utils/command/command_test.cc +) + +tint_target_add_dependencies("utils/command:test" + "utils/command" +)
diff --git a/src/tint/utils/containers/BUILD.cmake b/src/tint/utils/containers/BUILD.cmake new file mode 100644 index 0000000..ad003cf --- /dev/null +++ b/src/tint/utils/containers/BUILD.cmake
@@ -0,0 +1,71 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/containers" + utils/containers/bitset.h + utils/containers/containers.cc + utils/containers/enum_set.h + utils/containers/hashmap.h + utils/containers/hashmap_base.h + utils/containers/hashset.h + utils/containers/map.h + utils/containers/predicates.h + utils/containers/reverse.h + utils/containers/scope_stack.h + utils/containers/slice.h + utils/containers/transform.h + utils/containers/unique_allocator.h + utils/containers/unique_vector.h + utils/containers/vector.h +) + +tint_target_add_dependencies("utils/containers" + "utils/ice" + "utils/macros" + "utils/math" + "utils/memory" + "utils/rtti" + "utils/traits" +) + +tint_add_target("utils/containers:test" + utils/containers/bitset_test.cc + utils/containers/enum_set_test.cc + utils/containers/hashmap_test.cc + utils/containers/hashset_test.cc + utils/containers/map_test.cc + utils/containers/predicates_test.cc + utils/containers/reverse_test.cc + utils/containers/scope_stack_test.cc + utils/containers/slice_test.cc + utils/containers/transform_test.cc + utils/containers/unique_allocator_test.cc + utils/containers/unique_vector_test.cc + utils/containers/vector_test.cc +) + +tint_target_add_dependencies("utils/containers:test" + "lang/wgsl/program" + "utils/containers" + "utils/memory" + "utils/text" +)
diff --git a/src/tint/utils/containers/containers.cc b/src/tint/utils/containers/containers.cc new file mode 100644 index 0000000..6b06bf2 --- /dev/null +++ b/src/tint/utils/containers/containers.cc
@@ -0,0 +1,20 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_utils_containers_symbol = 1; + +#endif
diff --git a/src/tint/utils/debug/BUILD.cmake b/src/tint/utils/debug/BUILD.cmake new file mode 100644 index 0000000..4d47c62 --- /dev/null +++ b/src/tint/utils/debug/BUILD.cmake
@@ -0,0 +1,26 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/debug" + utils/debug/debugger.cc + utils/debug/debugger.h +)
diff --git a/src/tint/utils/diagnostic/BUILD.cmake b/src/tint/utils/diagnostic/BUILD.cmake new file mode 100644 index 0000000..a302b7d --- /dev/null +++ b/src/tint/utils/diagnostic/BUILD.cmake
@@ -0,0 +1,66 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/diagnostic" + utils/diagnostic/diagnostic.cc + utils/diagnostic/diagnostic.h + utils/diagnostic/formatter.cc + utils/diagnostic/formatter.h + utils/diagnostic/printer.cc + utils/diagnostic/printer.h + utils/diagnostic/source.cc + utils/diagnostic/source.h +) + +tint_target_add_dependencies("utils/diagnostic" + "utils/text" + "utils/traits" +) + +if ((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN)) + tint_target_add_sources("utils/diagnostic" + "utils/diagnostic/printer_other.cc" + ) +endif((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN)) + +if (IS_LINUX OR IS_MAC) + tint_target_add_sources("utils/diagnostic" + "utils/diagnostic/printer_posix.cc" + ) +endif(IS_LINUX OR IS_MAC) + +if (IS_WIN) + tint_target_add_sources("utils/diagnostic" + "utils/diagnostic/printer_windows.cc" + ) +endif(IS_WIN) + +tint_add_target("utils/diagnostic:test" + utils/diagnostic/diagnostic_test.cc + utils/diagnostic/formatter_test.cc + utils/diagnostic/printer_test.cc + utils/diagnostic/source_test.cc +) + +tint_target_add_dependencies("utils/diagnostic:test" + "utils/diagnostic" +)
diff --git a/src/tint/utils/file/BUILD.cmake b/src/tint/utils/file/BUILD.cmake new file mode 100644 index 0000000..6aaceac --- /dev/null +++ b/src/tint/utils/file/BUILD.cmake
@@ -0,0 +1,56 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/file" + utils/file/tmpfile.h +) + +tint_target_add_dependencies("utils/file" + "utils/ice" + "utils/text" +) + +if ((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN)) + tint_target_add_sources("utils/file" + "utils/file/tmpfile_other.cc" + ) +endif((NOT IS_LINUX) AND (NOT IS_MAC) AND (NOT IS_WIN)) + +if (IS_LINUX OR IS_MAC) + tint_target_add_sources("utils/file" + "utils/file/tmpfile_posix.cc" + ) +endif(IS_LINUX OR IS_MAC) + +if (IS_WIN) + tint_target_add_sources("utils/file" + "utils/file/tmpfile_windows.cc" + ) +endif(IS_WIN) + +tint_add_target("utils/file:test" + utils/file/tmpfile_test.cc +) + +tint_target_add_dependencies("utils/file:test" + "utils/file" +)
diff --git a/src/tint/utils/generator/BUILD.cmake b/src/tint/utils/generator/BUILD.cmake new file mode 100644 index 0000000..4b6a3ad --- /dev/null +++ b/src/tint/utils/generator/BUILD.cmake
@@ -0,0 +1,33 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/generator" + utils/generator/text_generator.cc + utils/generator/text_generator.h +) + +tint_target_add_dependencies("utils/generator" + "utils/containers" + "utils/diagnostic" + "utils/ice" + "utils/text" +)
diff --git a/src/tint/utils/ice/BUILD.cmake b/src/tint/utils/ice/BUILD.cmake new file mode 100644 index 0000000..9fdf8ef --- /dev/null +++ b/src/tint/utils/ice/BUILD.cmake
@@ -0,0 +1,39 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/ice" + utils/ice/ice.cc + utils/ice/ice.h +) + +tint_target_add_dependencies("utils/ice" + "utils/debug" + "utils/macros" +) + +tint_add_target("utils/ice:test" + utils/ice/ice_test.cc +) + +tint_target_add_dependencies("utils/ice:test" + "utils/ice" +)
diff --git a/src/tint/utils/id/BUILD.cmake b/src/tint/utils/id/BUILD.cmake new file mode 100644 index 0000000..d56067c --- /dev/null +++ b/src/tint/utils/id/BUILD.cmake
@@ -0,0 +1,32 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/id" + utils/id/generation_id.cc + utils/id/generation_id.h +) + +tint_target_add_dependencies("utils/id" + "utils/ice" + "utils/text" + "utils/traits" +)
diff --git a/src/tint/utils/macros/BUILD.cmake b/src/tint/utils/macros/BUILD.cmake new file mode 100644 index 0000000..dd76404 --- /dev/null +++ b/src/tint/utils/macros/BUILD.cmake
@@ -0,0 +1,39 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/macros" + utils/macros/compiler.h + utils/macros/concat.h + utils/macros/defer.h + utils/macros/foreach.h + utils/macros/macros.cc + utils/macros/scoped_assignment.h +) + +tint_add_target("utils/macros:test" + utils/macros/defer_test.cc + utils/macros/scoped_assignment_test.cc +) + +tint_target_add_dependencies("utils/macros:test" + "utils/macros" +)
diff --git a/src/tint/utils/macros/macros.cc b/src/tint/utils/macros/macros.cc new file mode 100644 index 0000000..7613f2e --- /dev/null +++ b/src/tint/utils/macros/macros.cc
@@ -0,0 +1,20 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_utils_reflection_symbol = 1; + +#endif
diff --git a/src/tint/utils/math/BUILD.cmake b/src/tint/utils/math/BUILD.cmake new file mode 100644 index 0000000..477e285 --- /dev/null +++ b/src/tint/utils/math/BUILD.cmake
@@ -0,0 +1,39 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/math" + utils/math/crc32.h + utils/math/hash.h + utils/math/math.cc + utils/math/math.h +) + +tint_add_target("utils/math:test" + utils/math/crc32_test.cc + utils/math/hash_test.cc + utils/math/math_test.cc +) + +tint_target_add_dependencies("utils/math:test" + "utils/containers" + "utils/math" +)
diff --git a/src/tint/utils/math/math.cc b/src/tint/utils/math/math.cc new file mode 100644 index 0000000..75b5c30 --- /dev/null +++ b/src/tint/utils/math/math.cc
@@ -0,0 +1,22 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "src/tint/utils/math/math.h" + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_utils_math_symbol = 1; + +#endif
diff --git a/src/tint/utils/memory/BUILD.cmake b/src/tint/utils/memory/BUILD.cmake new file mode 100644 index 0000000..c8f8be7 --- /dev/null +++ b/src/tint/utils/memory/BUILD.cmake
@@ -0,0 +1,42 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/memory" + utils/memory/bitcast.h + utils/memory/block_allocator.h + utils/memory/bump_allocator.h + utils/memory/memory.cc +) + +tint_target_add_dependencies("utils/memory" + "utils/math" +) + +tint_add_target("utils/memory:test" + utils/memory/bitcast_test.cc + utils/memory/block_allocator_test.cc + utils/memory/bump_allocator_test.cc +) + +tint_target_add_dependencies("utils/memory:test" + "utils/memory" +)
diff --git a/src/tint/utils/memory/memory.cc b/src/tint/utils/memory/memory.cc new file mode 100644 index 0000000..df7ad36 --- /dev/null +++ b/src/tint/utils/memory/memory.cc
@@ -0,0 +1,20 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_utils_memory_symbol = 1; + +#endif
diff --git a/src/tint/utils/reflection/BUILD.cmake b/src/tint/utils/reflection/BUILD.cmake new file mode 100644 index 0000000..1645878 --- /dev/null +++ b/src/tint/utils/reflection/BUILD.cmake
@@ -0,0 +1,38 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/reflection" + utils/reflection/reflection.cc + utils/reflection/reflection.h +) + +tint_target_add_dependencies("utils/reflection" + "utils/macros" +) + +tint_add_target("utils/reflection:test" + utils/reflection/reflection_test.cc +) + +tint_target_add_dependencies("utils/reflection:test" + "utils/reflection" +)
diff --git a/src/tint/utils/reflection/reflection.cc b/src/tint/utils/reflection/reflection.cc new file mode 100644 index 0000000..5b05af2 --- /dev/null +++ b/src/tint/utils/reflection/reflection.cc
@@ -0,0 +1,22 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "src/tint/utils/reflection/reflection.h" + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_utils_reflection_symbol = 1; + +#endif
diff --git a/src/tint/utils/result/BUILD.cmake b/src/tint/utils/result/BUILD.cmake new file mode 100644 index 0000000..ae6db4e --- /dev/null +++ b/src/tint/utils/result/BUILD.cmake
@@ -0,0 +1,40 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/result" + utils/result/result.cc + utils/result/result.h +) + +tint_target_add_dependencies("utils/result" + "utils/ice" + "utils/text" + "utils/traits" +) + +tint_add_target("utils/result:test" + utils/result/result_test.cc +) + +tint_target_add_dependencies("utils/result:test" + "utils/result" +)
diff --git a/src/tint/utils/result/result.cc b/src/tint/utils/result/result.cc new file mode 100644 index 0000000..ce28850 --- /dev/null +++ b/src/tint/utils/result/result.cc
@@ -0,0 +1,22 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "src/tint/utils/result/result.h" + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_utils_result_symbol = 1; + +#endif
diff --git a/src/tint/utils/rtti/BUILD.cmake b/src/tint/utils/rtti/BUILD.cmake new file mode 100644 index 0000000..df557b9 --- /dev/null +++ b/src/tint/utils/rtti/BUILD.cmake
@@ -0,0 +1,51 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/rtti" + utils/rtti/castable.cc + utils/rtti/castable.h + utils/rtti/switch.h +) + +tint_target_add_dependencies("utils/rtti" + "utils/macros" + "utils/math" + "utils/memory" + "utils/traits" +) + +tint_add_target("utils/rtti:test" + utils/rtti/castable_test.cc + utils/rtti/switch_test.cc +) + +tint_target_add_dependencies("utils/rtti:test" + "utils/rtti" +) + +tint_add_target("utils/rtti:bench" + utils/rtti/switch_bench.cc +) + +tint_target_add_dependencies("utils/rtti:bench" + "utils/rtti" +)
diff --git a/src/tint/utils/strconv/BUILD.cmake b/src/tint/utils/strconv/BUILD.cmake new file mode 100644 index 0000000..85ed5cd --- /dev/null +++ b/src/tint/utils/strconv/BUILD.cmake
@@ -0,0 +1,48 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/strconv" + utils/strconv/float_to_string.cc + utils/strconv/float_to_string.h + utils/strconv/parse_num.cc + utils/strconv/parse_num.h +) + +tint_target_add_dependencies("utils/strconv" + "utils/ice" + "utils/macros" + "utils/result" + "utils/text" +) + +tint_target_add_external_dependencies("utils/strconv" + "abseil" +) + +tint_add_target("utils/strconv:test" + utils/strconv/float_to_string_test.cc +) + +tint_target_add_dependencies("utils/strconv:test" + "utils/memory" + "utils/strconv" +)
diff --git a/src/tint/utils/symbol/BUILD.cmake b/src/tint/utils/symbol/BUILD.cmake new file mode 100644 index 0000000..2d7bc46 --- /dev/null +++ b/src/tint/utils/symbol/BUILD.cmake
@@ -0,0 +1,44 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/symbol" + utils/symbol/symbol.cc + utils/symbol/symbol.h + utils/symbol/symbol_table.cc + utils/symbol/symbol_table.h +) + +tint_target_add_dependencies("utils/symbol" + "utils/containers" + "utils/ice" + "utils/id" + "utils/memory" +) + +tint_add_target("utils/symbol:test" + utils/symbol/symbol_table_test.cc + utils/symbol/symbol_test.cc +) + +tint_target_add_dependencies("utils/symbol:test" + "utils/symbol" +)
diff --git a/src/tint/utils/text/BUILD.cmake b/src/tint/utils/text/BUILD.cmake new file mode 100644 index 0000000..a441546 --- /dev/null +++ b/src/tint/utils/text/BUILD.cmake
@@ -0,0 +1,46 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/text" + utils/text/string.cc + utils/text/string.h + utils/text/string_stream.cc + utils/text/string_stream.h + utils/text/unicode.cc + utils/text/unicode.h +) + +tint_target_add_dependencies("utils/text" + "utils/containers" +) + +tint_add_target("utils/text:test" + utils/text/string_stream_test.cc + utils/text/string_test.cc + utils/text/unicode_test.cc +) + +tint_target_add_dependencies("utils/text:test" + "utils/containers" + "utils/text" + "utils/traits" +)
diff --git a/src/tint/utils/traits/BUILD.cmake b/src/tint/utils/traits/BUILD.cmake new file mode 100644 index 0000000..02e0054 --- /dev/null +++ b/src/tint/utils/traits/BUILD.cmake
@@ -0,0 +1,34 @@ +# Copyright 2023 The Tint Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################################ +# File generated by tools/src/cmd/gen +# using the template: +# tools/src/cmd/gen/build/BUILD.cmake.tmpl +# +# Do not modify this file directly +################################################################################ + +tint_add_target("utils/traits" + utils/traits/traits.cc + utils/traits/traits.h +) + +tint_add_target("utils/traits:test" + utils/traits/traits_test.cc +) + +tint_target_add_dependencies("utils/traits:test" + "utils/traits" +)
diff --git a/src/tint/utils/traits/traits.cc b/src/tint/utils/traits/traits.cc new file mode 100644 index 0000000..2e1a4c9 --- /dev/null +++ b/src/tint/utils/traits/traits.cc
@@ -0,0 +1,22 @@ +// Copyright 2023 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "src/tint/utils/traits/traits.h" + +#if defined(_MSC_VER) && !defined(__clang__) + +// A placeholder symbol used to make MSVC emit a .lib for this lib target. +int tint_utils_traits_symbol = 1; + +#endif