1load("@rules_cc//cc:defs.bzl", "cc_library") 2 3# This macro provides for generating both "sleef<foo>" and 4# "sleefdet<foo>" libraries for a given set of code. The difference is 5# that the "det" libraries get compiled with "-DDETERMINISTIC=1". 6 7def sleef_cc_library(name, copts, **kwargs): 8 cc_library( 9 name = name, 10 copts = copts, 11 **kwargs 12 ) 13 14 prefix = "sleef" 15 if not name.startswith(prefix): 16 fail("name {} does not start with {}".format(repr(name), repr(prefix))) 17 18 cc_library( 19 name = name.replace(prefix, prefix + "det", 1), 20 copts = copts + ["-DDETERMINISTIC=1"], 21 **kwargs 22 ) 23