| _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 = True, | |
| linkstatic = True, | |
| 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() | |
| }), | |
| ) | |