1*da0073e9SAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_library") 2*da0073e9SAndroid Build Coastguard Workerload("@pytorch//tools/rules:cu.bzl", "cu_library") 3*da0073e9SAndroid Build Coastguard Workerload("@pytorch//third_party:substitution.bzl", "template_rule") 4*da0073e9SAndroid Build Coastguard Workerload("@pytorch//tools/config:defs.bzl", "if_cuda") 5*da0073e9SAndroid Build Coastguard Worker 6*da0073e9SAndroid Build Coastguard Workertemplate_rule( 7*da0073e9SAndroid Build Coastguard Worker name = "gloo_config_cmake_macros", 8*da0073e9SAndroid Build Coastguard Worker src = "gloo/config.h.in", 9*da0073e9SAndroid Build Coastguard Worker out = "gloo/config.h", 10*da0073e9SAndroid Build Coastguard Worker substitutions = { 11*da0073e9SAndroid Build Coastguard Worker "@GLOO_VERSION_MAJOR@": "0", 12*da0073e9SAndroid Build Coastguard Worker "@GLOO_VERSION_MINOR@": "5", 13*da0073e9SAndroid Build Coastguard Worker "@GLOO_VERSION_PATCH@": "0", 14*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_CUDA": "define GLOO_USE_CUDA 1", 15*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_NCCL": "define GLOO_USE_NCCL 0", 16*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_ROCM": "define GLOO_USE_ROCM 0", 17*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_RCCL": "define GLOO_USE_RCCL 0", 18*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_REDIS": "define GLOO_USE_REDIS 0", 19*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_IBVERBS": "define GLOO_USE_IBVERBS 0", 20*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_MPI": "define GLOO_USE_MPI 0", 21*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_AVX": "define GLOO_USE_AVX 0", 22*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_USE_LIBUV": "define GLOO_USE_LIBUV 0", 23*da0073e9SAndroid Build Coastguard Worker # The `GLOO_HAVE_TRANSPORT_TCP_TLS` line should go above the `GLOO_HAVE_TRANSPORT_TCP` in order to properly substitute the template. 24*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_HAVE_TRANSPORT_TCP_TLS": "define GLOO_HAVE_TRANSPORT_TCP_TLS 1", 25*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_HAVE_TRANSPORT_TCP": "define GLOO_HAVE_TRANSPORT_TCP 1", 26*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_HAVE_TRANSPORT_IBVERBS": "define GLOO_HAVE_TRANSPORT_IBVERBS 0", 27*da0073e9SAndroid Build Coastguard Worker "cmakedefine01 GLOO_HAVE_TRANSPORT_UV": "define GLOO_HAVE_TRANSPORT_UV 0", 28*da0073e9SAndroid Build Coastguard Worker }, 29*da0073e9SAndroid Build Coastguard Worker) 30*da0073e9SAndroid Build Coastguard Worker 31*da0073e9SAndroid Build Coastguard Workercc_library( 32*da0073e9SAndroid Build Coastguard Worker name = "gloo_headers", 33*da0073e9SAndroid Build Coastguard Worker hdrs = glob( 34*da0073e9SAndroid Build Coastguard Worker [ 35*da0073e9SAndroid Build Coastguard Worker "gloo/*.h", 36*da0073e9SAndroid Build Coastguard Worker "gloo/common/*.h", 37*da0073e9SAndroid Build Coastguard Worker "gloo/rendezvous/*.h", 38*da0073e9SAndroid Build Coastguard Worker "gloo/transport/*.h", 39*da0073e9SAndroid Build Coastguard Worker "gloo/transport/tcp/*.h", 40*da0073e9SAndroid Build Coastguard Worker "gloo/transport/tcp/tls/*.h", 41*da0073e9SAndroid Build Coastguard Worker ], 42*da0073e9SAndroid Build Coastguard Worker exclude = [ 43*da0073e9SAndroid Build Coastguard Worker "gloo/rendezvous/redis_store.h", 44*da0073e9SAndroid Build Coastguard Worker ], 45*da0073e9SAndroid Build Coastguard Worker ) + ["gloo/config.h"], 46*da0073e9SAndroid Build Coastguard Worker includes = [ 47*da0073e9SAndroid Build Coastguard Worker ".", 48*da0073e9SAndroid Build Coastguard Worker ], 49*da0073e9SAndroid Build Coastguard Worker) 50*da0073e9SAndroid Build Coastguard Worker 51*da0073e9SAndroid Build Coastguard Workercu_library( 52*da0073e9SAndroid Build Coastguard Worker name = "gloo_cuda", 53*da0073e9SAndroid Build Coastguard Worker srcs = [ 54*da0073e9SAndroid Build Coastguard Worker "gloo/cuda.cu", 55*da0073e9SAndroid Build Coastguard Worker "gloo/cuda_private.cu", 56*da0073e9SAndroid Build Coastguard Worker ], 57*da0073e9SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 58*da0073e9SAndroid Build Coastguard Worker deps = [ 59*da0073e9SAndroid Build Coastguard Worker ":gloo_headers", 60*da0073e9SAndroid Build Coastguard Worker ], 61*da0073e9SAndroid Build Coastguard Worker alwayslink = True, 62*da0073e9SAndroid Build Coastguard Worker) 63*da0073e9SAndroid Build Coastguard Worker 64*da0073e9SAndroid Build Coastguard Workercc_library( 65*da0073e9SAndroid Build Coastguard Worker name = "gloo", 66*da0073e9SAndroid Build Coastguard Worker srcs = glob( 67*da0073e9SAndroid Build Coastguard Worker [ 68*da0073e9SAndroid Build Coastguard Worker "gloo/*.cc", 69*da0073e9SAndroid Build Coastguard Worker "gloo/common/*.cc", 70*da0073e9SAndroid Build Coastguard Worker "gloo/rendezvous/*.cc", 71*da0073e9SAndroid Build Coastguard Worker "gloo/transport/*.cc", 72*da0073e9SAndroid Build Coastguard Worker "gloo/transport/tcp/*.cc", 73*da0073e9SAndroid Build Coastguard Worker ], 74*da0073e9SAndroid Build Coastguard Worker exclude = [ 75*da0073e9SAndroid Build Coastguard Worker "gloo/cuda*.cc", 76*da0073e9SAndroid Build Coastguard Worker "gloo/common/win.cc", 77*da0073e9SAndroid Build Coastguard Worker "gloo/rendezvous/redis_store.cc", 78*da0073e9SAndroid Build Coastguard Worker ] 79*da0073e9SAndroid Build Coastguard Worker ) + if_cuda(glob(["gloo/cuda*.cc"])), 80*da0073e9SAndroid Build Coastguard Worker copts = [ 81*da0073e9SAndroid Build Coastguard Worker "-std=c++17", 82*da0073e9SAndroid Build Coastguard Worker ], 83*da0073e9SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 84*da0073e9SAndroid Build Coastguard Worker deps = [":gloo_headers"] + if_cuda( 85*da0073e9SAndroid Build Coastguard Worker [":gloo_cuda"], 86*da0073e9SAndroid Build Coastguard Worker [], 87*da0073e9SAndroid Build Coastguard Worker ), 88*da0073e9SAndroid Build Coastguard Worker) 89