load("@bazel_skylib//rules:common_settings.bzl", "string_flag") load("@rules_zig//zig:defs.bzl", "zig_library") IMPL = [ "threaded", "zigcoro", ] string_flag( name = "impl", build_setting_default = "threaded", values = IMPL, ) [ config_setting( name = "impl.{}".format(impl), flag_values = {":impl": impl}, ) for impl in IMPL ] zig_library( name = "zigcoro", srcs = ["meta.zig"], import_name = "async", main = "zigcoro.zig", deps = [ "@libxev//:xev", "@zigcoro//:libcoro", ], ) zig_library( name = "threaded", srcs = ["meta.zig"], import_name = "async", main = "threaded.zig", deps = [ "@libxev//:xev", ], ) alias( name = "async", actual = select({ ":impl.threaded": ":threaded", ":impl.zigcoro": ":zigcoro", }), visibility = ["//visibility:public"], )