| load("//tools:build_defs.bzl", "IS_HOST_WINDOWS") | |
| package(default_visibility = ["//visibility:public"]) | |
| # This should use a toolchain setup like the one for //tools/launcher, but that | |
| # doesn't provide a good way to bootstrap the def_parser from source build and | |
| # targets such as `--malloc`, which must not depend on def_parser. Instead, | |
| # the cc_* rules use a computed default and exclude tags. Since def_parser is | |
| # only used when targeting Windows and itself only runs on Windows, we only | |
| # match on the target platform here (which is the exec platform after the exec | |
| # transition applied by the implicit dep edge from cc_* rules). | |
| # TODO: Consider improving the situation by wrapping the targets with exclusions | |
| # with transitions. | |
| filegroup( | |
| name = "def_parser", | |
| srcs = select({ | |
| "@platforms//os:windows": ["def_parser.exe"] if IS_HOST_WINDOWS else ["//third_party/def_parser:def_parser"], | |
| "//conditions:default": ["no_op.bat"], | |
| }), | |
| ) |