load("@bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory") load("@zml//bazel:patchelf.bzl", "patchelf") patchelf( name = "libpjrt_oneapi_so", src = "libpjrt_oneapi.so", add_needed = [ "libzmlxoneapi.so.0", ], rename_dynamic_symbols = { "dlopen": "zmlxoneapi_dlopen", }, set_rpath = "$ORIGIN", ) patchelf( name = "libsycl_so", src = "@intel-oneapi-compiler-dpcpp-cpp-runtime-2026.0//:libsycl_so", set_rpath = "$ORIGIN", ) patchelf( name = "libccl_legacy_so", src = "@intel-oneapi-ccl-2022.0//:libccl_legacy_so", set_rpath = "$ORIGIN", ) patchelf( name = "libze_intel_gpu_so", src = "@libze-intel-gpu1//:libze_intel_gpu_so", set_rpath = "$ORIGIN", soname = "libze_intel_gpu.so.1", ) patchelf( name = "libigc_so_2", src = "@libigc2//:libigc_so_2", set_rpath = "$ORIGIN", soname = "libigc.so.2", ) patchelf( name = "libiga64_so_2", src = "@libigc2//:libiga64_so_2", set_rpath = "$ORIGIN", soname = "libiga64.so.2", ) patchelf( name = "libigdfcl_so_2", src = "@libigdfcl2//:libigdfcl_so_2", set_rpath = "$ORIGIN", soname = "libigdfcl.so.2", ) ONEAPI_VERSION = "2026.0" ONEAPI_CCL_LIB = "ccl/2022.0/lib" ONEAPI_MPI_LIB = "mpi/2021.18/lib" ONEAPI_MPI_LIBFABRIC_LIB = "mpi/2021.18/opt/mpi/libfabric/lib" ONEAPI_TCM_VERSION = "1.5" ONEAPI_UMF_VERSION = "1.1" ONEAPI_COMPILER_LIB = "compiler/{}/lib".format(ONEAPI_VERSION) ONEAPI_MKL_LIB = "mkl/{}/lib".format(ONEAPI_VERSION) ONEAPI_TCM_LIB = "tcm/{}/lib".format(ONEAPI_TCM_VERSION) ONEAPI_UMF_LIB = "umf/{}/lib".format(ONEAPI_UMF_VERSION) copy_to_directory( name = "sandbox", srcs = [ ":libiga64_so_2", ":libigdfcl_so_2", ":libigc_so_2", ":libpjrt_oneapi_so", ":libsycl_so", ":libze_intel_gpu_so", "@intel-oneapi-ccl-2022.0//:ccl_runtime", "@intel-oneapi-compiler-dpcpp-cpp-runtime-2026.0//:sycl_runtime", "@intel-oneapi-compiler-shared-runtime-2026.0//:compiler_runtime", "@intel-oneapi-mkl-core-2026.0//:mkl_core_runtime", "@intel-oneapi-mkl-sycl-blas-2026.0//:mkl_sycl_blas", "@intel-oneapi-mkl-sycl-dft-2026.0//:mkl_sycl_dft", "@intel-oneapi-mkl-sycl-lapack-2026.0//:mkl_sycl_lapack", "@intel-oneapi-mkl-sycl-rng-2026.0//:mkl_sycl_rng", "@intel-oneapi-mkl-sycl-sparse-2026.0//:mkl_sycl_sparse", "@intel-oneapi-mpi-2021.18//:mpi_runtime", "@intel-oneapi-tcm-1.5//:hwloc", "@intel-oneapi-umf-1.1//:umf", "@libigdfcl2//:libopencl_clang", "@libigdgmm12", "@libnl-3-200//:libnl_3", "@libnl-genl-3-200//:libnl_genl_3", "@libnl-route-3-200//:libnl_route_3", "@libnuma1", "@libze1", "@zlib1g", "@zml//platforms/oneapi:zmlxoneapi", ], add_directory_to_runfiles = False, allow_overwrites = True, hardlink = "auto", include_external_repositories = ["**"], replace_prefixes = { "libiga64_so_2": "lib", "libigdfcl_so_2": "lib", "libigc_so_2": "lib", "libpjrt_oneapi_so": "lib", "libsycl_so": "lib", ONEAPI_CCL_LIB: "lib", ONEAPI_COMPILER_LIB: "lib", ONEAPI_MPI_LIB: "lib", ONEAPI_MPI_LIBFABRIC_LIB: "lib", ONEAPI_MKL_LIB: "lib", ONEAPI_TCM_LIB: "lib", ONEAPI_UMF_LIB: "lib", "lib/x86_64-linux-gnu": "lib", "libze_intel_gpu_so": "lib", "platforms/oneapi/libzmlxoneapi": "lib/libzmlxoneapi", }, root_paths = ["."], ) cc_library( name = "libpjrt_oneapi", data = [":sandbox"], visibility = ["@zml//platforms/oneapi:__subpackages__"], )