1*da0073e9SAndroid Build Coastguard Workerload("//arvr/tools/build_defs:genrule_utils.bzl", "gen_cmake_header") 2*da0073e9SAndroid Build Coastguard Workerload("//arvr/tools/build_defs:oxx.bzl", "oxx_static_library") 3*da0073e9SAndroid Build Coastguard Worker 4*da0073e9SAndroid Build Coastguard Workercpu_supported_platforms = [ 5*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:android", 6*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:iphoneos", 7*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux-x86_64", 8*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:macos", 9*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:windows-x86_64", 10*da0073e9SAndroid Build Coastguard Worker "ovr_config//runtime:arm64-linux-ubuntu-neon", 11*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux-arm64", 12*da0073e9SAndroid Build Coastguard Worker] 13*da0073e9SAndroid Build Coastguard Worker 14*da0073e9SAndroid Build Coastguard Workercuda_supported_platforms = [ 15*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux-cuda", 16*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:windows-cuda", 17*da0073e9SAndroid Build Coastguard Worker] 18*da0073e9SAndroid Build Coastguard Worker 19*da0073e9SAndroid Build Coastguard Workerdef define_c10_ovrsource(name, is_mobile): 20*da0073e9SAndroid Build Coastguard Worker if is_mobile: 21*da0073e9SAndroid Build Coastguard Worker pp_flags = ["-DC10_MOBILE=1"] 22*da0073e9SAndroid Build Coastguard Worker else: 23*da0073e9SAndroid Build Coastguard Worker pp_flags = [] 24*da0073e9SAndroid Build Coastguard Worker 25*da0073e9SAndroid Build Coastguard Worker oxx_static_library( 26*da0073e9SAndroid Build Coastguard Worker name = name, 27*da0073e9SAndroid Build Coastguard Worker srcs = native.glob([ 28*da0073e9SAndroid Build Coastguard Worker "core/*.cpp", 29*da0073e9SAndroid Build Coastguard Worker "core/impl/*.cpp", 30*da0073e9SAndroid Build Coastguard Worker "mobile/*.cpp", 31*da0073e9SAndroid Build Coastguard Worker "util/*.cpp", 32*da0073e9SAndroid Build Coastguard Worker ]), 33*da0073e9SAndroid Build Coastguard Worker compatible_with = cpu_supported_platforms, 34*da0073e9SAndroid Build Coastguard Worker compiler_flags = select({ 35*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 36*da0073e9SAndroid Build Coastguard Worker "ovr_config//compiler:cl": [ 37*da0073e9SAndroid Build Coastguard Worker "/w", 38*da0073e9SAndroid Build Coastguard Worker ], 39*da0073e9SAndroid Build Coastguard Worker "ovr_config//toolchain/clang:win": [ 40*da0073e9SAndroid Build Coastguard Worker "-Wno-error", 41*da0073e9SAndroid Build Coastguard Worker "-Wno-shadow", 42*da0073e9SAndroid Build Coastguard Worker "-Wno-undef", 43*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-variable", 44*da0073e9SAndroid Build Coastguard Worker ], 45*da0073e9SAndroid Build Coastguard Worker }), 46*da0073e9SAndroid Build Coastguard Worker include_directories = [".."], 47*da0073e9SAndroid Build Coastguard Worker preprocessor_flags = [ 48*da0073e9SAndroid Build Coastguard Worker "-DNO_EXPORT", 49*da0073e9SAndroid Build Coastguard Worker "-DC10_BUILD_MAIN_LIB=1", 50*da0073e9SAndroid Build Coastguard Worker "-DSUPPORTS_BACKTRACE=0", 51*da0073e9SAndroid Build Coastguard Worker ], 52*da0073e9SAndroid Build Coastguard Worker fbobjc_compiler_flags = ["-Wno-error=global-constructors", "-Wno-error=missing-prototypes"], 53*da0073e9SAndroid Build Coastguard Worker public_include_directories = [".."], 54*da0073e9SAndroid Build Coastguard Worker public_preprocessor_flags = pp_flags, 55*da0073e9SAndroid Build Coastguard Worker public_raw_headers = native.glob([ 56*da0073e9SAndroid Build Coastguard Worker "core/*.h", 57*da0073e9SAndroid Build Coastguard Worker "macros/*.h", 58*da0073e9SAndroid Build Coastguard Worker "mobile/*.h", 59*da0073e9SAndroid Build Coastguard Worker "test/util/*.h", # some external tests use this 60*da0073e9SAndroid Build Coastguard Worker "util/*.h", 61*da0073e9SAndroid Build Coastguard Worker ]), 62*da0073e9SAndroid Build Coastguard Worker raw_headers = native.glob([ 63*da0073e9SAndroid Build Coastguard Worker "core/impl/*.h", 64*da0073e9SAndroid Build Coastguard Worker ]), 65*da0073e9SAndroid Build Coastguard Worker reexport_all_header_dependencies = False, 66*da0073e9SAndroid Build Coastguard Worker # tests = C10_CPU_TEST_TARGETS, 67*da0073e9SAndroid Build Coastguard Worker visibility = [ 68*da0073e9SAndroid Build Coastguard Worker "//xplat/caffe2/c10:c10_ovrsource", 69*da0073e9SAndroid Build Coastguard Worker ], 70*da0073e9SAndroid Build Coastguard Worker deps = select({ 71*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 72*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux": [ 73*da0073e9SAndroid Build Coastguard Worker "//third-party/numactl:numactl", 74*da0073e9SAndroid Build Coastguard Worker ], 75*da0073e9SAndroid Build Coastguard Worker }), 76*da0073e9SAndroid Build Coastguard Worker exported_deps = [ 77*da0073e9SAndroid Build Coastguard Worker ":ovrsource_c10_cmake_macros.h", 78*da0073e9SAndroid Build Coastguard Worker "//arvr/third-party/gflags:gflags", 79*da0073e9SAndroid Build Coastguard Worker "//third-party/cpuinfo:cpuinfo", 80*da0073e9SAndroid Build Coastguard Worker "//third-party/fmt:fmt", 81*da0073e9SAndroid Build Coastguard Worker "//third-party/glog:glog", 82*da0073e9SAndroid Build Coastguard Worker ], 83*da0073e9SAndroid Build Coastguard Worker ) 84*da0073e9SAndroid Build Coastguard Worker 85*da0073e9SAndroid Build Coastguard Workerdef define_ovrsource_targets(): 86*da0073e9SAndroid Build Coastguard Worker # C10_CPU_TEST_FILES = native.glob([ 87*da0073e9SAndroid Build Coastguard Worker # "test/core/*.cpp", 88*da0073e9SAndroid Build Coastguard Worker # "test/util/*.cpp", 89*da0073e9SAndroid Build Coastguard Worker # ]) 90*da0073e9SAndroid Build Coastguard Worker 91*da0073e9SAndroid Build Coastguard Worker # C10_GPU_TEST_FILES = native.glob([ 92*da0073e9SAndroid Build Coastguard Worker # "cuda/test/**/*.cpp", 93*da0073e9SAndroid Build Coastguard Worker # ]) 94*da0073e9SAndroid Build Coastguard Worker 95*da0073e9SAndroid Build Coastguard Worker # C10_CPU_TEST_TARGETS = [ 96*da0073e9SAndroid Build Coastguard Worker # ":" + paths.basename(test)[:-len(".cpp")] + "_ovrsource" 97*da0073e9SAndroid Build Coastguard Worker # for test in C10_CPU_TEST_FILES 98*da0073e9SAndroid Build Coastguard Worker # ] 99*da0073e9SAndroid Build Coastguard Worker 100*da0073e9SAndroid Build Coastguard Worker # C10_GPU_TEST_TARGETS = [ 101*da0073e9SAndroid Build Coastguard Worker # ":" + paths.basename(test)[:-len(".cpp")] + "_ovrsource" 102*da0073e9SAndroid Build Coastguard Worker # for test in C10_GPU_TEST_FILES 103*da0073e9SAndroid Build Coastguard Worker # ] 104*da0073e9SAndroid Build Coastguard Worker 105*da0073e9SAndroid Build Coastguard Worker common_c10_cmake_defines = [ 106*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_BUILD_SHARED_LIBS", ""), 107*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_USE_NUMA", ""), 108*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_USE_MSVC_STATIC_RUNTIME", ""), 109*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_USE_ROCM_KERNEL_ASSERT", ""), 110*da0073e9SAndroid Build Coastguard Worker ] 111*da0073e9SAndroid Build Coastguard Worker 112*da0073e9SAndroid Build Coastguard Worker mobile_c10_cmake_defines = [ 113*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_USE_GLOG", ""), 114*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_USE_GFLAGS", ""), 115*da0073e9SAndroid Build Coastguard Worker ] 116*da0073e9SAndroid Build Coastguard Worker 117*da0073e9SAndroid Build Coastguard Worker non_mobile_c10_cmake_defines = [ 118*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_USE_GLOG", "#define C10_USE_GLOG 1"), 119*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_USE_GFLAGS", "#define C10_USE_GFLAGS 1"), 120*da0073e9SAndroid Build Coastguard Worker ] 121*da0073e9SAndroid Build Coastguard Worker 122*da0073e9SAndroid Build Coastguard Worker gen_cmake_header( 123*da0073e9SAndroid Build Coastguard Worker src = "macros/cmake_macros.h.in", 124*da0073e9SAndroid Build Coastguard Worker defines = common_c10_cmake_defines + mobile_c10_cmake_defines, 125*da0073e9SAndroid Build Coastguard Worker header = "c10/macros/cmake_macros.h", 126*da0073e9SAndroid Build Coastguard Worker prefix = "ovrsource_c10_mobile_", 127*da0073e9SAndroid Build Coastguard Worker ) 128*da0073e9SAndroid Build Coastguard Worker 129*da0073e9SAndroid Build Coastguard Worker gen_cmake_header( 130*da0073e9SAndroid Build Coastguard Worker src = "macros/cmake_macros.h.in", 131*da0073e9SAndroid Build Coastguard Worker defines = common_c10_cmake_defines + non_mobile_c10_cmake_defines, 132*da0073e9SAndroid Build Coastguard Worker header = "c10/macros/cmake_macros.h", 133*da0073e9SAndroid Build Coastguard Worker prefix = "ovrsource_c10_non_mobile_", 134*da0073e9SAndroid Build Coastguard Worker ) 135*da0073e9SAndroid Build Coastguard Worker 136*da0073e9SAndroid Build Coastguard Worker oxx_static_library( 137*da0073e9SAndroid Build Coastguard Worker name = "ovrsource_c10_cmake_macros.h", 138*da0073e9SAndroid Build Coastguard Worker compatible_with = [ 139*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:android", 140*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:iphoneos", 141*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux", 142*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:macos", 143*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:windows", 144*da0073e9SAndroid Build Coastguard Worker ], 145*da0073e9SAndroid Build Coastguard Worker deps = select({ 146*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:android": [":ovrsource_c10_mobile_cmake_macros.h"], 147*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:iphoneos": [":ovrsource_c10_mobile_cmake_macros.h"], 148*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:linux": [":ovrsource_c10_non_mobile_cmake_macros.h"], 149*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:macos": [":ovrsource_c10_non_mobile_cmake_macros.h"], 150*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:windows": [":ovrsource_c10_non_mobile_cmake_macros.h"], 151*da0073e9SAndroid Build Coastguard Worker }), 152*da0073e9SAndroid Build Coastguard Worker ) 153*da0073e9SAndroid Build Coastguard Worker 154*da0073e9SAndroid Build Coastguard Worker c10_cuda_macros = gen_cmake_header( 155*da0073e9SAndroid Build Coastguard Worker src = "cuda/impl/cuda_cmake_macros.h.in", 156*da0073e9SAndroid Build Coastguard Worker defines = [ 157*da0073e9SAndroid Build Coastguard Worker ("#cmakedefine C10_CUDA_BUILD_SHARED_LIBS", ""), 158*da0073e9SAndroid Build Coastguard Worker ], 159*da0073e9SAndroid Build Coastguard Worker header = "c10/cuda/impl/cuda_cmake_macros.h", 160*da0073e9SAndroid Build Coastguard Worker prefix = "ovrsource", 161*da0073e9SAndroid Build Coastguard Worker ) 162*da0073e9SAndroid Build Coastguard Worker 163*da0073e9SAndroid Build Coastguard Worker oxx_static_library( 164*da0073e9SAndroid Build Coastguard Worker name = "c10_ovrsource", 165*da0073e9SAndroid Build Coastguard Worker compatible_with = cpu_supported_platforms, 166*da0073e9SAndroid Build Coastguard Worker exported_deps = select({ 167*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [":c10_full_ovrsource"], 168*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:android": [":c10_mobile_ovrsource"], 169*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:iphoneos": [":c10_mobile_ovrsource"], 170*da0073e9SAndroid Build Coastguard Worker }), 171*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 172*da0073e9SAndroid Build Coastguard Worker ) 173*da0073e9SAndroid Build Coastguard Worker 174*da0073e9SAndroid Build Coastguard Worker """ 175*da0073e9SAndroid Build Coastguard Worker Most users should use c10_ovrsource, not these targets directly. 176*da0073e9SAndroid Build Coastguard Worker """ 177*da0073e9SAndroid Build Coastguard Worker define_c10_ovrsource("c10_mobile_ovrsource", True) 178*da0073e9SAndroid Build Coastguard Worker define_c10_ovrsource("c10_full_ovrsource", False) 179*da0073e9SAndroid Build Coastguard Worker 180*da0073e9SAndroid Build Coastguard Worker oxx_static_library( 181*da0073e9SAndroid Build Coastguard Worker name = "c10_cuda_ovrsource", 182*da0073e9SAndroid Build Coastguard Worker srcs = native.glob([ 183*da0073e9SAndroid Build Coastguard Worker "cuda/*.cpp", 184*da0073e9SAndroid Build Coastguard Worker "cuda/impl/*.cpp", 185*da0073e9SAndroid Build Coastguard Worker ]), 186*da0073e9SAndroid Build Coastguard Worker compatible_with = cuda_supported_platforms, 187*da0073e9SAndroid Build Coastguard Worker compiler_flags = select({ 188*da0073e9SAndroid Build Coastguard Worker "DEFAULT": [], 189*da0073e9SAndroid Build Coastguard Worker "ovr_config//compiler:cl": [ 190*da0073e9SAndroid Build Coastguard Worker "/w", 191*da0073e9SAndroid Build Coastguard Worker ], 192*da0073e9SAndroid Build Coastguard Worker "ovr_config//toolchain/clang:win": [ 193*da0073e9SAndroid Build Coastguard Worker "-Wno-error", 194*da0073e9SAndroid Build Coastguard Worker "-Wno-shadow", 195*da0073e9SAndroid Build Coastguard Worker "-Wno-undef", 196*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-variable", 197*da0073e9SAndroid Build Coastguard Worker ], 198*da0073e9SAndroid Build Coastguard Worker }), 199*da0073e9SAndroid Build Coastguard Worker link_whole = True, 200*da0073e9SAndroid Build Coastguard Worker preprocessor_flags = [ 201*da0073e9SAndroid Build Coastguard Worker "-DNO_EXPORT", 202*da0073e9SAndroid Build Coastguard Worker "-DC10_CUDA_BUILD_MAIN_LIB=1", 203*da0073e9SAndroid Build Coastguard Worker ], 204*da0073e9SAndroid Build Coastguard Worker raw_headers = native.glob([ 205*da0073e9SAndroid Build Coastguard Worker "cuda/*.h", 206*da0073e9SAndroid Build Coastguard Worker "cuda/impl/*.h", 207*da0073e9SAndroid Build Coastguard Worker ]), 208*da0073e9SAndroid Build Coastguard Worker reexport_all_header_dependencies = False, 209*da0073e9SAndroid Build Coastguard Worker # tests = C10_GPU_TEST_TARGETS, 210*da0073e9SAndroid Build Coastguard Worker visibility = ["PUBLIC"], 211*da0073e9SAndroid Build Coastguard Worker deps = [ 212*da0073e9SAndroid Build Coastguard Worker "//third-party/cuda:libcuda", 213*da0073e9SAndroid Build Coastguard Worker "//third-party/cuda:libcudart", 214*da0073e9SAndroid Build Coastguard Worker ], 215*da0073e9SAndroid Build Coastguard Worker exported_deps = c10_cuda_macros + [ 216*da0073e9SAndroid Build Coastguard Worker ":c10_ovrsource", 217*da0073e9SAndroid Build Coastguard Worker ], 218*da0073e9SAndroid Build Coastguard Worker ) 219*da0073e9SAndroid Build Coastguard Worker 220*da0073e9SAndroid Build Coastguard Worker # [ 221*da0073e9SAndroid Build Coastguard Worker # oxx_test( 222*da0073e9SAndroid Build Coastguard Worker # name = paths.basename(test)[:-len(".cpp")] + "_ovrsource", 223*da0073e9SAndroid Build Coastguard Worker # srcs = [test], 224*da0073e9SAndroid Build Coastguard Worker # compatible_with = cpu_supported_platforms, 225*da0073e9SAndroid Build Coastguard Worker # compiler_flags = select({ 226*da0073e9SAndroid Build Coastguard Worker # "DEFAULT": [], 227*da0073e9SAndroid Build Coastguard Worker # "ovr_config//compiler:cl": [ 228*da0073e9SAndroid Build Coastguard Worker # "/w", 229*da0073e9SAndroid Build Coastguard Worker # ], 230*da0073e9SAndroid Build Coastguard Worker # "ovr_config//compiler:clang": [ 231*da0073e9SAndroid Build Coastguard Worker # "-Wno-error", 232*da0073e9SAndroid Build Coastguard Worker # "-Wno-self-assign-overloaded", 233*da0073e9SAndroid Build Coastguard Worker # "-Wno-self-move", 234*da0073e9SAndroid Build Coastguard Worker # "-Wno-shadow", 235*da0073e9SAndroid Build Coastguard Worker # "-Wno-undef", 236*da0073e9SAndroid Build Coastguard Worker # "-Wno-unused-function", 237*da0073e9SAndroid Build Coastguard Worker # "-Wno-unused-variable", 238*da0073e9SAndroid Build Coastguard Worker # ], 239*da0073e9SAndroid Build Coastguard Worker # }), 240*da0073e9SAndroid Build Coastguard Worker # framework = "gtest", 241*da0073e9SAndroid Build Coastguard Worker # oncall = "ovrsource_pytorch", 242*da0073e9SAndroid Build Coastguard Worker # raw_headers = native.glob([ 243*da0073e9SAndroid Build Coastguard Worker # "test/**/*.h", 244*da0073e9SAndroid Build Coastguard Worker # ]), 245*da0073e9SAndroid Build Coastguard Worker # deps = [ 246*da0073e9SAndroid Build Coastguard Worker # ":c10_ovrsource", 247*da0073e9SAndroid Build Coastguard Worker # ], 248*da0073e9SAndroid Build Coastguard Worker # ) 249*da0073e9SAndroid Build Coastguard Worker # for test in C10_CPU_TEST_FILES 250*da0073e9SAndroid Build Coastguard Worker # ] 251*da0073e9SAndroid Build Coastguard Worker 252*da0073e9SAndroid Build Coastguard Worker # [ 253*da0073e9SAndroid Build Coastguard Worker # oxx_test( 254*da0073e9SAndroid Build Coastguard Worker # name = paths.basename(test)[:-len(".cpp")] + "_ovrsource", 255*da0073e9SAndroid Build Coastguard Worker # srcs = [test], 256*da0073e9SAndroid Build Coastguard Worker # compatible_with = cuda_supported_platforms, 257*da0073e9SAndroid Build Coastguard Worker # compiler_flags = select({ 258*da0073e9SAndroid Build Coastguard Worker # "DEFAULT": [], 259*da0073e9SAndroid Build Coastguard Worker # "ovr_config//compiler:cl": [ 260*da0073e9SAndroid Build Coastguard Worker # "/w", 261*da0073e9SAndroid Build Coastguard Worker # ], 262*da0073e9SAndroid Build Coastguard Worker # "ovr_config//compiler:clang": [ 263*da0073e9SAndroid Build Coastguard Worker # "-Wno-error", 264*da0073e9SAndroid Build Coastguard Worker # ], 265*da0073e9SAndroid Build Coastguard Worker # }), 266*da0073e9SAndroid Build Coastguard Worker # framework = "gtest", 267*da0073e9SAndroid Build Coastguard Worker # oncall = "ovrsource_pytorch", 268*da0073e9SAndroid Build Coastguard Worker # raw_headers = native.glob([ 269*da0073e9SAndroid Build Coastguard Worker # "test/**/*.h", 270*da0073e9SAndroid Build Coastguard Worker # ]), 271*da0073e9SAndroid Build Coastguard Worker # runtime_shared_libraries = [ 272*da0073e9SAndroid Build Coastguard Worker # "//third-party/cuda:cudart", 273*da0073e9SAndroid Build Coastguard Worker # ], 274*da0073e9SAndroid Build Coastguard Worker # deps = [ 275*da0073e9SAndroid Build Coastguard Worker # ":c10_cuda_ovrsource", 276*da0073e9SAndroid Build Coastguard Worker # ], 277*da0073e9SAndroid Build Coastguard Worker # ) 278*da0073e9SAndroid Build Coastguard Worker # for test in C10_GPU_TEST_FILES 279*da0073e9SAndroid Build Coastguard Worker # ] 280