_SHARED_LIB_SUFFIX = { "//conditions:default": ".so", "//:windows": ".dll", } def py_extension(name, srcs, hdrs = [], copts = [], features = [], deps = []): for shared_lib_suffix in _SHARED_LIB_SUFFIX.values(): shared_lib_name = name + shared_lib_suffix native.cc_binary( name = shared_lib_name, linkshared = 1, linkstatic = 1, srcs = srcs + hdrs, copts = copts, features = features, deps = deps, ) return native.py_library( name = name, data = select({ platform: [name + shared_lib_suffix] for platform, shared_lib_suffix in _SHARED_LIB_SUFFIX.items() }), )