load("@rules_cc//cc:defs.bzl", "cc_library") load("@pytorch//third_party:substitution.bzl", "template_rule") licenses(["notice"]) # Apache 2.0 template_rule( name = "version_string", src = "@//:aten/src/ATen/cpu/tbb/extra/version_string.ver.in", out = "version_string.h", substitutions = { "@CMAKE_SYSTEM_NAME@": "Unknown", "@CMAKE_SYSTEM@": "Unknown", "@CMAKE_SYSTEM_VERSION@": "Unknown", "@CMAKE_CXX_COMPILER_ID@": "Unknown", "@_configure_date@": "Unknown", } ) cc_library( name = "tbb", srcs = [":version_string"] + glob( [ "src/old/*.h", "src/rml/client/*.h", "src/rml/include/*.h", "src/rml/server/*.h", "src/tbb/*.h", "src/tbb/tools_api/*.h", "src/tbb/tools_api/legacy/*.h", "src/old/*.cpp", "src/tbb/*.cpp", ], exclude = ["src/old/test_*.cpp"], ) + ["src/rml/client/rml_tbb.cpp"], hdrs = glob( [ "include/tbb/*", "include/tbb/compat/*", "include/tbb/internal/*", "include/tbb/machine/*", ], exclude = ["include/tbb/scalable_allocator.h"], ), copts = [ "-Iexternal/tbb/src/rml/include", "-Iexternal/tbb/src", "-pthread", "-DDO_ITT_NOTIFY=1", "-DUSE_PTHREAD=1", "-D__TBB_BUILD=1", "-D__TBB_DYNAMIC_LOAD_ENABLED=0", "-D__TBB_SOURCE_DIRECTLY_INCLUDED=1", "-fno-sanitize=vptr", "-fno-sanitize=thread", ], defines = [ # TBB Cannot detect the standard library version when using clang with libstdc++. # See https://github.com/01org/tbb/issues/22 "TBB_USE_GLIBCXX_VERSION=(_GLIBCXX_RELEASE*10000)", "TBB_PREVIEW_GLOBAL_CONTROL=1", "TBB_PREVIEW_LOCAL_OBSERVER=1", "__TBB_ALLOW_MUTABLE_FUNCTORS=1", ], includes = [ "include", "src/tbb/tools_api", ], linkopts = [ "-ldl", "-lpthread", "-lrt", ], textual_hdrs = ["src/tbb/tools_api/ittnotify_static.c"], visibility = ["//visibility:public"], )