def define_targets(rules): rules.cc_library( name = "TypeCast", srcs = ["TypeCast.cpp"], hdrs = ["TypeCast.h"], linkstatic = True, local_defines = ["C10_BUILD_MAIN_LIB"], visibility = ["//visibility:public"], deps = [ ":base", "//c10/core:ScalarType", "//c10/macros", ], ) rules.cc_library( name = "base", srcs = rules.glob( ["*.cpp"], exclude = [ "TypeCast.cpp", "typeid.cpp", ], ), hdrs = rules.glob( ["*.h"], exclude = [ "TypeCast.h", "typeid.h", ], ), linkstatic = True, local_defines = ["C10_BUILD_MAIN_LIB"], visibility = ["//visibility:public"], deps = [ ":bit_cast", "//c10/macros", "@fmt", ] + rules.select({ "//c10:using_gflags": ["@com_github_gflags_gflags//:gflags"], "//conditions:default": [], }) + rules.select({ "//c10:using_glog": ["@com_github_glog//:glog"], "//conditions:default": [], }), # This library uses flags and registration. Do not let the # linker remove them. alwayslink = True, ) rules.cc_library( name = "bit_cast", hdrs = ["bit_cast.h"], visibility = ["//:__subpackages__"], ) rules.cc_library( name = "ssize", hdrs = ["ssize.h"], linkstatic = True, visibility = ["//:__subpackages__"], deps = [":base"], ) rules.cc_library( name = "typeid", srcs = ["typeid.cpp"], hdrs = ["typeid.h"], linkstatic = True, local_defines = ["C10_BUILD_MAIN_LIB"], visibility = ["//visibility:public"], deps = [ ":base", "//c10/core:ScalarType", "//c10/macros", ], ) rules.filegroup( name = "headers", srcs = rules.glob( ["*.h"], exclude = [ "bit_cast.h", "ssize.h", ], ), visibility = [ "//:__pkg__", "//c10:__pkg__", ], )