Revert IR Fuzzer enabling change and associated DEPS roll This reverts the actual CL and a number of others that depended on it. This reverts the contents of 3dfff8a1a30269110c3405de31fc6af0eacac4ca, 26b8627db273137a808fdfd46bb6d639dc900bc6, bd88d026b7470efd76fbceb62f0414edd24f118d, and 613c2e847af7362417e79c0d518aa877f4726fbc. Change-Id: I04a4fd809aa77846e18ca94ef5d36302a884c43d Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/237475 Auto-Submit: Ryan Harrison <rharrison@chromium.org> Reviewed-by: James Price <jrprice@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org> Commit-Queue: James Price <jrprice@google.com>
diff --git a/.gitignore b/.gitignore index ef46d3f..49fc06e 100644 --- a/.gitignore +++ b/.gitignore
@@ -21,11 +21,10 @@ /third_party/depot_tools /third_party/dxc /third_party/dxheaders -/third_party/fuzztest/src/ /third_party/glfw /third_party/glslang/src/ /third_party/google_benchmark/src -/third_party/googletest/src/ +/third_party/googletest /third_party/gpuweb /third_party/jinja2 /third_party/jsoncpp @@ -42,7 +41,6 @@ /third_party/node-api-headers /third_party/partition_alloc /third_party/protobuf -/third_party/re2/src/ /third_party/siso/cipd/ /third_party/spirv-cross/src/ /third_party/spirv-headers/src/
diff --git a/.gitmodules b/.gitmodules index e45242f..3285f507 100644 --- a/.gitmodules +++ b/.gitmodules
@@ -42,20 +42,12 @@ path = testing url = https://chromium.googlesource.com/chromium/src/testing gclient-condition = dawn_standalone -[submodule "third_party/fuzztest/src"] - path = third_party/fuzztest/src - url = https://chromium.googlesource.com/external/github.com/google/fuzztest.git - gclient-condition = dawn_standalone -[submodule "third_party/re2/src"] - path = third_party/re2/src - url = https://chromium.googlesource.com/external/github.com/google/re2.git - gclient-condition = dawn_standalone [submodule "third_party/libFuzzer/src"] path = third_party/libFuzzer/src url = https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git gclient-condition = dawn_standalone -[submodule "third_party/googletest/src"] - path = third_party/googletest/src +[submodule "third_party/googletest"] + path = third_party/googletest url = https://chromium.googlesource.com/external/github.com/google/googletest gclient-condition = dawn_standalone [submodule "third_party/catapult"]
diff --git a/CMakeLists.txt b/CMakeLists.txt index 747e86a..a7004b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -243,6 +243,7 @@ option(TINT_BUILD_IR_BINARY "Build IR binary format support" ${TINT_DEFAULT_BUILD_IR_BINARY}) option(TINT_BUILD_FUZZERS "Build fuzzers" OFF) +option(TINT_BUILD_IR_FUZZER "Build IR fuzzer" OFF) option(TINT_BUILD_BENCHMARKS "Build Tint benchmarks" OFF) option(TINT_BUILD_TESTS "Build tests" ON) option(TINT_BUILD_AS_OTHER_OS "Override OS detection to force building of *_other.cc files" OFF) @@ -275,6 +276,7 @@ message(STATUS "Tint install: ${TINT_ENABLE_INSTALL}") message(STATUS "Tint build fuzzers: ${TINT_BUILD_FUZZERS}") message(STATUS "Tint build IR binary: ${TINT_BUILD_IR_BINARY}") +message(STATUS "Tint build IR fuzzer: ${TINT_BUILD_IR_FUZZER}") message(STATUS "Tint build benchmarks: ${TINT_BUILD_BENCHMARKS}") message(STATUS "Tint build tests: ${TINT_BUILD_TESTS}") message(STATUS "Tint build tintd: ${TINT_BUILD_TINTD}") @@ -288,7 +290,6 @@ set_if_not_defined(DAWN_THIRD_PARTY_DIR "${Dawn_SOURCE_DIR}/third_party" "Directory in which to find third-party dependencies.") set_if_not_defined(DAWN_ABSEIL_DIR "${DAWN_THIRD_PARTY_DIR}/abseil-cpp" "Directory in which to find Abseil") - set_if_not_defined(DAWN_GLFW_DIR "${DAWN_THIRD_PARTY_DIR}/glfw" "Directory in which to find GLFW") set_if_not_defined(DAWN_JINJA2_DIR "${DAWN_THIRD_PARTY_DIR}/jinja2" "Directory in which to find Jinja2") set_if_not_defined(DAWN_MARKUPSAFE_DIR "${DAWN_THIRD_PARTY_DIR}/markupsafe" "Directory in which to find MarkupSafe") @@ -297,7 +298,7 @@ set_if_not_defined(DAWN_PROTOBUF_DIR "${DAWN_THIRD_PARTY_DIR}/protobuf" "Directory in which to find protobuf") set_if_not_defined(DAWN_LPM_DIR "${DAWN_THIRD_PARTY_DIR}/libprotobuf-mutator/src" "Directory in which to find libprotobuf") set_if_not_defined(DAWN_EMDAWNWEBGPU_DIR "${DAWN_THIRD_PARTY_DIR}/emdawnwebgpu" "Directory in which to find Dawn specific Emscripten bindings") -set_if_not_defined(DAWN_GOOGLETEST_DIR "${DAWN_THIRD_PARTY_DIR}/googletest/src" "Directory in which to find googletest") +set_if_not_defined(DAWN_GOOGLETEST_DIR "${DAWN_THIRD_PARTY_DIR}/googletest" "Directory in which to find googletest") set_if_not_defined(DAWN_SPIRV_TOOLS_DIR "${DAWN_THIRD_PARTY_DIR}/spirv-tools/src" "Directory in which to find SPIRV-Tools") set_if_not_defined(DAWN_SPIRV_HEADERS_DIR "${DAWN_THIRD_PARTY_DIR}/spirv-headers/src" "Directory in which to find SPIRV-Headers")
diff --git a/DEPS b/DEPS index 3aaa4dd..6e87cb8 100644 --- a/DEPS +++ b/DEPS
@@ -20,7 +20,7 @@ 'dawn_tintd': False, # Also fetches dependencies required for building tintd. 'dawn_cmake_version': 'version:2@3.23.3', 'dawn_cmake_win32_sha1': 'b106d66bcdc8a71ea2cdf5446091327bfdb1bcd7', - 'dawn_gn_version': 'git_revision:6e8e0d6d4a151ab2ed9b4a35366e630c55888444', + 'dawn_gn_version': 'git_revision:182a6eb05d15cc76d2302f7928fdb4f645d52c53', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja 'dawn_ninja_version': 'version:3@1.12.1.chromium.4', @@ -66,7 +66,7 @@ deps = { 'buildtools': { - 'url': '{chromium_git}/chromium/src/buildtools@244e7cf4453305d0c17d500662a69fba2e46a73e', + 'url': '{chromium_git}/chromium/src/buildtools@a660247d3c14a172b74b8e832ba1066b30183c97', 'condition': 'dawn_standalone', }, 'third_party/clang-format/script': { @@ -130,11 +130,11 @@ # The //build and //tools/clang deps should all be updated in # unison, as there are dependencies between them. 'build': { - 'url': '{chromium_git}/chromium/src/build@266be69ba9615e3202c00664fc084147666ddbb5', + 'url': '{chromium_git}/chromium/src/build@a252ef1991b42918f6e74bc8c26b6543afe7bb2e', 'condition': 'dawn_standalone', }, 'tools/clang': { - 'url': '{chromium_git}/chromium/src/tools/clang@5d9b09742311e059ecdba6d74adcb883e4ebffe5', + 'url': '{chromium_git}/chromium/src/tools/clang@e262f0f8896e459fe7fd2a076af48d5746b1d332', 'condition': 'dawn_standalone', }, @@ -228,22 +228,14 @@ # Testing, GTest and GMock 'testing': { - 'url': '{chromium_git}/chromium/src/testing@ae9705179f821d1dbd2b0a2ba7a6582faac7f86b', - 'condition': 'dawn_standalone', - }, - 'third_party/fuzztest/src': { - 'url': '{chromium_git}/external/github.com/google/fuzztest.git' + '@' + '89408f91d2f1101fe2d79199e7ed994a4d197eb8', - 'condition': 'dawn_standalone', - }, - 'third_party/re2/src': { - 'url': '{chromium_git}/external/github.com/google/re2.git' + '@' + 'c84a140c93352cdabbfb547c531be34515b12228', + 'url': '{chromium_git}/chromium/src/testing@1bd0da6657e330cf26ed0702b3f456393587ad7c', 'condition': 'dawn_standalone', }, 'third_party/libFuzzer/src': { 'url': '{chromium_git}/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' + '@' + '26cc39e59b2bf5cbc20486296248a842c536878d', 'condition': 'dawn_standalone', }, - 'third_party/googletest/src': { + 'third_party/googletest': { 'url': '{chromium_git}/external/github.com/google/googletest@52204f78f94d7512df1f0f3bea1d47437a2c3a58', 'condition': 'dawn_standalone', }, @@ -343,7 +335,7 @@ }, 'third_party/abseil-cpp': { - 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@04dc59d2c83238cb1fcb49083e5e416643a899ce', + 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@f81f6c011baf9b0132a5594c034fe0060820711d', 'condition': 'dawn_standalone', }, @@ -443,17 +435,17 @@ # Misc dependencies inherited from Tint 'third_party/protobuf': { - 'url': '{chromium_git}/chromium/src/third_party/protobuf@f2622a898ca54e0b7f4e38d8f7bfb994fa89872e', + 'url': '{chromium_git}/chromium/src/third_party/protobuf@da2fe725b80ac0ba646fbf77d0ce5b4ac236f823', 'condition': 'dawn_standalone', }, 'tools/protoc_wrapper': { - 'url': '{chromium_git}/chromium/src/tools/protoc_wrapper@dbcbea90c20ae1ece442d8ef64e61c7b10e2b013', + 'url': '{chromium_git}/chromium/src/tools/protoc_wrapper@b5ea227bd88235ab3ccda964d5f3819c4e2d8032', 'condition': 'dawn_standalone', }, 'third_party/libprotobuf-mutator/src': { - 'url': '{chromium_git}/external/github.com/google/libprotobuf-mutator.git@7bf98f78a30b067e22420ff699348f084f802e12', + 'url': '{chromium_git}/external/github.com/google/libprotobuf-mutator.git@a304ec48dcf15d942607032151f7e9ee504b5dcf', 'condition': 'dawn_standalone', },
diff --git a/build b/build index 266be69..a252ef1 160000 --- a/build +++ b/build
@@ -1 +1 @@ -Subproject commit 266be69ba9615e3202c00664fc084147666ddbb5 +Subproject commit a252ef1991b42918f6e74bc8c26b6543afe7bb2e
diff --git a/build_overrides/dawn.gni b/build_overrides/dawn.gni index 3ba405f..bbe1f67 100644 --- a/build_overrides/dawn.gni +++ b/build_overrides/dawn.gni
@@ -47,7 +47,7 @@ dawn_angle_dir = "//third_party/angle" dawn_jinja2_dir = "//third_party/jinja2" dawn_glfw_dir = "//third_party/glfw" -dawn_googletest_dir = "//third_party/googletest/src" +dawn_googletest_dir = "//third_party/googletest" dawn_spirv_tools_dir = "//third_party/spirv-tools/src" dawn_swiftshader_dir = "//third_party/swiftshader" dawn_vulkan_loader_dir = "//third_party/vulkan-loader/src"
diff --git a/build_overrides/gtest.gni b/build_overrides/gtest.gni deleted file mode 100644 index aaf69a8..0000000 --- a/build_overrides/gtest.gni +++ /dev/null
@@ -1,15 +0,0 @@ -# Copyright 2016 The Chromium Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# Exclude support for registering main function in multi-process tests. -gtest_include_multiprocess = true - -# Exclude support for platform-specific operations across unit tests. -gtest_include_platform_test = true - -# Exclude support for testing Objective C code on OS X and iOS. -gtest_include_objc_support = true - -# Exclude support for flushing coverage files on iOS. -gtest_include_ios_coverage = true
diff --git a/build_overrides/spirv_tools.gni b/build_overrides/spirv_tools.gni index e329583..ca5ba4a 100644 --- a/build_overrides/spirv_tools.gni +++ b/build_overrides/spirv_tools.gni
@@ -29,5 +29,5 @@ spirv_tools_standalone = false # Paths to SPIRV-Tools dependencies in Dawn -spirv_tools_googletest_dir = "//third_party/googletest/src" +spirv_tools_googletest_dir = "//third_party/googletest" spirv_tools_spirv_headers_dir = "//third_party/spirv-headers/src"
diff --git a/buildtools b/buildtools index 244e7cf..a660247 160000 --- a/buildtools +++ b/buildtools
@@ -1 +1 @@ -Subproject commit 244e7cf4453305d0c17d500662a69fba2e46a73e +Subproject commit a660247d3c14a172b74b8e832ba1066b30183c97
diff --git a/docs/tint/fuzzers.md b/docs/tint/fuzzers.md index 17dc7e5..3c66b74 100644 --- a/docs/tint/fuzzers.md +++ b/docs/tint/fuzzers.md
@@ -35,9 +35,11 @@ Building `tint_ir_fuzzer` requires additional flags to be set: -- CMake: Define `TINT_BUILD_IR_BINARY=1` (pass - `-DTINT_BUILD_IR_BINARY=1` to `cmake`) -- GN: Define `tint_build_ir_binary = true` in `args.gn`. +- CMake: Define `TINT_BUILD_IR_BINARY=1` and `TINT_BUILD_IR_FUZZER=1` + (pass `-DTINT_BUILD_IR_BINARY=1` `-DTINT_BUILD_IR_FUZZER=1` to + `cmake`) +- GN: Define `tint_build_ir_binary = true` and `tint_build_ir_fuzzer = + true` in `args.gn`. ## Running fuzzers
diff --git a/scripts/tint_overrides_with_defaults.gni b/scripts/tint_overrides_with_defaults.gni index 2bdf0d0..fff1088 100644 --- a/scripts/tint_overrides_with_defaults.gni +++ b/scripts/tint_overrides_with_defaults.gni
@@ -68,7 +68,7 @@ # Path to googletest checkout if (!defined(tint_googletest_dir)) { - tint_googletest_dir = "//third_party/googletest/src" + tint_googletest_dir = "//third_party/googletest" } # Path to spirv-headers checkout @@ -135,6 +135,11 @@ tint_build_ir_binary = tint_has_protobuf } + # Build IR binary fuzzer + if (!defined(tint_build_ir_fuzzer)) { + tint_build_ir_fuzzer = false + } + # Build the tintd language server if (!defined(tint_build_tintd)) { tint_build_tintd = false
diff --git a/src/cmake/DawnCompilerExtraFlags.cmake b/src/cmake/DawnCompilerExtraFlags.cmake index 5a02320..9fa5ed7 100644 --- a/src/cmake/DawnCompilerExtraFlags.cmake +++ b/src/cmake/DawnCompilerExtraFlags.cmake
@@ -56,21 +56,6 @@ PUBLIC "/utf-8") endif () - # Abseil headers can cause warnings when included that will cause failures - # with -Werror. - # Needs to be PUBLIC to propagate to targets that depend indirectly on abseil - # via this target. - if (NOT MSVC) - get_target_property(deps ${target} LINK_LIBRARIES) - if (deps MATCHES "absl") - target_compile_options(${target} PUBLIC - "-Wno-gcc-compat" - "-Wno-unreachable-code-break" - "-Wno-nullability-extension" - ) - endif () - endif () - if (COMPILER_IS_LIKE_GNU) set(SANITIZER_OPTIONS "") if (${DAWN_ENABLE_MSAN}) @@ -115,4 +100,3 @@ endif () endif () endfunction() -
diff --git a/src/dawn/common/BUILD.gn b/src/dawn/common/BUILD.gn index b694e7a..ec30bff 100644 --- a/src/dawn/common/BUILD.gn +++ b/src/dawn/common/BUILD.gn
@@ -237,19 +237,6 @@ ] } -config("abseil_config") { - if (!build_with_chromium && is_clang) { - cflags = [ - # Allow the use of enable_if() - "-Wno-gcc-compat", - "-Wno-unreachable-code-break", - - # Allows use of _Nullable, _Nonnull & _Null_unspecified - "-Wno-nullability-extension", - ] - } -} - group("abseil") { # When building within Chromium or ANGLE we need to include "//third_party/abseil-cpp:absl" while # it's beneficial to be more specific with standalone Dawn, especially when it comes to @@ -258,9 +245,9 @@ public_deps = [ "$dawn_abseil_dir:absl" ] } else { public_deps = [ - "${dawn_abseil_dir}/absl/base:no_destructor", - "${dawn_abseil_dir}/absl/container:flat_hash_set", - "${dawn_abseil_dir}/absl/container:inlined_vector", + "${dawn_root}/third_party/gn/abseil-cpp:flat_hash_set", + "${dawn_root}/third_party/gn/abseil-cpp:inlined_vector", + "${dawn_root}/third_party/gn/abseil-cpp:no_destructor", ] } } @@ -370,10 +357,7 @@ # Note that while this doesn't make `internal_config` a public config of # Dawn libraries because `:common` is only used as a private deps of Dawn # targets, so `internal_config` doesn't leak out of Dawn. - public_configs = [ - ":abseil_config", - ":internal_config", - ] + public_configs = [ ":internal_config" ] deps = [ "${dawn_root}/include/dawn:cpp_headers", "${dawn_root}/include/dawn:headers",
diff --git a/src/dawn/native/BUILD.gn b/src/dawn/native/BUILD.gn index e525cea..fd055fc 100644 --- a/src/dawn/native/BUILD.gn +++ b/src/dawn/native/BUILD.gn
@@ -53,18 +53,6 @@ enable_vulkan_loader = dawn_enable_vulkan_loader && dawn_vulkan_loader_dir != "" } -config("abseil_config") { - if (!build_with_chromium && is_clang) { - cflags = [ - # Allow the use of enable_if() - "-Wno-gcc-compat", - "-Wno-unreachable-code-break", - - # Allows use of _Nullable, _Nonnull & _Null_unspecified - "-Wno-nullability-extension", - ] - } -} group("abseil") { # When building within Chromium or ANGLE we need to include "//third_party/abseil-cpp:absl" while @@ -74,14 +62,14 @@ public_deps = [ "$dawn_abseil_dir:absl" ] } else { public_deps = [ - "${dawn_abseil_dir}/absl/container:flat_hash_map", - "${dawn_abseil_dir}/absl/container:flat_hash_set", - "${dawn_abseil_dir}/absl/container:inlined_vector", - "${dawn_abseil_dir}/absl/numeric:bits", - "${dawn_abseil_dir}/absl/strings:str_format", - "${dawn_abseil_dir}/absl/strings:string_view", - "${dawn_abseil_dir}/absl/strings:strings", - "${dawn_abseil_dir}/absl/types:span", + "${dawn_root}/third_party/gn/abseil-cpp:bits", + "${dawn_root}/third_party/gn/abseil-cpp:flat_hash_map", + "${dawn_root}/third_party/gn/abseil-cpp:flat_hash_set", + "${dawn_root}/third_party/gn/abseil-cpp:inlined_vector", + "${dawn_root}/third_party/gn/abseil-cpp:span", + "${dawn_root}/third_party/gn/abseil-cpp:str_format", + "${dawn_root}/third_party/gn/abseil-cpp:string_view", + "${dawn_root}/third_party/gn/abseil-cpp:strings", ] } } @@ -201,8 +189,6 @@ cflags = [ "-Wglobal-constructors" ] } - public_configs = [ ":abseil_config" ] - # Dependencies that are needed to compile dawn native entry points in # FooBackend.cpp need to be public deps so they are propagated to the # dawn native target @@ -448,7 +434,7 @@ "user32.lib", "delayimp.lib", ] - public_configs += [ ":win_delayload" ] + public_configs = [ ":win_delayload" ] } if (dawn_is_winuwp && is_debug) {
diff --git a/src/dawn/utils/BUILD.gn b/src/dawn/utils/BUILD.gn index 035ddc6..2c302f5 100644 --- a/src/dawn/utils/BUILD.gn +++ b/src/dawn/utils/BUILD.gn
@@ -34,36 +34,6 @@ # Utils for tests and samples ############################################################################### -config("abseil_config") { - if (!build_with_chromium && is_clang) { - cflags = [ - # Allow the use of enable_if() - "-Wno-gcc-compat", - "-Wno-unreachable-code-break", - - # Allows use of _Nullable, _Nonnull & _Null_unspecified - "-Wno-nullability-extension", - ] - } -} - -group("abseil") { - # When building within Chromium or ANGLE we need to include "//third_party/abseil-cpp:absl" while - # it's beneficial to be more specific with standalone Dawn, especially when it comes to - # including it as a dependency in other projects (such as Skia). - if (build_with_chromium || build_with_angle) { - public_deps = [ "$dawn_abseil_dir:absl" ] - } else { - public_deps = [ - "${dawn_abseil_dir}/absl/container:flat_hash_map", - "${dawn_abseil_dir}/absl/strings", - "${dawn_abseil_dir}/absl/strings:str_format", - "${dawn_abseil_dir}/absl/strings:string_view", - "${dawn_abseil_dir}/absl/types:span", - ] - } -} - static_library("utils") { configs += [ "${dawn_root}/src/dawn/common:internal_config", @@ -133,11 +103,26 @@ sources += [ "PosixTimer.cpp" ] } - public_configs = [ ":abseil_config" ] - public_deps = [ ":abseil", "${dawn_root}/include/dawn:cpp_headers", "${dawn_root}/src/dawn/partition_alloc:raw_ptr", ] } + +group("abseil") { + # When building within Chromium or ANGLE we need to include "//third_party/abseil-cpp:absl" while + # it's beneficial to be more specific with standalone Dawn, especially when it comes to + # including it as a dependency in other projects (such as Skia). + if (build_with_chromium || build_with_angle) { + public_deps = [ "$dawn_abseil_dir:absl" ] + } else { + public_deps = [ + "${dawn_root}/third_party/gn/abseil-cpp:flat_hash_map", + "${dawn_root}/third_party/gn/abseil-cpp:span", + "${dawn_root}/third_party/gn/abseil-cpp:str_format", + "${dawn_root}/third_party/gn/abseil-cpp:string_view", + "${dawn_root}/third_party/gn/abseil-cpp:strings", + ] + } +}
diff --git a/src/dawn/utils/CMakeLists.txt b/src/dawn/utils/CMakeLists.txt index 8795198..5eb7120 100644 --- a/src/dawn/utils/CMakeLists.txt +++ b/src/dawn/utils/CMakeLists.txt
@@ -139,5 +139,3 @@ absl::flat_hash_map ${private_system_depends} ) - -
diff --git a/src/dawn/wire/BUILD.gn b/src/dawn/wire/BUILD.gn index 1461124..3ae02d9 100644 --- a/src/dawn/wire/BUILD.gn +++ b/src/dawn/wire/BUILD.gn
@@ -62,19 +62,6 @@ ] } -config("abseil_config") { - if (!build_with_chromium && is_clang) { - cflags = [ - # Allow the use of enable_if() - "-Wno-gcc-compat", - "-Wno-unreachable-code-break", - - # Allows use of _Nullable, _Nonnull & _Null_unspecified - "-Wno-nullability-extension", - ] - } -} - group("abseil") { # When building within Chromium or ANGLE we need to include "//third_party/abseil-cpp:absl" while # it's beneficial to be more specific with standalone Dawn, especially when it comes to @@ -83,9 +70,9 @@ public_deps = [ "$dawn_abseil_dir:absl" ] } else { public_deps = [ - "${dawn_abseil_dir}/absl/container:flat_hash_map", - "${dawn_abseil_dir}/absl/container:flat_hash_set", - "${dawn_abseil_dir}/absl/types:span", + "${dawn_root}/third_party/gn/abseil-cpp:flat_hash_map", + "${dawn_root}/third_party/gn/abseil-cpp:flat_hash_set", + "${dawn_root}/third_party/gn/abseil-cpp:span", ] } } @@ -169,8 +156,6 @@ "server/ServerSurface.cpp", ] - public_configs = [ ":abseil_config" ] - # Make headers publicly visible public_deps = [ ":abseil",
diff --git a/src/dawn/wire/CMakeLists.txt b/src/dawn/wire/CMakeLists.txt index 8e2a642..b408761 100644 --- a/src/dawn/wire/CMakeLists.txt +++ b/src/dawn/wire/CMakeLists.txt
@@ -130,7 +130,6 @@ dawn::partition_alloc tint_lang_wgsl ) - target_compile_definitions(dawn_wire PRIVATE "DAWN_WIRE_IMPLEMENTATION") if(BUILD_SHARED_LIBS) target_compile_definitions(dawn_wire PRIVATE "DAWN_WIRE_SHARED_LIBRARY")
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn index f40782f..3e8256f 100644 --- a/src/tint/BUILD.gn +++ b/src/tint/BUILD.gn
@@ -121,6 +121,14 @@ defines += [ "TINT_BUILD_IR_BINARY=0" ] } + if (tint_build_ir_fuzzer) { + assert(tint_build_ir_binary, + "tint_build_ir_fuzzer requires tint_build_ir_binary") + defines += [ "TINT_BUILD_IR_FUZZER=1" ] + } else { + defines += [ "TINT_BUILD_IR_FUZZER=0" ] + } + if (tint_build_is_win) { defines += [ "TINT_BUILD_IS_WIN=1" ] } else { @@ -279,7 +287,7 @@ if (build_with_chromium || build_with_angle) { public_deps = [ "$dawn_abseil_dir:absl" ] } else { - public_deps = [ "${dawn_abseil_dir}/absl/strings" ] + public_deps = [ "${dawn_root}/third_party/gn/abseil-cpp:strings" ] } } @@ -316,25 +324,27 @@ ] outputs = [ fuzzer_corpus_wgsl_stamp ] } - # TODO(409348527): Re-enable corpus generation - # if (tint_build_ir_binary && tint_build_wgsl_reader) { - # action("tint_generate_ir_corpus") { - # testonly = true - # script = "${tint_src_dir}/cmd/fuzz/generate_tint_corpus.py" - # sources = [ "${script}" ] - # deps = [ - # ":tint_generate_wgsl_corpus", - # "${tint_src_dir}/cmd/fuzz/ir/as", - # ] - # args = [ - # rebase_path(fuzzer_corpus_wgsl_dir, root_build_dir), - # rebase_path(fuzzer_corpus_dir, root_build_dir), - # "--ir_as=" + - # rebase_path("${root_build_dir}/ir_fuzz_as", root_build_dir), - # ] - # outputs = [ fuzzer_corpus_ir_stamp ] - # } - # } + + if (tint_build_ir_fuzzer) { + if (tint_build_cmds && tint_build_wgsl_reader) { + action("tint_generate_ir_corpus") { + testonly = true + script = "${tint_src_dir}/cmd/fuzz/generate_tint_corpus.py" + sources = [ "${script}" ] + deps = [ + ":tint_generate_wgsl_corpus", + "${tint_src_dir}/cmd/fuzz/ir/as", + ] + args = [ + rebase_path(fuzzer_corpus_wgsl_dir, root_build_dir), + rebase_path(fuzzer_corpus_dir, root_build_dir), + "--ir_as=" + + rebase_path("${root_build_dir}/ir_fuzz_as", root_build_dir), + ] + outputs = [ fuzzer_corpus_ir_stamp ] + } + } + } } ############################################################################### @@ -355,7 +365,7 @@ if (tint_build_tintd) { deps += [ "${tint_src_dir}/cmd/tintd" ] } - if (tint_has_fuzzers && tint_build_ir_binary) { + if (tint_build_ir_fuzzer) { if (tint_build_wgsl_reader) { deps += [ "${tint_src_dir}/cmd/fuzz/ir/as" ] } @@ -370,9 +380,10 @@ deps = [] if (tint_has_fuzzers) { deps += [ "${tint_src_dir}/cmd/fuzz/wgsl" ] - if (tint_build_ir_binary) { - deps += [ "${tint_src_dir}/cmd/fuzz/ir" ] - } + } + + if (tint_build_ir_fuzzer) { + deps += [ "${tint_src_dir}/cmd/fuzz/ir" ] } }
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt index 88f6828..6f6b707 100644 --- a/src/tint/CMakeLists.txt +++ b/src/tint/CMakeLists.txt
@@ -58,6 +58,10 @@ endif() endif() +if (TINT_BUILD_IR_FUZZER AND NOT TINT_BUILD_IR_BINARY) + message(FATAL_ERROR "TINT_BUILD_IR_FUZZER requires TINT_BUILD_IR_BINARY") +endif() + ################################################################################ # Helper functions ################################################################################ @@ -68,6 +72,7 @@ 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_IR_BINARY=$<BOOL:${TINT_BUILD_IR_BINARY}>) + target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_IR_FUZZER=$<BOOL:${TINT_BUILD_IR_FUZZER}>) target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_IS_LINUX=$<BOOL:${TINT_BUILD_IS_LINUX}>) target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_IS_MAC=$<BOOL:${TINT_BUILD_IS_MAC}>) target_compile_definitions(${TARGET} PUBLIC -DTINT_BUILD_IS_WIN=$<BOOL:${TINT_BUILD_IS_WIN}>) @@ -509,15 +514,6 @@ target_link_libraries(${TARGET} PRIVATE absl::strings ) - - if(NOT MSVC) - target_compile_options(${TARGET} PUBLIC - -Wno-gcc-compat - -Wno-unreachable-code-break - -Wno-nullability-extension - ) - endif() - elseif(${DEPENDENCY} STREQUAL "dl") target_link_libraries(${TARGET} PRIVATE ${CMAKE_DL_LIBS}) elseif(${DEPENDENCY} STREQUAL "dxc-include")
diff --git a/src/tint/cmd/fuzz/generate_tint_corpus.py b/src/tint/cmd/fuzz/generate_tint_corpus.py index 3ade3b6..d4a4402 100644 --- a/src/tint/cmd/fuzz/generate_tint_corpus.py +++ b/src/tint/cmd/fuzz/generate_tint_corpus.py
@@ -348,12 +348,9 @@ logger.info(f"Generating IR corpus to \'{options.ir_corpus_dir}\' ...") create_clean_dir(options.ir_corpus_dir) - gen_env = os.environ.copy() - gen_env["ASAN_OPTIONS"] = "detect_odr_violation=0" - gen_cmd = [options.ir_as_bin, options.input_dir, options.ir_corpus_dir] logger.info(f"Invoking \'{' '.join(gen_cmd)}\'") - subprocess.run(gen_cmd, env=gen_env) + subprocess.run(gen_cmd) touch_stamp_file(options.output_dir, "ir") logger.info("Finished generating IR corpus")
diff --git a/src/tint/cmd/fuzz/ir/BUILD.bazel b/src/tint/cmd/fuzz/ir/BUILD.bazel index 1ff99b9..68cf24d 100644 --- a/src/tint/cmd/fuzz/ir/BUILD.bazel +++ b/src/tint/cmd/fuzz/ir/BUILD.bazel
@@ -53,6 +53,11 @@ ) alias( + name = "tint_build_ir_fuzzer", + actual = "//src/tint:tint_build_ir_fuzzer_true", +) + +alias( name = "tint_build_msl_writer", actual = "//src/tint:tint_build_msl_writer_true", ) @@ -73,10 +78,10 @@ ) selects.config_setting_group( - name = "tint_build_ir_binary_and_tint_build_wgsl_reader", + name = "tint_build_ir_binary_and_tint_build_ir_fuzzer", match_all = [ ":tint_build_ir_binary", - ":tint_build_wgsl_reader", + ":tint_build_ir_fuzzer", ], )
diff --git a/src/tint/cmd/fuzz/ir/BUILD.cfg b/src/tint/cmd/fuzz/ir/BUILD.cfg index 603f32f..84ec9c5 100644 --- a/src/tint/cmd/fuzz/ir/BUILD.cfg +++ b/src/tint/cmd/fuzz/ir/BUILD.cfg
@@ -1,14 +1,12 @@ { "fuzz_cmd": { - /* 'tint_build_wgsl_reader' is needed for generating the corpus. */ - "condition": "tint_build_ir_binary && tint_build_wgsl_reader", + "Condition": "tint_build_ir_binary && tint_build_ir_fuzzer", /* The Tint fuzzer executable for IR-input. */ "OutputName": "tint_ir_fuzzer", "AdditionalDependencies": { /* Depend on all the fuzz targets to pull them all together. */ "Internal": [ "**:fuzz", - "cmd/fuzz/ir/helpers", "utils/protos/ir_fuzz:proto" ], "External": [ "libprotobuf-mutator" ]
diff --git a/src/tint/cmd/fuzz/ir/BUILD.cmake b/src/tint/cmd/fuzz/ir/BUILD.cmake index acfa4b0..8b74183 100644 --- a/src/tint/cmd/fuzz/ir/BUILD.cmake +++ b/src/tint/cmd/fuzz/ir/BUILD.cmake
@@ -38,11 +38,11 @@ include(cmd/fuzz/ir/dis/BUILD.cmake) include(cmd/fuzz/ir/helpers/BUILD.cmake) -if(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER) +if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) ################################################################################ # Target: tint_cmd_fuzz_ir_fuzz_cmd # Kind: fuzz_cmd -# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER +# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER ################################################################################ tint_add_target(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd cmd/fuzz/ir/main_fuzz.cc @@ -50,7 +50,6 @@ tint_target_add_dependencies(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd tint_api_common - tint_cmd_fuzz_ir_helpers tint_cmd_fuzz_ir_fuzz tint_lang_core tint_lang_core_constant @@ -96,10 +95,15 @@ tint_target_add_dependencies(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd tint_lang_core_ir_binary tint_lang_core_ir_binary_fuzz - tint_utils_protos_ir_fuzz_proto ) endif(TINT_BUILD_IR_BINARY) +if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) + tint_target_add_dependencies(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd + tint_utils_protos_ir_fuzz_proto + ) +endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) + if(TINT_BUILD_MSL_WRITER) tint_target_add_dependencies(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd tint_lang_msl_writer_fuzz @@ -126,7 +130,7 @@ tint_target_set_output_name(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd "tint_ir_fuzzer") -endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER) +endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) ################################################################################ # Target: tint_cmd_fuzz_ir_fuzz # Kind: fuzz
diff --git a/src/tint/cmd/fuzz/ir/BUILD.gn b/src/tint/cmd/fuzz/ir/BUILD.gn index 2278b59..93969f6 100644 --- a/src/tint/cmd/fuzz/ir/BUILD.gn +++ b/src/tint/cmd/fuzz/ir/BUILD.gn
@@ -78,7 +78,7 @@ ] } } -if (tint_build_ir_binary && tint_build_wgsl_reader) { +if (tint_build_ir_binary && tint_build_ir_fuzzer) { tint_fuzzer_test("ir") { output_name = "tint_ir_fuzzer" sources = [ "main_fuzz.cc" ] @@ -87,7 +87,6 @@ "${tint_lpm_dir}:libprotobuf-mutator", "${tint_src_dir}/api/common", "${tint_src_dir}/cmd/fuzz/ir:fuzz", - "${tint_src_dir}/cmd/fuzz/ir/helpers", "${tint_src_dir}/lang/core", "${tint_src_dir}/lang/core/constant", "${tint_src_dir}/lang/core/ir", @@ -123,10 +122,13 @@ deps += [ "${tint_src_dir}/lang/core/ir/binary", "${tint_src_dir}/lang/core/ir/binary:fuzz", - "${tint_src_dir}/utils/protos/ir_fuzz:proto", ] } + if (tint_build_ir_binary && tint_build_ir_fuzzer) { + deps += [ "${tint_src_dir}/utils/protos/ir_fuzz:proto" ] + } + if (tint_build_msl_writer) { deps += [ "${tint_src_dir}/lang/msl/writer:fuzz" ] }
diff --git a/src/tint/cmd/fuzz/ir/as/BUILD.bazel b/src/tint/cmd/fuzz/ir/as/BUILD.bazel index a51909f..045a216 100644 --- a/src/tint/cmd/fuzz/ir/as/BUILD.bazel +++ b/src/tint/cmd/fuzz/ir/as/BUILD.bazel
@@ -72,6 +72,10 @@ ] + select({ ":tint_build_ir_binary": [ "//src/tint/lang/core/ir/binary", + ], + "//conditions:default": [], + }) + select({ + ":tint_build_ir_binary_and_tint_build_ir_fuzzer": [ "", ], "//conditions:default": [], @@ -96,6 +100,11 @@ ) alias( + name = "tint_build_ir_fuzzer", + actual = "//src/tint:tint_build_ir_fuzzer_true", +) + +alias( name = "tint_build_spv_reader", actual = "//src/tint:tint_build_spv_reader_true", ) @@ -106,10 +115,18 @@ ) selects.config_setting_group( - name = "tint_build_ir_binary_and_tint_build_wgsl_reader", + name = "tint_build_ir_binary_and_tint_build_ir_fuzzer", + match_all = [ + ":tint_build_ir_binary", + ":tint_build_ir_fuzzer", + ], +) +selects.config_setting_group( + name = "tint_build_ir_binary_and_tint_build_wgsl_reader_and_tint_build_ir_fuzzer", match_all = [ ":tint_build_ir_binary", ":tint_build_wgsl_reader", + ":tint_build_ir_fuzzer", ], )
diff --git a/src/tint/cmd/fuzz/ir/as/BUILD.cfg b/src/tint/cmd/fuzz/ir/as/BUILD.cfg index 5df91fa..4586cfc 100644 --- a/src/tint/cmd/fuzz/ir/as/BUILD.cfg +++ b/src/tint/cmd/fuzz/ir/as/BUILD.cfg
@@ -1,10 +1,7 @@ { "cmd": { - "Condition": "tint_build_ir_binary && tint_build_wgsl_reader", + "Condition": "tint_build_ir_binary && tint_build_wgsl_reader && tint_build_ir_fuzzer", "OutputName": "ir_fuzz_as", - "Internal": [ - "cmd/fuzz/ir/helpers", - "utils/protos/ir_fuzz:proto" - ], + "Internal": [ "utils/protos/ir_fuzz:proto" ], }, }
diff --git a/src/tint/cmd/fuzz/ir/as/BUILD.cmake b/src/tint/cmd/fuzz/ir/as/BUILD.cmake index de36d00..4f7ce4b 100644 --- a/src/tint/cmd/fuzz/ir/as/BUILD.cmake +++ b/src/tint/cmd/fuzz/ir/as/BUILD.cmake
@@ -34,11 +34,11 @@ # Do not modify this file directly ################################################################################ -if(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER) +if(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER AND TINT_BUILD_IR_FUZZER) ################################################################################ # Target: tint_cmd_fuzz_ir_as_cmd # Kind: cmd -# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER +# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER AND TINT_BUILD_IR_FUZZER ################################################################################ tint_add_target(tint_cmd_fuzz_ir_as_cmd cmd cmd/fuzz/ir/as/main.cc @@ -80,10 +80,15 @@ if(TINT_BUILD_IR_BINARY) tint_target_add_dependencies(tint_cmd_fuzz_ir_as_cmd cmd tint_lang_core_ir_binary - tint_utils_protos_ir_fuzz_proto ) endif(TINT_BUILD_IR_BINARY) +if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) + tint_target_add_dependencies(tint_cmd_fuzz_ir_as_cmd cmd + tint_utils_protos_ir_fuzz_proto + ) +endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) + if(TINT_BUILD_SPV_READER) tint_target_add_dependencies(tint_cmd_fuzz_ir_as_cmd cmd tint_lang_spirv_reader_common @@ -98,4 +103,4 @@ tint_target_set_output_name(tint_cmd_fuzz_ir_as_cmd cmd "ir_fuzz_as") -endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER) \ No newline at end of file +endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_READER AND TINT_BUILD_IR_FUZZER) \ No newline at end of file
diff --git a/src/tint/cmd/fuzz/ir/as/BUILD.gn b/src/tint/cmd/fuzz/ir/as/BUILD.gn index 181f221..dff119b 100644 --- a/src/tint/cmd/fuzz/ir/as/BUILD.gn +++ b/src/tint/cmd/fuzz/ir/as/BUILD.gn
@@ -38,7 +38,7 @@ import("../../../../../../scripts/tint_overrides_with_defaults.gni") import("${tint_src_dir}/tint.gni") -if (tint_build_ir_binary && tint_build_wgsl_reader) { +if (tint_build_ir_binary && tint_build_wgsl_reader && tint_build_ir_fuzzer) { tint_executable("as") { output_name = "ir_fuzz_as" sources = [ "main.cc" ] @@ -73,10 +73,11 @@ ] if (tint_build_ir_binary) { - deps += [ - "${tint_src_dir}/lang/core/ir/binary", - "${tint_src_dir}/utils/protos/ir_fuzz:proto", - ] + deps += [ "${tint_src_dir}/lang/core/ir/binary" ] + } + + if (tint_build_ir_binary && tint_build_ir_fuzzer) { + deps += [ "${tint_src_dir}/utils/protos/ir_fuzz:proto" ] } if (tint_build_spv_reader) {
diff --git a/src/tint/cmd/fuzz/ir/dis/BUILD.bazel b/src/tint/cmd/fuzz/ir/dis/BUILD.bazel index 7e052e7..4e27018 100644 --- a/src/tint/cmd/fuzz/ir/dis/BUILD.bazel +++ b/src/tint/cmd/fuzz/ir/dis/BUILD.bazel
@@ -71,6 +71,10 @@ ] + select({ ":tint_build_ir_binary": [ "//src/tint/lang/core/ir/binary", + ], + "//conditions:default": [], + }) + select({ + ":tint_build_ir_binary_and_tint_build_ir_fuzzer": [ "", ], "//conditions:default": [], @@ -106,6 +110,11 @@ ) alias( + name = "tint_build_ir_fuzzer", + actual = "//src/tint:tint_build_ir_fuzzer_true", +) + +alias( name = "tint_build_spv_reader", actual = "//src/tint:tint_build_spv_reader_true", ) @@ -129,9 +138,17 @@ ) selects.config_setting_group( - name = "tint_build_ir_binary_and_tint_build_wgsl_writer_and_tint_build_spv_writer", + name = "tint_build_ir_binary_and_tint_build_ir_fuzzer", match_all = [ ":tint_build_ir_binary", + ":tint_build_ir_fuzzer", + ], +) +selects.config_setting_group( + name = "tint_build_ir_binary_and_tint_build_ir_fuzzer_and_tint_build_wgsl_writer_and_tint_build_spv_writer", + match_all = [ + ":tint_build_ir_binary", + ":tint_build_ir_fuzzer", ":tint_build_wgsl_writer", ":tint_build_spv_writer", ],
diff --git a/src/tint/cmd/fuzz/ir/dis/BUILD.cfg b/src/tint/cmd/fuzz/ir/dis/BUILD.cfg index 2f03b95..93c3706 100644 --- a/src/tint/cmd/fuzz/ir/dis/BUILD.cfg +++ b/src/tint/cmd/fuzz/ir/dis/BUILD.cfg
@@ -1,6 +1,6 @@ { "cmd": { - "Condition": "tint_build_ir_binary && tint_build_wgsl_writer && tint_build_spv_writer", + "Condition": "tint_build_ir_binary && tint_build_ir_fuzzer && tint_build_wgsl_writer && tint_build_spv_writer", "OutputName": "ir_fuzz_dis", "Internal": [ "utils/protos/ir_fuzz:proto" ], },
diff --git a/src/tint/cmd/fuzz/ir/dis/BUILD.cmake b/src/tint/cmd/fuzz/ir/dis/BUILD.cmake index cf9ff9e..4c0599d 100644 --- a/src/tint/cmd/fuzz/ir/dis/BUILD.cmake +++ b/src/tint/cmd/fuzz/ir/dis/BUILD.cmake
@@ -34,11 +34,11 @@ # Do not modify this file directly ################################################################################ -if(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_SPV_WRITER) +if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_SPV_WRITER) ################################################################################ # Target: tint_cmd_fuzz_ir_dis_cmd # Kind: cmd -# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_SPV_WRITER +# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_SPV_WRITER ################################################################################ tint_add_target(tint_cmd_fuzz_ir_dis_cmd cmd cmd/fuzz/ir/dis/main.cc @@ -79,10 +79,15 @@ if(TINT_BUILD_IR_BINARY) tint_target_add_dependencies(tint_cmd_fuzz_ir_dis_cmd cmd tint_lang_core_ir_binary - tint_utils_protos_ir_fuzz_proto ) endif(TINT_BUILD_IR_BINARY) +if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) + tint_target_add_dependencies(tint_cmd_fuzz_ir_dis_cmd cmd + tint_utils_protos_ir_fuzz_proto + ) +endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) + if(TINT_BUILD_SPV_READER) tint_target_add_dependencies(tint_cmd_fuzz_ir_dis_cmd cmd tint_lang_spirv_reader_common @@ -110,4 +115,4 @@ tint_target_set_output_name(tint_cmd_fuzz_ir_dis_cmd cmd "ir_fuzz_dis") -endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_SPV_WRITER) \ No newline at end of file +endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND TINT_BUILD_WGSL_WRITER AND TINT_BUILD_SPV_WRITER) \ No newline at end of file
diff --git a/src/tint/cmd/fuzz/ir/dis/BUILD.gn b/src/tint/cmd/fuzz/ir/dis/BUILD.gn index aaa25d4..73fcdd8 100644 --- a/src/tint/cmd/fuzz/ir/dis/BUILD.gn +++ b/src/tint/cmd/fuzz/ir/dis/BUILD.gn
@@ -38,7 +38,8 @@ import("../../../../../../scripts/tint_overrides_with_defaults.gni") import("${tint_src_dir}/tint.gni") -if (tint_build_ir_binary && tint_build_wgsl_writer && tint_build_spv_writer) { +if (tint_build_ir_binary && tint_build_ir_fuzzer && tint_build_wgsl_writer && + tint_build_spv_writer) { tint_executable("dis") { output_name = "ir_fuzz_dis" sources = [ "main.cc" ] @@ -72,10 +73,11 @@ ] if (tint_build_ir_binary) { - deps += [ - "${tint_src_dir}/lang/core/ir/binary", - "${tint_src_dir}/utils/protos/ir_fuzz:proto", - ] + deps += [ "${tint_src_dir}/lang/core/ir/binary" ] + } + + if (tint_build_ir_binary && tint_build_ir_fuzzer) { + deps += [ "${tint_src_dir}/utils/protos/ir_fuzz:proto" ] } if (tint_build_spv_reader) {
diff --git a/src/tint/lang/hlsl/writer/writer_fuzz.cc b/src/tint/lang/hlsl/writer/writer_fuzz.cc index 6474b0e..c59bc9a 100644 --- a/src/tint/lang/hlsl/writer/writer_fuzz.cc +++ b/src/tint/lang/hlsl/writer/writer_fuzz.cc
@@ -35,7 +35,6 @@ #include "src/tint/lang/hlsl/writer/helpers/generate_bindings.h" #include "src/tint/lang/hlsl/writer/writer.h" #include "src/tint/utils/command/command.h" - namespace tint::hlsl::writer { namespace {
diff --git a/src/tint/tint.gni b/src/tint/tint.gni index 010d41d..aa56777 100644 --- a/src/tint/tint.gni +++ b/src/tint/tint.gni
@@ -77,7 +77,6 @@ if (!tint_has_protobuf) { error("Tint needs protobuf to build a proto library") } - proto_library(target_name) { forward_variables_from(invoker, "*", [ "configs" ]) proto_in_dir = "${tint_root_dir}" @@ -88,11 +87,13 @@ } ############################################################################### -# Executables +# Executables - only built when tint_build_cmds is enabled ############################################################################### -template("tint_executable") { - executable(target_name) { - forward_variables_from(invoker, "*") +if (tint_build_cmds) { + template("tint_executable") { + executable(target_name) { + forward_variables_from(invoker, "*") + } } } @@ -230,10 +231,9 @@ seed_corpus = fuzzer_corpus_wgsl_dir seed_corpus_deps = [ "${tint_src_dir}:tint_generate_wgsl_corpus" ] } else if (target_name == "ir") { - # TODO(409348527): Re-enable corpus generation - # deps += [ "${tint_src_dir}:tint_generate_ir_corpus" ] - # seed_corpus = fuzzer_corpus_ir_dir - # seed_corpus_deps = [ "${tint_src_dir}:tint_generate_ir_corpus" ] + deps += [ "${tint_src_dir}:tint_generate_ir_corpus" ] + seed_corpus = fuzzer_corpus_ir_dir + seed_corpus_deps = [ "${tint_src_dir}:tint_generate_ir_corpus" ] } else { assert(false, "unsupported tint fuzzer target") }
diff --git a/src/tint/utils/protos/ir_fuzz/BUILD.bazel b/src/tint/utils/protos/ir_fuzz/BUILD.bazel index c280213..f8afa55 100644 --- a/src/tint/utils/protos/ir_fuzz/BUILD.bazel +++ b/src/tint/utils/protos/ir_fuzz/BUILD.bazel
@@ -42,3 +42,16 @@ actual = "//src/tint:tint_build_ir_binary_true", ) +alias( + name = "tint_build_ir_fuzzer", + actual = "//src/tint:tint_build_ir_fuzzer_true", +) + +selects.config_setting_group( + name = "tint_build_ir_binary_and_tint_build_ir_fuzzer", + match_all = [ + ":tint_build_ir_binary", + ":tint_build_ir_fuzzer", + ], +) +
diff --git a/src/tint/utils/protos/ir_fuzz/BUILD.cfg b/src/tint/utils/protos/ir_fuzz/BUILD.cfg index f53fa37..9a6dd41 100644 --- a/src/tint/utils/protos/ir_fuzz/BUILD.cfg +++ b/src/tint/utils/protos/ir_fuzz/BUILD.cfg
@@ -1,8 +1,8 @@ { - "Condition": "tint_build_ir_binary", + "Condition": "tint_build_ir_binary && tint_build_ir_fuzzer", "proto": { "AdditionalDependencies": { - "Internal": [ "utils/protos/ir:proto" ] - }, + "Internal": [ "utils/protos/ir:proto" ] + } } }
diff --git a/src/tint/utils/protos/ir_fuzz/BUILD.cmake b/src/tint/utils/protos/ir_fuzz/BUILD.cmake index 98f627c..33dfa91 100644 --- a/src/tint/utils/protos/ir_fuzz/BUILD.cmake +++ b/src/tint/utils/protos/ir_fuzz/BUILD.cmake
@@ -34,11 +34,11 @@ # Do not modify this file directly ################################################################################ -if(TINT_BUILD_IR_BINARY) +if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) ################################################################################ # Target: tint_utils_protos_ir_fuzz_proto # Kind: proto -# Condition: TINT_BUILD_IR_BINARY +# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER ################################################################################ tint_add_target(tint_utils_protos_ir_fuzz_proto proto utils/protos/ir_fuzz/ir_fuzz.proto @@ -50,4 +50,4 @@ ) endif(TINT_BUILD_IR_BINARY) -endif(TINT_BUILD_IR_BINARY) \ No newline at end of file +endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER) \ No newline at end of file
diff --git a/src/tint/utils/protos/ir_fuzz/BUILD.gn b/src/tint/utils/protos/ir_fuzz/BUILD.gn index d98319f..644809b 100644 --- a/src/tint/utils/protos/ir_fuzz/BUILD.gn +++ b/src/tint/utils/protos/ir_fuzz/BUILD.gn
@@ -38,7 +38,7 @@ import("../../../../../scripts/tint_overrides_with_defaults.gni") import("${tint_src_dir}/tint.gni") -if (tint_build_ir_binary) { +if (tint_build_ir_binary && tint_build_ir_fuzzer) { tint_proto_library("proto") { sources = [ "ir_fuzz.proto" ] deps = []
diff --git a/testing b/testing index ae97051..1bd0da6 160000 --- a/testing +++ b/testing
@@ -1 +1 @@ -Subproject commit ae9705179f821d1dbd2b0a2ba7a6582faac7f86b +Subproject commit 1bd0da6657e330cf26ed0702b3f456393587ad7c
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index 3602599..15f40c8 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt
@@ -28,9 +28,6 @@ # Don't build testing in third_party dependencies set(BUILD_TESTING OFF) -# Needed by some dependencies in third_party -set(ABSL_ROOT_DIR ${DAWN_ABSEIL_DIR}) - # fetch_dawn_dependencies.py is an alternative to using depot_tools # It is particularly interesting when building dawn as a subdirectory in # a parent project that does not want to use depot_tools.
diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 04dc59d..f81f6c0 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp
@@ -1 +1 @@ -Subproject commit 04dc59d2c83238cb1fcb49083e5e416643a899ce +Subproject commit f81f6c011baf9b0132a5594c034fe0060820711d
diff --git a/third_party/fuzztest/BUILD.gn b/third_party/fuzztest/BUILD.gn deleted file mode 100644 index 3491eae..0000000 --- a/third_party/fuzztest/BUILD.gn +++ /dev/null
@@ -1,443 +0,0 @@ -# Copyright 2023 The Chromium Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# This file is a partial translation of -# //third_party/fuzztest/src/centipede/BUILD -# into BUILD.gn format. -# -# It contains support for both: -# - centipede, a way of building and running Chromium's existing fuzzing -# targets using an out-of-process runner. -# - fuzztest, a way of building new fuzzing targets using simpler macros. - -import("//build/config/android/config.gni") -import("//build/config/sanitizers/sanitizers.gni") -import("//build_overrides/build.gni") - -# Retain full optimization level for the engine parts independent of the -# optimizations set for the fuzz target. -fuzztest_remove_configs = fuzzing_engine_remove_configs + - [ "//build/config/compiler:default_optimization" ] -fuzztest_add_configs = fuzzing_engine_add_configs + [ - "//build/config/compiler:optimize", - ":fuzztest_internal_config", - ":fuzztest_public_config", - ] - -config("fuzztest_internal_config") { - cflags = [ - "-Wno-unused-private-field", - "-Wno-unreachable-code-return", - "-Wno-unused-but-set-variable", - "-Wno-shadow", - "-Wno-unused-const-variable", - "-Wno-unused-function", - "-Wno-inconsistent-missing-override", - "-Wno-unused-lambda-capture", - "-Wno-c++98-compat-extra-semi", - "-Wno-deprecated-declarations", - ] - - # int_utils.h depends on an SSE 4.2 intrinsic. - if (current_cpu == "x64") { - cflags += [ "-msse4.2" ] - } -} - -config("fuzztest_public_config") { - include_dirs = [ "src" ] - - defines = [ - # Riegeli is a library which centipede can use to store data more - # efficiently. It's not yet available in Chromium, so disable - # for now. - "CENTIPEDE_DISABLE_RIEGELI", - ] - if (!enable_fuzztest_fuzz) { - defines += [ - # In fuzztest's unit-test mode, coverage collection doesn't work - # with multiple DSOs, which Chromium needs even in non-component - # builds. Note that this doesn't impact actual fuzzing mode e.g. - # centipede. - "FUZZTEST_NO_LEGACY_COVERAGE", - ] - } - if (use_centipede) { - defines += [ "FUZZTEST_USE_CENTIPEDE" ] - } else if (use_fuzzing_engine && fuzzing_engine_supports_custom_main) { - defines += [ "FUZZTEST_COMPATIBILITY_MODE" ] - } - - # These flags will be applied to Chrome test code, so keep to the minimum - # set required to compile fuzztest's headers. Those required to compile - # fuzztest .cc files should go into fuzztest_internal_config - cflags = [ - "-Wno-sign-compare", # https://github.com/google/centipede/issues/487, - ] -} - -if (use_centipede) { - source_set("centipede_common") { - testonly = true - sources = [ - "src/centipede/binary_info.cc", - "src/centipede/binary_info.h", - "src/centipede/byte_array_mutator.cc", - "src/centipede/byte_array_mutator.h", - "src/centipede/command.cc", - "src/centipede/control_flow.cc", - "src/centipede/execution_metadata.cc", - "src/centipede/execution_metadata.h", - "src/centipede/feature.cc", - "src/centipede/feature.h", - "src/centipede/knobs.cc", - "src/centipede/knobs.h", - "src/centipede/pc_info.cc", - "src/centipede/pc_info.h", - "src/centipede/reverse_pc_table.h", - "src/centipede/runner_cmp_trace.h", - "src/centipede/runner_request.cc", - "src/centipede/runner_request.h", - "src/centipede/runner_result.cc", - "src/centipede/runner_result.h", - "src/centipede/shared_memory_blob_sequence.cc", - "src/centipede/shared_memory_blob_sequence.h", - "src/centipede/stop.cc", - "src/centipede/stop.h", - "src/centipede/symbol_table.cc", - "src/centipede/util.cc", - ] - deps = [ "//third_party/abseil-cpp:absl_full" ] - public_deps = [ ":common" ] - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - } - - source_set("centipede_runner_no_main") { - testonly = true - sources = [ - "src/centipede/runner.cc", - "src/centipede/runner.h", - "src/centipede/runner_dl_info.cc", - "src/centipede/runner_dl_info.h", - "src/centipede/runner_fork_server.cc", - "src/centipede/runner_interceptors.cc", - "src/centipede/runner_interface.h", - "src/centipede/runner_sancov.cc", - "src/centipede/runner_sancov_object.cc", - "src/centipede/runner_sancov_object.h", - "src/centipede/runner_utils.cc", - "src/centipede/runner_utils.h", - ] - - deps = [ - ":centipede_common", - "//third_party/abseil-cpp:absl_full", - ] - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - - # Ensure that the centipede driver executable is also built - # whenever we build any centipede-based fuzzer - data_deps = [ ":centipede" ] - - # sancov symbols need to be exported for centipede to work correctly with - # multi-dso. - configs -= [ "//build/config/gcc:symbol_visibility_hidden" ] - configs += [ "//build/config/gcc:symbol_visibility_default" ] - } - - source_set("centipede_runner_main") { - testonly = true - deps = [ - ":centipede_runner_no_main", - "//third_party/abseil-cpp:absl", - ] - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - sources = [ "src/centipede/runner_main.cc" ] - } - - # Parts of centipede which are used for the external execution executable, - # but are also now built into fuzztests themselves so that they no longer - # depend on an external runner - source_set("centipede_executable_engine") { - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - include_dirs = [ "src" ] - testonly = true - public_deps = [ ":centipede_common" ] - if (is_linux) { - libs = [ "atomic" ] - } - deps = [ - ":fuzztest_internal", - "//third_party/abseil-cpp:absl_full", - ] - sources = [ - "src/centipede/analyze_corpora.cc", - "src/centipede/call_graph.cc", - "src/centipede/centipede.cc", - "src/centipede/centipede_callbacks.cc", - "src/centipede/centipede_default_callbacks.cc", - "src/centipede/centipede_interface.cc", - "src/centipede/config_file.cc", - "src/centipede/config_init.cc", - "src/centipede/config_util.cc", - "src/centipede/corpus.cc", - "src/centipede/corpus_io.cc", - "src/centipede/coverage.cc", - "src/centipede/distill.cc", - "src/centipede/distill.h", - "src/centipede/environment.cc", - "src/centipede/feature_set.cc", - "src/centipede/feature_set.h", - "src/centipede/fuzztest_mutator.cc", - "src/centipede/fuzztest_mutator.h", - "src/centipede/minimize_crash.cc", - "src/centipede/periodic_action.cc", - "src/centipede/periodic_action.h", - "src/centipede/resource_pool.cc", - "src/centipede/rusage_profiler.cc", - "src/centipede/rusage_stats.cc", - "src/centipede/seed_corpus_maker_lib.cc", - "src/centipede/seed_corpus_maker_lib.h", - "src/centipede/stats.cc", - "src/centipede/workdir.cc", - "src/centipede/workdir.h", - ] - } - - # The centipede out-of-process runner executable. - executable("centipede") { - testonly = true - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - deps = [ - ":centipede_executable_engine", - "//third_party/abseil-cpp:absl_full", - ] - sources = [ - "src/centipede/centipede_main.cc", - "src/centipede/environment_flags.cc", - "src/centipede/environment_flags.h", - ] - } -} - -if (use_centipede || enable_fuzztest_fuzz) { - source_set("centipede_weak_sancov_stubs") { - sources = [ "src/centipede/weak_sancov_stubs.cc" ] - } -} - -# Parts of fuzztest internals which are safe to include in all sorts -# of test-related code, including other fuzzers. -source_set("fuzztest_internal") { - if (defined(android_ndk_major_version) && android_ndk_major_version < 28) { - # Android API level 28+ has posix_spawnp - defines = [ "FUZZTEST_DISABLE_SUBPROCESS" ] - } - - sources = [ - "src/fuzztest/domain.h", - "src/fuzztest/domain_core.h", - "src/fuzztest/fuzztest.h", - "src/fuzztest/fuzztest_macros.cc", - "src/fuzztest/fuzztest_macros.h", - "src/fuzztest/googletest_fixture_adapter.h", - "src/fuzztest/internal/any.h", - "src/fuzztest/internal/centipede_adaptor.h", - "src/fuzztest/internal/compatibility_mode.h", - "src/fuzztest/internal/configuration.cc", - "src/fuzztest/internal/configuration.h", - "src/fuzztest/internal/corpus_database.cc", - "src/fuzztest/internal/corpus_database.h", - "src/fuzztest/internal/coverage.cc", - "src/fuzztest/internal/coverage.h", - "src/fuzztest/internal/domains/absl_helpers.h", - "src/fuzztest/internal/domains/aggregate_of_impl.h", - "src/fuzztest/internal/domains/arbitrary_impl.h", - "src/fuzztest/internal/domains/bit_flag_combination_of_impl.h", - "src/fuzztest/internal/domains/container_mutation_helpers.h", - "src/fuzztest/internal/domains/container_of_impl.h", - "src/fuzztest/internal/domains/domain_base.cc", - "src/fuzztest/internal/domains/domain_base.h", - "src/fuzztest/internal/domains/element_of_impl.h", - "src/fuzztest/internal/domains/filter_impl.h", - "src/fuzztest/internal/domains/flat_map_impl.h", - "src/fuzztest/internal/domains/in_grammar_impl.cc", - "src/fuzztest/internal/domains/in_grammar_impl.h", - "src/fuzztest/internal/domains/in_range_impl.h", - "src/fuzztest/internal/domains/in_regexp_impl.h", - "src/fuzztest/internal/domains/map_impl.h", - "src/fuzztest/internal/domains/one_of_impl.h", - "src/fuzztest/internal/domains/optional_of_impl.h", - "src/fuzztest/internal/domains/protobuf_domain_impl.h", - "src/fuzztest/internal/domains/regexp_dfa.cc", - "src/fuzztest/internal/domains/regexp_dfa.h", - "src/fuzztest/internal/domains/serialization_helpers.h", - "src/fuzztest/internal/domains/smart_pointer_of_impl.h", - "src/fuzztest/internal/domains/unique_elements_container_of_impl.h", - "src/fuzztest/internal/domains/value_mutation_helpers.h", - "src/fuzztest/internal/domains/variant_of_impl.h", - "src/fuzztest/internal/fixture_driver.cc", - "src/fuzztest/internal/fixture_driver.h", - "src/fuzztest/internal/googletest_adaptor.cc", - "src/fuzztest/internal/googletest_adaptor.h", - "src/fuzztest/internal/io.cc", - "src/fuzztest/internal/io.h", - "src/fuzztest/internal/logging.cc", - "src/fuzztest/internal/logging.h", - "src/fuzztest/internal/meta.h", - "src/fuzztest/internal/registration.h", - "src/fuzztest/internal/registry.cc", - "src/fuzztest/internal/registry.h", - "src/fuzztest/internal/runtime.cc", - "src/fuzztest/internal/runtime.h", - "src/fuzztest/internal/seed_seq.cc", - "src/fuzztest/internal/seed_seq.h", - "src/fuzztest/internal/serialization.cc", - "src/fuzztest/internal/serialization.h", - "src/fuzztest/internal/status.cc", - "src/fuzztest/internal/status.h", - "src/fuzztest/internal/subprocess.cc", - "src/fuzztest/internal/subprocess.h", - "src/fuzztest/internal/table_of_recent_compares.h", - "src/fuzztest/internal/type_support.cc", - "src/fuzztest/internal/type_support.h", - ] - - testonly = true - - deps = [ - "//testing/gtest", - "//third_party/abseil-cpp:absl_full", - ] - - # TODO(https://crbug.com/337736622): Remove this after M129 when V8 moves - # protobuf back to //third_party/protobuf. - if (!defined(protobuf_target_prefix)) { - protobuf_target_prefix = "//third_party/protobuf" - } - - public_deps = [ - ":common", - "//third_party/abseil-cpp:absl", - - # For RE2 mutators. It's questionable whether we want to pull this library - # into every fuzztest target, but this is the approach used in other - # fuzztest contexts so we'll do the same - "//third_party/re2", - - # For protobuf mutators - "$protobuf_target_prefix:protobuf_lite", - ] - - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs -} - -source_set("common") { - sources = [ - "src/common/bazel.cc", - "src/common/bazel.h", - "src/common/blob_file.cc", - "src/common/blob_file.h", - "src/common/defs.h", - "src/common/hash.cc", - "src/common/hash.h", - "src/common/logging.h", - "src/common/remote_file.cc", - "src/common/remote_file.h", - "src/common/remote_file_oss.cc", - "src/common/sha1.cc", - "src/common/sha1.h", - "src/common/temp_dir.cc", - "src/common/temp_dir.h", - ] - - deps = [ "//third_party/abseil-cpp:absl_full" ] - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs -} - -# Fuzztest support. This allows regular test executables to contain -# a FUZZ_TEST. Such tests/executables should depend directly on this target; -# at this time there's no need to use a special gn template for fuzz tests. -# The resulting executables may be used in a variety of modes: -# ./my_test # just runs. The FUZZ_TEST runs for 1 second. -# ./my_test --fuzz= # runs fuzzing indefinitely. -# # Requires enable_fuzztest_fuzz gn argument. -# ./my_test --fuzz= # If use_libfuzzer gn argument is enabled, this -# # causes the test to emulate a regular libfuzzer fuzzer. -# centipede --binary=./mytest # Allows the binary to be run using centipede -# # out of process execution environment. -# # Requires use_centipede gn argument. -# Nothing in this target depends upon //testing/libfuzzer:is_a_fuzz_target, -# so dependent binaries won't directly be built by the fuzzing build job. -# However, any uses of the test("...") template which declare that they -# have fuzztests will cause wrapper executables to be built (because they -# will depend upon :is_a_fuzz_target). Such executables will have a data_dep -# on the underlying fuzztest executable, so it will get built. -source_set("fuzztest") { - deps = [ - "//testing/gtest", - "//third_party/abseil-cpp:absl_full", - ] - if (use_centipede) { - # If we are building for centipede, we want to make fuzztest executables - # which can be used as centipede fuzzers. - sources = [ "src/fuzztest/internal/centipede_adaptor.cc" ] - deps += [ - ":centipede_executable_engine", - ":centipede_runner_no_main", - ] - } else if (use_fuzzing_engine && fuzzing_engine_supports_custom_main) { - # Typically, libfuzzer. - sources = [ "src/fuzztest/internal/compatibility_mode.cc" ] - deps += [ "//testing/libfuzzer:fuzzing_engine_no_main_core" ] - } - public_deps = [ ":fuzztest_internal" ] - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - public_configs = [ ":fuzztest_public_config" ] - testonly = true -} - -# Depend on this if you're a test runner executable (or similar) -# with its own main() but you need to call InitFuzzTest. -source_set("init_fuzztest") { - sources = [ - "src/fuzztest/init_fuzztest.cc", - "src/fuzztest/init_fuzztest.h", - ] - deps = [ - "//testing/gtest", - "//third_party/abseil-cpp:absl_full", - ] - public_deps = [ ":fuzztest_internal" ] - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - testonly = true -} - -# Depend upon this if you need a main() function -source_set("fuzztest_gtest_main") { - deps = [ - "//testing/gtest", - "//third_party/abseil-cpp:absl_full", - ] - sources = [ "src/fuzztest/fuzztest_gtest_main.cc" ] - configs -= fuzztest_remove_configs - configs += fuzztest_add_configs - public_deps = [ - ":init_fuzztest", - "//testing/gtest", - ] - if (use_centipede) { - data_deps = [ ":centipede" ] - } - testonly = true -}
diff --git a/third_party/fuzztest/src b/third_party/fuzztest/src deleted file mode 160000 index 89408f9..0000000 --- a/third_party/fuzztest/src +++ /dev/null
@@ -1 +0,0 @@ -Subproject commit 89408f91d2f1101fe2d79199e7ed994a4d197eb8
diff --git a/third_party/gn/abseil-cpp/BUILD.gn b/third_party/gn/abseil-cpp/BUILD.gn new file mode 100644 index 0000000..32e8369 --- /dev/null +++ b/third_party/gn/abseil-cpp/BUILD.gn
@@ -0,0 +1,1063 @@ +# Copyright 2021 The Dawn & Tint Authors +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import("../../../scripts/dawn_overrides_with_defaults.gni") + +import("${dawn_root}/scripts/dawn_features.gni") + +config("absl_config") { + if (!build_with_chromium && is_clang) { + cflags = [ + # Allow the use of enable_if() + "-Wno-gcc-compat", + "-Wno-unreachable-code-break", + ] + } + + include_dirs = [ "${dawn_abseil_dir}" ] +} + +template("absl_source_set") { + source_set(target_name) { + forward_variables_from(invoker, "*") + + if (!defined(public_configs)) { + public_configs = [] + } + public_configs += [ ":absl_config" ] + } +} + +# +# absl/algorithm +# + +absl_source_set("algorithm") { + public = [ "${dawn_abseil_dir}/absl/algorithm/algorithm.h" ] + deps = [ ":config" ] +} + +absl_source_set("container") { + public = [ "${dawn_abseil_dir}/absl/algorithm/container.h" ] + deps = [ + ":algorithm", + ":core_headers", + ":nullability", + ":type_traits", + ] +} + +# +# absl/base +# + +absl_source_set("atomic_hook") { + public = [ "${dawn_abseil_dir}/absl/base/internal/atomic_hook.h" ] + public_deps = [ + ":config", + ":core_headers", + ] +} + +absl_source_set("base") { + sources = [ + "${dawn_abseil_dir}/absl/base/internal/cycleclock.cc", + "${dawn_abseil_dir}/absl/base/internal/spinlock.cc", + "${dawn_abseil_dir}/absl/base/internal/sysinfo.cc", + "${dawn_abseil_dir}/absl/base/internal/thread_identity.cc", + "${dawn_abseil_dir}/absl/base/internal/unscaledcycleclock.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/base/call_once.h", + "${dawn_abseil_dir}/absl/base/casts.h", + "${dawn_abseil_dir}/absl/base/internal/cycleclock.h", + "${dawn_abseil_dir}/absl/base/internal/low_level_scheduling.h", + "${dawn_abseil_dir}/absl/base/internal/per_thread_tls.h", + "${dawn_abseil_dir}/absl/base/internal/spinlock.h", + "${dawn_abseil_dir}/absl/base/internal/sysinfo.h", + "${dawn_abseil_dir}/absl/base/internal/thread_identity.h", + "${dawn_abseil_dir}/absl/base/internal/tsan_mutex_interface.h", + "${dawn_abseil_dir}/absl/base/internal/unscaledcycleclock.h", + ] + + public_deps = [ + ":atomic_hook", + ":base_internal", + ":config", + ":core_headers", + ":cycleclock_internal", + ":dynamic_annotations", + ":log_severity", + ":nullability", + ":raw_logging_internal", + ":spinlock_wait", + ":type_traits", + ] +} + +absl_source_set("base_internal") { + public = [ + "${dawn_abseil_dir}/absl/base/internal/hide_ptr.h", + "${dawn_abseil_dir}/absl/base/internal/identity.h", + "${dawn_abseil_dir}/absl/base/internal/inline_variable.h", + "${dawn_abseil_dir}/absl/base/internal/invoke.h", + "${dawn_abseil_dir}/absl/base/internal/scheduling_mode.h", + ] + public_deps = [ + ":config", + ":type_traits", + ] +} + +absl_source_set("config") { + public = [ + "${dawn_abseil_dir}/absl/base/config.h", + "${dawn_abseil_dir}/absl/base/options.h", + "${dawn_abseil_dir}/absl/base/policy_checks.h", + ] +} + +absl_source_set("core_headers") { + public = [ + "${dawn_abseil_dir}/absl/base/attributes.h", + "${dawn_abseil_dir}/absl/base/const_init.h", + "${dawn_abseil_dir}/absl/base/macros.h", + "${dawn_abseil_dir}/absl/base/optimization.h", + "${dawn_abseil_dir}/absl/base/port.h", + "${dawn_abseil_dir}/absl/base/thread_annotations.h", + ] + public_deps = [ ":config" ] +} + +absl_source_set("cycleclock_internal") { + public = [ + "${dawn_abseil_dir}/absl/base/internal/cycleclock_config.h", + "${dawn_abseil_dir}/absl/base/internal/unscaledcycleclock_config.h", + ] + deps = [ + ":base_internal", + ":config", + ] +} + +absl_source_set("dynamic_annotations") { + public = [ "${dawn_abseil_dir}/absl/base/dynamic_annotations.h" ] + + deps = [ + ":config", + ":core_headers", + ] +} + +absl_source_set("endian") { + public = [ + "${dawn_abseil_dir}/absl/base/internal/endian.h", + "${dawn_abseil_dir}/absl/base/internal/unaligned_access.h", + ] + public_deps = [ + ":base", + ":config", + ":core_headers", + ] +} + +absl_source_set("errno_saver") { + public = [ "${dawn_abseil_dir}/absl/base/internal/errno_saver.h" ] + public_deps = [ ":config" ] +} + +absl_source_set("log_severity") { + sources = [ "${dawn_abseil_dir}/absl/base/log_severity.cc" ] + public = [ "${dawn_abseil_dir}/absl/base/log_severity.h" ] + public_deps = [ + ":config", + ":core_headers", + ] +} + +absl_source_set("malloc_internal") { + sources = [ "${dawn_abseil_dir}/absl/base/internal/low_level_alloc.cc" ] + public = [ + "${dawn_abseil_dir}/absl/base/internal/direct_mmap.h", + "${dawn_abseil_dir}/absl/base/internal/low_level_alloc.h", + ] + public_deps = [ + ":base", + ":base_internal", + ":config", + ":core_headers", + ":dynamic_annotations", + ":raw_logging_internal", + ] +} + +absl_source_set("nullability") { + sources = [ "${dawn_abseil_dir}/absl/base/internal/nullability_impl.h" ] + public = [ "${dawn_abseil_dir}/absl/base/nullability.h" ] + deps = [ + ":core_headers", + ":type_traits", + ] +} + +absl_source_set("prefetch") { + public = [ "${dawn_abseil_dir}/absl/base/prefetch.h" ] + deps = [ + ":config", + ":core_headers", + ] +} + +absl_source_set("raw_logging_internal") { + sources = [ "${dawn_abseil_dir}/absl/base/internal/raw_logging.cc" ] + public = [ "${dawn_abseil_dir}/absl/base/internal/raw_logging.h" ] + public_deps = [ + ":atomic_hook", + ":core_headers", + ":errno_saver", + ":log_severity", + ] +} + +absl_source_set("spinlock_wait") { + sources = [ + "${dawn_abseil_dir}/absl/base/internal/spinlock_akaros.inc", + "${dawn_abseil_dir}/absl/base/internal/spinlock_linux.inc", + "${dawn_abseil_dir}/absl/base/internal/spinlock_posix.inc", + "${dawn_abseil_dir}/absl/base/internal/spinlock_wait.cc", + "${dawn_abseil_dir}/absl/base/internal/spinlock_win32.inc", + ] + public = [ "${dawn_abseil_dir}/absl/base/internal/spinlock_wait.h" ] + deps = [ + ":base_internal", + ":core_headers", + ":errno_saver", + ] +} + +absl_source_set("throw_delegate") { + sources = [ "${dawn_abseil_dir}/absl/base/internal/throw_delegate.cc" ] + public = [ "${dawn_abseil_dir}/absl/base/internal/throw_delegate.h" ] + public_deps = [ ":raw_logging_internal" ] +} + +# +# absl/container +# + +absl_source_set("common") { + public = [ "${dawn_abseil_dir}/absl/container/internal/common.h" ] + deps = [ + ":optional", + ":type_traits", + ] +} + +absl_source_set("common_policy_traits") { + public = + [ "${dawn_abseil_dir}/absl/container/internal/common_policy_traits.h" ] + deps = [ ":type_traits" ] +} + +absl_source_set("compressed_tuple") { + public = [ "${dawn_abseil_dir}/absl/container/internal/compressed_tuple.h" ] + deps = [ ":utility" ] +} + +absl_source_set("container_memory") { + public = [ "${dawn_abseil_dir}/absl/container/internal/container_memory.h" ] + deps = [ + ":config", + ":memory", + ":type_traits", + ":utility", + ] +} + +absl_source_set("fixed_array") { + public = [ "${dawn_abseil_dir}/absl/container/fixed_array.h" ] + deps = [ + ":algorithm", + ":compressed_tuple", + ":config", + ":core_headers", + ":dynamic_annotations", + ":memory", + ":throw_delegate", + ] +} + +absl_source_set("flat_hash_map") { + public = [ "${dawn_abseil_dir}/absl/container/flat_hash_map.h" ] + deps = [ + ":container", + ":container_memory", + ":core_headers", + ":hash_function_defaults", + ":memory", + ":raw_hash_map", + ] +} + +absl_source_set("flat_hash_set") { + public = [ "${dawn_abseil_dir}/absl/container/flat_hash_set.h" ] + deps = [ + ":container", + ":container_memory", + ":core_headers", + ":hash_function_defaults", + ":memory", + ":raw_hash_set", + ] +} + +absl_source_set("hash_function_defaults") { + public = + [ "${dawn_abseil_dir}/absl/container/internal/hash_function_defaults.h" ] + deps = [ + ":common", + ":config", + ":hash", + ":string_view", + ":type_traits", + ] +} + +absl_source_set("hash_policy_traits") { + public = [ "${dawn_abseil_dir}/absl/container/internal/hash_policy_traits.h" ] + deps = [ + ":common_policy_traits", + ":type_traits", + ] +} + +absl_source_set("hashtable_debug_hooks") { + public = + [ "${dawn_abseil_dir}/absl/container/internal/hashtable_debug_hooks.h" ] + deps = [ ":config" ] +} + +absl_source_set("hashtablez_sampler") { + public = [ "${dawn_abseil_dir}/absl/container/internal/hashtablez_sampler.h" ] + sources = [ + "${dawn_abseil_dir}/absl/container/internal/hashtablez_sampler.cc", + "${dawn_abseil_dir}/absl/container/internal/hashtablez_sampler_force_weak_definition.cc", + ] + deps = [ + ":base", + ":config", + ":core_headers", + ":exponential_biased", + ":memory", + ":no_destructor", + ":raw_logging_internal", + ":sample_recorder", + ":stacktrace", + ":synchronization", + ":time", + ":utility", + ] +} + +absl_source_set("inlined_vector") { + public = [ "${dawn_abseil_dir}/absl/container/inlined_vector.h" ] + deps = [ + ":algorithm", + ":core_headers", + ":inlined_vector_internal", + ":memory", + ":throw_delegate", + ":type_traits", + ] +} + +absl_source_set("inlined_vector_internal") { + public = [ "${dawn_abseil_dir}/absl/container/internal/inlined_vector.h" ] + deps = [ + ":base_internal", + ":compressed_tuple", + ":config", + ":core_headers", + ":memory", + ":span", + ":type_traits", + ] +} + +absl_source_set("no_destructor") { + public = [ "${dawn_abseil_dir}/absl/base/no_destructor.h" ] + deps = [ + ":config", + ":nullability", + ] +} + +absl_source_set("raw_hash_map") { + public = [ "${dawn_abseil_dir}/absl/container/internal/raw_hash_map.h" ] + deps = [ + ":container_memory", + ":raw_hash_set", + ":throw_delegate", + ] +} + +absl_source_set("raw_hash_set") { + sources = [ "${dawn_abseil_dir}/absl/container/internal/raw_hash_set.cc" ] + public = [ "${dawn_abseil_dir}/absl/container/internal/raw_hash_set.h" ] + deps = [ + ":bits", + ":common", + ":compressed_tuple", + ":config", + ":container_memory", + ":core_headers", + ":dynamic_annotations", + ":endian", + ":hash", + ":hash_policy_traits", + ":hashtable_debug_hooks", + ":hashtablez_sampler", + ":memory", + ":prefetch", + ":raw_logging_internal", + ":type_traits", + ":utility", + ] +} + +# +# absl/debugging +# + +absl_source_set("debugging_internal") { + sources = [ + "${dawn_abseil_dir}/absl/debugging/internal/address_is_readable.cc", + "${dawn_abseil_dir}/absl/debugging/internal/elf_mem_image.cc", + "${dawn_abseil_dir}/absl/debugging/internal/vdso_support.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/debugging/internal/address_is_readable.h", + "${dawn_abseil_dir}/absl/debugging/internal/elf_mem_image.h", + "${dawn_abseil_dir}/absl/debugging/internal/vdso_support.h", + ] + deps = [ + ":config", + ":core_headers", + ":dynamic_annotations", + ":errno_saver", + ":raw_logging_internal", + ] +} + +absl_source_set("demangle_internal") { + sources = [ + "${dawn_abseil_dir}/absl/debugging/internal/demangle.cc", + "${dawn_abseil_dir}/absl/debugging/internal/demangle_rust.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/debugging/internal/demangle.h", + "${dawn_abseil_dir}/absl/debugging/internal/demangle_rust.h", + ] + deps = [ + ":base", + ":config", + ":core_headers", + ] +} + +absl_source_set("stacktrace") { + sources = [ + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_aarch64-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_arm-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_config.h", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_emscripten-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_generic-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_powerpc-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_riscv-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_unimplemented-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_win32-inl.inc", + "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_x86-inl.inc", + "${dawn_abseil_dir}/absl/debugging/stacktrace.cc", + ] + public = [ "${dawn_abseil_dir}/absl/debugging/stacktrace.h" ] + deps = [ + ":config", + ":core_headers", + ":debugging_internal", + ":dynamic_annotations", + ":raw_logging_internal", + ] +} + +# +# absl/functional +# + +absl_source_set("any_invocable") { + sources = [ "${dawn_abseil_dir}/absl/functional/internal/any_invocable.h" ] + public = [ "${dawn_abseil_dir}/absl/functional/any_invocable.h" ] + deps = [ + ":base_internal", + ":config", + ":core_headers", + ":type_traits", + ":utility", + ] +} + +absl_source_set("function_ref") { + sources = [ "${dawn_abseil_dir}/absl/functional/internal/function_ref.h" ] + public = [ "${dawn_abseil_dir}/absl/functional/function_ref.h" ] + deps = [ + ":any_invocable", + ":base_internal", + ":core_headers", + ":type_traits", + ] +} + +# +# absl/hash +# + +absl_source_set("city") { + public = [ "${dawn_abseil_dir}/absl/hash/internal/city.h" ] + sources = [ "${dawn_abseil_dir}/absl/hash/internal/city.cc" ] + deps = [ + ":config", + ":core_headers", + ":endian", + ] +} + +absl_source_set("hash") { + sources = [ + "${dawn_abseil_dir}/absl/hash/internal/hash.cc", + "${dawn_abseil_dir}/absl/hash/internal/hash.h", + ] + public = [ "${dawn_abseil_dir}/absl/hash/hash.h" ] + deps = [ + ":bits", + ":city", + ":config", + ":core_headers", + ":endian", + ":fixed_array", + ":function_ref", + ":int128", + ":low_level_hash", + ":optional", + ":string_view", + ":type_traits", + ":utility", + ":variant", + ] +} + +absl_source_set("low_level_hash") { + public = [ "${dawn_abseil_dir}/absl/hash/internal/low_level_hash.h" ] + sources = [ "${dawn_abseil_dir}/absl/hash/internal/low_level_hash.cc" ] + deps = [ + ":config", + ":endian", + ":int128", + ":prefetch", + ] +} + +# +# absl/memory +# + +absl_source_set("memory") { + public = [ "${dawn_abseil_dir}/absl/memory/memory.h" ] + deps = [ + ":core_headers", + ":type_traits", + ] +} + +# +# absl/meta +# + +absl_source_set("type_traits") { + public = [ "${dawn_abseil_dir}/absl/meta/type_traits.h" ] + deps = [ + ":config", + ":core_headers", + ] +} + +# +# absl/numeric +# + +absl_source_set("bits") { + public = [ + "${dawn_abseil_dir}/absl/numeric/bits.h", + "${dawn_abseil_dir}/absl/numeric/internal/bits.h", + ] + deps = [ + ":config", + ":core_headers", + ] +} + +absl_source_set("int128") { + sources = [ + "${dawn_abseil_dir}/absl/numeric/int128.cc", + "${dawn_abseil_dir}/absl/numeric/int128_have_intrinsic.inc", + "${dawn_abseil_dir}/absl/numeric/int128_no_intrinsic.inc", + ] + public = [ "${dawn_abseil_dir}/absl/numeric/int128.h" ] + deps = [ + ":bits", + ":config", + ":core_headers", + ] +} + +# +# absl/profiling +# + +absl_source_set("exponential_biased") { + sources = + [ "${dawn_abseil_dir}/absl/profiling/internal/exponential_biased.cc" ] + public = [ "${dawn_abseil_dir}/absl/profiling/internal/exponential_biased.h" ] + deps = [ + ":config", + ":core_headers", + ] +} + +absl_source_set("sample_recorder") { + public = [ "${dawn_abseil_dir}/absl/profiling/internal/sample_recorder.h" ] + deps = [ + ":config", + ":core_headers", + ":synchronization", + ":time", + ] +} + +# +# absl/strings +# + +absl_source_set("strings") { + sources = [ + "${dawn_abseil_dir}/absl/strings/ascii.cc", + "${dawn_abseil_dir}/absl/strings/charconv.cc", + "${dawn_abseil_dir}/absl/strings/escaping.cc", + "${dawn_abseil_dir}/absl/strings/internal/charconv_bigint.cc", + "${dawn_abseil_dir}/absl/strings/internal/charconv_bigint.h", + "${dawn_abseil_dir}/absl/strings/internal/charconv_parse.cc", + "${dawn_abseil_dir}/absl/strings/internal/charconv_parse.h", + "${dawn_abseil_dir}/absl/strings/internal/memutil.cc", + "${dawn_abseil_dir}/absl/strings/internal/memutil.h", + "${dawn_abseil_dir}/absl/strings/internal/stl_type_traits.h", + "${dawn_abseil_dir}/absl/strings/internal/str_join_internal.h", + "${dawn_abseil_dir}/absl/strings/internal/str_split_internal.h", + "${dawn_abseil_dir}/absl/strings/match.cc", + "${dawn_abseil_dir}/absl/strings/numbers.cc", + "${dawn_abseil_dir}/absl/strings/str_cat.cc", + "${dawn_abseil_dir}/absl/strings/str_replace.cc", + "${dawn_abseil_dir}/absl/strings/str_split.cc", + "${dawn_abseil_dir}/absl/strings/substitute.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/strings/ascii.h", + "${dawn_abseil_dir}/absl/strings/charconv.h", + "${dawn_abseil_dir}/absl/strings/escaping.h", + "${dawn_abseil_dir}/absl/strings/internal/string_constant.h", + "${dawn_abseil_dir}/absl/strings/match.h", + "${dawn_abseil_dir}/absl/strings/numbers.h", + "${dawn_abseil_dir}/absl/strings/str_cat.h", + "${dawn_abseil_dir}/absl/strings/str_join.h", + "${dawn_abseil_dir}/absl/strings/str_replace.h", + "${dawn_abseil_dir}/absl/strings/str_split.h", + "${dawn_abseil_dir}/absl/strings/strip.h", + "${dawn_abseil_dir}/absl/strings/substitute.h", + ] + deps = [ + ":base", + ":bits", + ":endian", + ":int128", + ":raw_logging_internal", + ":string_view", + ":strings_internal", + ":throw_delegate", + ":type_traits", + ] +} + +absl_source_set("strings_internal") { + sources = [ + "${dawn_abseil_dir}/absl/strings/internal/escaping.cc", + "${dawn_abseil_dir}/absl/strings/internal/ostringstream.cc", + "${dawn_abseil_dir}/absl/strings/internal/utf8.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/strings/internal/escaping.h", + "${dawn_abseil_dir}/absl/strings/internal/ostringstream.h", + "${dawn_abseil_dir}/absl/strings/internal/resize_uninitialized.h", + "${dawn_abseil_dir}/absl/strings/internal/utf8.h", + ] + deps = [ + ":endian", + ":raw_logging_internal", + ":type_traits", + ] +} + +absl_source_set("string_view") { + sources = [ "${dawn_abseil_dir}/absl/strings/string_view.cc" ] + public = [ "${dawn_abseil_dir}/absl/strings/string_view.h" ] + deps = [ + ":base", + ":config", + ":core_headers", + ":throw_delegate", + ] +} + +absl_source_set("str_format") { + public = [ "${dawn_abseil_dir}/absl/strings/str_format.h" ] + deps = [ + ":core_headers", + ":nullability", + ":span", + ":str_format_internal", + ":string_view", + ] +} + +absl_source_set("str_format_internal") { + sources = [ + "${dawn_abseil_dir}/absl/strings/internal/str_format/arg.cc", + "${dawn_abseil_dir}/absl/strings/internal/str_format/bind.cc", + "${dawn_abseil_dir}/absl/strings/internal/str_format/extension.cc", + "${dawn_abseil_dir}/absl/strings/internal/str_format/float_conversion.cc", + "${dawn_abseil_dir}/absl/strings/internal/str_format/output.cc", + "${dawn_abseil_dir}/absl/strings/internal/str_format/parser.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/strings/internal/str_format/arg.h", + "${dawn_abseil_dir}/absl/strings/internal/str_format/bind.h", + "${dawn_abseil_dir}/absl/strings/internal/str_format/checker.h", + "${dawn_abseil_dir}/absl/strings/internal/str_format/extension.h", + "${dawn_abseil_dir}/absl/strings/internal/str_format/float_conversion.h", + "${dawn_abseil_dir}/absl/strings/internal/str_format/output.h", + "${dawn_abseil_dir}/absl/strings/internal/str_format/parser.h", + ] + deps = [ + ":bits", + ":config", + ":core_headers", + ":fixed_array", + ":function_ref", + ":inlined_vector", + ":int128", + ":span", + ":string_view", + ":strings", + ":type_traits", + ":utility", + ] +} + +# +# absl/synchronization +# + +absl_source_set("graphcycles_internal") { + sources = + [ "${dawn_abseil_dir}/absl/synchronization/internal/graphcycles.cc" ] + public = [ "${dawn_abseil_dir}/absl/synchronization/internal/graphcycles.h" ] + deps = [ + ":base", + ":base_internal", + ":config", + ":core_headers", + ":malloc_internal", + ":raw_logging_internal", + ] + visibility = [ ":*" ] +} + +absl_source_set("kernel_timeout_internal") { + sources = + [ "${dawn_abseil_dir}/absl/synchronization/internal/kernel_timeout.cc" ] + public = + [ "${dawn_abseil_dir}/absl/synchronization/internal/kernel_timeout.h" ] + deps = [ + ":base", + ":config", + ":core_headers", + ":raw_logging_internal", + ":time", + ] +} + +absl_source_set("symbolize") { + sources = [ + "${dawn_abseil_dir}/absl/debugging/symbolize.cc", + "${dawn_abseil_dir}/absl/debugging/symbolize_darwin.inc", + "${dawn_abseil_dir}/absl/debugging/symbolize_elf.inc", + "${dawn_abseil_dir}/absl/debugging/symbolize_emscripten.inc", + "${dawn_abseil_dir}/absl/debugging/symbolize_unimplemented.inc", + "${dawn_abseil_dir}/absl/debugging/symbolize_win32.inc", + ] + public = [ + "${dawn_abseil_dir}/absl/debugging/internal/symbolize.h", + "${dawn_abseil_dir}/absl/debugging/symbolize.h", + ] + deps = [ + ":base", + ":config", + ":core_headers", + ":debugging_internal", + ":demangle_internal", + ":dynamic_annotations", + ":malloc_internal", + ":raw_logging_internal", + ":string_view", + ":strings", + ] +} + +absl_source_set("synchronization") { + sources = [ + "${dawn_abseil_dir}/absl/synchronization/barrier.cc", + "${dawn_abseil_dir}/absl/synchronization/blocking_counter.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/create_thread_identity.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/futex_waiter.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/per_thread_sem.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/pthread_waiter.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/sem_waiter.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/stdcpp_waiter.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/waiter_base.cc", + "${dawn_abseil_dir}/absl/synchronization/internal/win32_waiter.cc", + "${dawn_abseil_dir}/absl/synchronization/mutex.cc", + "${dawn_abseil_dir}/absl/synchronization/notification.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/synchronization/barrier.h", + "${dawn_abseil_dir}/absl/synchronization/blocking_counter.h", + "${dawn_abseil_dir}/absl/synchronization/internal/create_thread_identity.h", + "${dawn_abseil_dir}/absl/synchronization/internal/futex.h", + "${dawn_abseil_dir}/absl/synchronization/internal/futex_waiter.h", + "${dawn_abseil_dir}/absl/synchronization/internal/per_thread_sem.h", + "${dawn_abseil_dir}/absl/synchronization/internal/pthread_waiter.h", + "${dawn_abseil_dir}/absl/synchronization/internal/sem_waiter.h", + "${dawn_abseil_dir}/absl/synchronization/internal/stdcpp_waiter.h", + "${dawn_abseil_dir}/absl/synchronization/internal/waiter.h", + "${dawn_abseil_dir}/absl/synchronization/internal/waiter_base.h", + "${dawn_abseil_dir}/absl/synchronization/internal/win32_waiter.h", + "${dawn_abseil_dir}/absl/synchronization/mutex.h", + "${dawn_abseil_dir}/absl/synchronization/notification.h", + ] + deps = [ + ":atomic_hook", + ":base", + ":base_internal", + ":config", + ":core_headers", + ":dynamic_annotations", + ":graphcycles_internal", + ":kernel_timeout_internal", + ":malloc_internal", + ":raw_logging_internal", + ":stacktrace", + ":symbolize", + ":time", + ] +} + +# +# absl/time +# + +absl_source_set("civil_time") { + sources = + [ "${dawn_abseil_dir}/absl/time/internal/cctz/src/civil_time_detail.cc" ] + public = [ + "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/civil_time.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/civil_time_detail.h", + ] + deps = [ ":config" ] +} + +absl_source_set("time") { + sources = [ + "${dawn_abseil_dir}/absl/time/civil_time.cc", + "${dawn_abseil_dir}/absl/time/clock.cc", + "${dawn_abseil_dir}/absl/time/duration.cc", + "${dawn_abseil_dir}/absl/time/format.cc", + "${dawn_abseil_dir}/absl/time/internal/get_current_time_chrono.inc", + "${dawn_abseil_dir}/absl/time/internal/get_current_time_posix.inc", + "${dawn_abseil_dir}/absl/time/time.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/time/civil_time.h", + "${dawn_abseil_dir}/absl/time/clock.h", + "${dawn_abseil_dir}/absl/time/time.h", + ] + deps = [ + ":base", + ":civil_time", + ":config", + ":core_headers", + ":int128", + ":optional", + ":raw_logging_internal", + ":string_view", + ":strings", + ":time_zone", + ] +} + +absl_source_set("time_zone") { + sources = [ + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_fixed.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_fixed.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_format.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_if.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_if.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_impl.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_impl.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_info.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_info.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_libc.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_libc.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_lookup.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_posix.cc", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_posix.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/tzfile.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/src/zone_info_source.cc", + ] + public = [ + "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/time_zone.h", + "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/zone_info_source.h", + ] + defines = [] + if (is_apple) { + frameworks = [ "Foundation.framework" ] + + # Work-around for https://github.com/llvm/llvm-project/issues/117630 + defines += [ "_XOPEN_SOURCE=700" ] + } + deps = [ + ":civil_time", + ":config", + ] + if (is_fuchsia) { + # Remove when fixed in Fuchsia SDK: + # https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=127301 + cflags_cc = [ "-Wno-sign-conversion" ] + deps += [ + "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.intl:fuchsia.intl_hlcpp", + "//third_party/fuchsia-sdk/sdk/pkg/async", + "//third_party/fuchsia-sdk/sdk/pkg/async-loop-cpp", + "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", + "//third_party/fuchsia-sdk/sdk/pkg/zx", + ] + } +} + +# +# absl/types +# + +absl_source_set("bad_optional_access") { + sources = [ "${dawn_abseil_dir}/absl/types/bad_optional_access.cc" ] + public = [ "${dawn_abseil_dir}/absl/types/bad_optional_access.h" ] + public_deps = [ ":config" ] + deps = [ ":raw_logging_internal" ] +} + +absl_source_set("bad_variant_access") { + sources = [ "${dawn_abseil_dir}/absl/types/bad_variant_access.cc" ] + public = [ "${dawn_abseil_dir}/absl/types/bad_variant_access.h" ] + public_deps = [ ":config" ] + deps = [ ":raw_logging_internal" ] +} + +absl_source_set("optional") { + sources = [ "${dawn_abseil_dir}/absl/types/internal/optional.h" ] + public = [ "${dawn_abseil_dir}/absl/types/internal/optional.h" ] + public_deps = [ + ":bad_optional_access", + ":base_internal", + ":config", + ":core_headers", + ":memory", + ":type_traits", + ":utility", + ] +} + +absl_source_set("span") { + public = [ "${dawn_abseil_dir}/absl/types/span.h" ] + sources = [ "${dawn_abseil_dir}/absl/types/internal/span.h" ] + public_deps = [ + ":algorithm", + ":core_headers", + ":nullability", + ":throw_delegate", + ":type_traits", + ] +} + +absl_source_set("variant") { + sources = [ "${dawn_abseil_dir}/absl/types/internal/variant.h" ] + public = [ "${dawn_abseil_dir}/absl/types/variant.h" ] + public_deps = [ + ":bad_variant_access", + ":base_internal", + ":config", + ":core_headers", + ":type_traits", + ":utility", + ] +} + +# +# absl/utility +# + +absl_source_set("utility") { + public = [ "${dawn_abseil_dir}/absl/utility/utility.h" ] + deps = [ + ":base_internal", + ":config", + ":type_traits", + ] +}
diff --git a/third_party/googletest/src b/third_party/googletest similarity index 100% rename from third_party/googletest/src rename to third_party/googletest
diff --git a/third_party/googletest/BUILD.gn b/third_party/googletest/BUILD.gn deleted file mode 100644 index 74c9eb6..0000000 --- a/third_party/googletest/BUILD.gn +++ /dev/null
@@ -1,207 +0,0 @@ -# Copyright 2014 The Chromium Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("//build_overrides/build.gni") - -config("gtest_config") { - # webrtc wants to push this config without a public_dep chain - # TODO(crbug.com/1249254): figure out what to do with this - visibility = [ - ":*", # gmock also shares this config. - "//test:*", # webrts standalone setup - "//third_party/webrtc/test:*", - ] - - defines = [ - # Chromium always links googletest statically, so no API qualifier is - # necessary. The definition in gtest-port.h at the time of this writing - # causes crashes in content_browsertests. - "GTEST_API_=", - - # In order to allow regex matches in gtest to be shared between Windows - # and other systems, we tell gtest to always use its internal engine. - "GTEST_HAS_POSIX_RE=0", - - # Enables C++11 features. - "GTEST_LANG_CXX11=1", - - # Prevents gtest from including both <tr1/tuple> and <tuple>. - "GTEST_HAS_TR1_TUPLE=0", - - # Use Abseil, but without flags support: Abseil flags uses the - # `FastTypeId<T>()` pattern internally, which is known to be broken in - # subtle ways in the component build. - "GTEST_HAS_ABSL", - "GTEST_NO_ABSL_FLAGS", - ] - - # Gtest headers need to be able to find themselves. - include_dirs = [ - "custom", - "src/googletest/include", - ] - - if (is_win) { - cflags = [ "/wd4800" ] # Unused variable warning. - } - - configs = [ - "//third_party/abseil-cpp:absl_include_config", - "//third_party/re2:re2_config", - ] -} - -config("gmock_config") { - # Gmock headers need to be able to find themselves. - include_dirs = [ - "custom", - "src/googlemock/include", - ] - - if (is_clang) { - # TODO(crbug.com/40616204): remove this when we migrated to new MOCK_METHOD - # macro. - # ref: https://google.github.io/googletest/gmock_cook_book.html#old-style-mock_methodn-macros - cflags = [ "-Wno-inconsistent-missing-override" ] - } -} - -# Do NOT depend on this directly. Use //testing/gtest instead. -# See README.chromium for details. -source_set("gtest") { - testonly = true - sources = [ - "custom/gtest/internal/custom/gtest.h", - "custom/gtest/internal/custom/stack_trace_getter.cc", - "custom/gtest/internal/custom/stack_trace_getter.h", - - # TODO(crbug.com/1009553): Remove this wrapper and custom temp dir - # after plumbing a workable temporary path into googletest on Android. - "custom/gtest/internal/custom/chrome_custom_temp_dir.cc", - "custom/gtest/internal/custom/chrome_custom_temp_dir.h", - "custom/gtest/internal/custom/gtest_port_wrapper.cc", - "src/googletest/include/gtest/gtest-assertion-result.h", - "src/googletest/include/gtest/gtest-death-test.h", - "src/googletest/include/gtest/gtest-matchers.h", - "src/googletest/include/gtest/gtest-message.h", - "src/googletest/include/gtest/gtest-param-test.h", - "src/googletest/include/gtest/gtest-printers.h", - "src/googletest/include/gtest/gtest-spi.h", - "src/googletest/include/gtest/gtest-test-part.h", - "src/googletest/include/gtest/gtest-typed-test.h", - "src/googletest/include/gtest/gtest.h", - "src/googletest/include/gtest/gtest_pred_impl.h", - "src/googletest/include/gtest/gtest_prod.h", - - #"src/googletest/include/gtest/internal/custom/gtest.h", # Superseded. - "src/googletest/include/gtest/internal/custom/gtest-port.h", - "src/googletest/include/gtest/internal/custom/gtest-printers.h", - "src/googletest/include/gtest/internal/gtest-death-test-internal.h", - "src/googletest/include/gtest/internal/gtest-filepath.h", - "src/googletest/include/gtest/internal/gtest-internal.h", - "src/googletest/include/gtest/internal/gtest-param-util.h", - "src/googletest/include/gtest/internal/gtest-port-arch.h", - "src/googletest/include/gtest/internal/gtest-port.h", - "src/googletest/include/gtest/internal/gtest-string.h", - "src/googletest/include/gtest/internal/gtest-type-util.h", - - #"src/googletest/src/gtest-all.cc", # Not needed by our build. - "src/googletest/src/gtest-assertion-result.cc", - "src/googletest/src/gtest-death-test.cc", - "src/googletest/src/gtest-filepath.cc", - "src/googletest/src/gtest-internal-inl.h", - "src/googletest/src/gtest-matchers.cc", - - # gtest_port_wrapper.cc is used instead of gtest-port.cc. - # TODO(crbug.com/1009553): Re-enable this file after plumbing a workable - # temporary path into googletest on Android. - #"src/googletest/src/gtest-port.cc", - "src/googletest/src/gtest-printers.cc", - "src/googletest/src/gtest-test-part.cc", - "src/googletest/src/gtest-typed-test.cc", - "src/googletest/src/gtest.cc", - ] - - # Some files include "src/gtest-internal-inl.h". - include_dirs = [ "src/googletest" ] - - public_configs = [ ":gtest_config" ] - - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - - defines = [] - - # googletest only needs `absl`, but this makes gn check happier. - deps = [ "//third_party/abseil-cpp:absl_full" ] - public_deps = [ "//third_party/re2" ] - if (is_nacl || !build_with_chromium) { - defines += [ "GTEST_DISABLE_PRINT_STACK_TRACE" ] - sources -= [ - "custom/gtest/internal/custom/stack_trace_getter.cc", - "custom/gtest/internal/custom/stack_trace_getter.h", - ] - } else { - deps += [ "//base" ] - } - - if (is_fuchsia) { - deps += [ - "//third_party/fuchsia-sdk/sdk/pkg/fdio", - "//third_party/fuchsia-sdk/sdk/pkg/zx", - ] - } -} - -# Do NOT depend on this directly. Use //testing/gtest:gtest_main instead. -# See README.chromium for details. -source_set("gtest_main") { - testonly = true - sources = [ "src/googletest/src/gtest_main.cc" ] - deps = [ ":gtest" ] -} - -# Do NOT depend on this directly. Use //testing/gmock instead. -# See README.chromium for details. -source_set("gmock") { - testonly = true - sources = [ - "src/googlemock/include/gmock/gmock-actions.h", - "src/googlemock/include/gmock/gmock-cardinalities.h", - "src/googlemock/include/gmock/gmock-function-mocker.h", - "src/googlemock/include/gmock/gmock-matchers.h", - "src/googlemock/include/gmock/gmock-more-matchers.h", - "src/googlemock/include/gmock/gmock-nice-strict.h", - "src/googlemock/include/gmock/gmock-spec-builders.h", - "src/googlemock/include/gmock/gmock.h", - - #"src/googlemock/include/gmock/internal/custom/gmock-port.h", # Superseded. - "src/googlemock/include/gmock/internal/custom/gmock-generated-actions.h", - "src/googlemock/include/gmock/internal/custom/gmock-matchers.h", - "src/googlemock/include/gmock/internal/gmock-internal-utils.h", - "src/googlemock/include/gmock/internal/gmock-port.h", - "src/googlemock/include/gmock/internal/gmock-pp.h", - - #"src/googlemock/src/gmock-all.cc", # Not needed by our build. - "src/googlemock/src/gmock-cardinalities.cc", - "src/googlemock/src/gmock-internal-utils.cc", - "src/googlemock/src/gmock-matchers.cc", - "src/googlemock/src/gmock-spec-builders.cc", - "src/googlemock/src/gmock.cc", - ] - - # googlemock only needs `absl`, but this makes gn check happier. - deps = [ "//third_party/abseil-cpp:absl_full" ] - - public_deps = [ ":gtest" ] - public_configs = [ ":gmock_config" ] -} - -# Do NOT depend on this directly. Use //testing/gmock:gmock_main instead. -# See README.chromium for details. -static_library("gmock_main") { - testonly = true - sources = [ "src/googlemock/src/gmock_main.cc" ] - deps = [ ":gmock" ] -}
diff --git a/third_party/libprotobuf-mutator/src b/third_party/libprotobuf-mutator/src index 7bf98f7..a304ec4 160000 --- a/third_party/libprotobuf-mutator/src +++ b/third_party/libprotobuf-mutator/src
@@ -1 +1 @@ -Subproject commit 7bf98f78a30b067e22420ff699348f084f802e12 +Subproject commit a304ec48dcf15d942607032151f7e9ee504b5dcf
diff --git a/third_party/protobuf b/third_party/protobuf index f2622a8..da2fe72 160000 --- a/third_party/protobuf +++ b/third_party/protobuf
@@ -1 +1 @@ -Subproject commit f2622a898ca54e0b7f4e38d8f7bfb994fa89872e +Subproject commit da2fe725b80ac0ba646fbf77d0ce5b4ac236f823
diff --git a/third_party/protobuf.cmake b/third_party/protobuf.cmake index 3bbc0f9..f1686e8 100644 --- a/third_party/protobuf.cmake +++ b/third_party/protobuf.cmake
@@ -35,12 +35,9 @@ set(protobuf_BUILD_PROTOC_BINARIES ON CACHE BOOL "Build libprotoc and protoc compiler" FORCE) set(protobuf_DISABLE_RTTI ON CACHE BOOL "Remove runtime type information in the binaries" FORCE) -# Allowing usage of enable_if() and nullability extensions in abseil -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-gcc-compat -Wno-unreachable-code-break -Wno-nullability-extension") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-gcc-compat -Wno-unreachable-code-break -Wno-nullability-extension") +add_subdirectory("${DAWN_PROTOBUF_DIR}/cmake") -add_subdirectory("${DAWN_PROTOBUF_DIR}") -target_compile_definitions(libprotobuf PUBLIC "-DPROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII=0") +target_compile_definitions(libprotobuf PUBLIC "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0") # A simplified version of protobuf_generate() function(generate_protos)
diff --git a/third_party/re2/BUILD.gn b/third_party/re2/BUILD.gn deleted file mode 100644 index da39856..0000000 --- a/third_party/re2/BUILD.gn +++ /dev/null
@@ -1,62 +0,0 @@ -# Copyright 2014 The Chromium Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("//testing/libfuzzer/fuzzer_test.gni") - -config("re2_config") { - include_dirs = [ "src" ] -} - -static_library("re2") { - sources = [ - "src/re2/bitmap256.cc", - "src/re2/bitmap256.h", - "src/re2/bitstate.cc", - "src/re2/compile.cc", - "src/re2/dfa.cc", - "src/re2/filtered_re2.cc", - "src/re2/filtered_re2.h", - "src/re2/mimics_pcre.cc", - "src/re2/nfa.cc", - "src/re2/onepass.cc", - "src/re2/parse.cc", - "src/re2/perl_groups.cc", - "src/re2/prefilter.cc", - "src/re2/prefilter.h", - "src/re2/prefilter_tree.cc", - "src/re2/prefilter_tree.h", - "src/re2/prog.cc", - "src/re2/prog.h", - "src/re2/re2.cc", - "src/re2/re2.h", - "src/re2/regexp.cc", - "src/re2/regexp.h", - "src/re2/set.cc", - "src/re2/set.h", - "src/re2/simplify.cc", - "src/re2/sparse_array.h", - "src/re2/sparse_set.h", - "src/re2/stringpiece.h", - "src/re2/tostring.cc", - "src/re2/unicode_casefold.cc", - "src/re2/unicode_casefold.h", - "src/re2/unicode_groups.cc", - "src/re2/unicode_groups.h", - "src/re2/walker-inl.h", - "src/util/rune.cc", - "src/util/strutil.cc", - "src/util/strutil.h", - "src/util/utf.h", - ] - - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - public_configs = [ ":re2_config" ] - public_deps = [ "//third_party/abseil-cpp:absl" ] -} - -fuzzer_test("third_party_re2_fuzzer") { - sources = [ "src/re2/fuzzing/re2_fuzzer.cc" ] - deps = [ ":re2" ] -}
diff --git a/third_party/re2/src b/third_party/re2/src deleted file mode 160000 index c84a140..0000000 --- a/third_party/re2/src +++ /dev/null
@@ -1 +0,0 @@ -Subproject commit c84a140c93352cdabbfb547c531be34515b12228
diff --git a/tools/clang b/tools/clang index 5d9b097..e262f0f 160000 --- a/tools/clang +++ b/tools/clang
@@ -1 +1 @@ -Subproject commit 5d9b09742311e059ecdba6d74adcb883e4ebffe5 +Subproject commit e262f0f8896e459fe7fd2a076af48d5746b1d332
diff --git a/tools/fetch_dawn_dependencies.py b/tools/fetch_dawn_dependencies.py index 6894b6d..b5594de 100644 --- a/tools/fetch_dawn_dependencies.py +++ b/tools/fetch_dawn_dependencies.py
@@ -108,7 +108,7 @@ 'third_party/markupsafe', 'third_party/glslang/src', 'third_party/google_benchmark/src', - 'third_party/googletest/src', + 'third_party/googletest', 'third_party/spirv-headers/src', 'third_party/spirv-tools/src', 'third_party/vulkan-headers/src',
diff --git a/tools/protoc_wrapper b/tools/protoc_wrapper index dbcbea9..b5ea227 160000 --- a/tools/protoc_wrapper +++ b/tools/protoc_wrapper
@@ -1 +1 @@ -Subproject commit dbcbea90c20ae1ece442d8ef64e61c7b10e2b013 +Subproject commit b5ea227bd88235ab3ccda964d5f3819c4e2d8032
diff --git a/tools/setup-build b/tools/setup-build index 95b754c..3e30971 100755 --- a/tools/setup-build +++ b/tools/setup-build
@@ -200,6 +200,7 @@ if [[ -n "$BUILD_FUZZER" ]]; then GN_ARGS+=" use_libfuzzer=true" GN_ARGS+=" tint_build_ir_binary=true" + GN_ARGS+=" tint_build_ir_fuzzer=true" fi if [[ -n "$REMOTEEXEC" ]]; then GN_ARGS+=" use_remoteexec=true" @@ -229,6 +230,7 @@ CMAKE_FLAGS+=("-DCMAKE_C_COMPILER=clang") CMAKE_FLAGS+=("-DTINT_BUILD_FUZZERS=ON") CMAKE_FLAGS+=("-DDAWN_BUILD_PROTOBUF=ON") + CMAKE_FLAGS+=("-DTINT_BUILD_IR_FUZZER=ON") CMAKE_FLAGS+=("-DTINT_BUILD_IR_BINARY=ON") CMAKE_FLAGS+=("-DDAWN_USE_BUILT_DXC=ON") # TODO(b/348200364) fi