brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 9874b80 Raw
60 lines · plain
1load("@bazel_skylib//lib:selects.bzl", "selects")2 3licenses(["notice"])4 5package(default_visibility = ["//visibility:public"])6 7config_setting(8    name = "msvc_compiler",9    flag_values = {"@bazel_tools//tools/cpp:compiler": "msvc-cl"},10)11 12selects.config_setting_group(13    name = "winplusmsvc",14    match_all = [15        "@platforms//os:windows",16        ":msvc_compiler",17    ],18)19 20cc_library(21    name = "nanobind",22    srcs = glob([23        "src/*.cpp",24    ]),25    additional_linker_inputs = select({26        "@platforms//os:macos": [":cmake/darwin-ld-cpython.sym"],27        "//conditions:default": [],28    }),29    copts = select({30        ":msvc_compiler": [31            "/EHsc",  # exceptions32            "/Os",  # size optimizations33            "/GL",  # LTO / whole program optimization34        ],35        # these should work on both clang and gcc.36        "//conditions:default": [37            "-fexceptions",38            "-flto",39            "-Os",40        ],41    }),42    includes = [43        "ext/robin_map/include",44        "include",45    ],46    linkopts = select({47        ":winplusmsvc": ["/LTGC"],  # Windows + MSVC.48        "@platforms//os:macos": ["-Wl,@$(location :cmake/darwin-ld-cpython.sym)"],  # Apple.49        "//conditions:default": [],50    }),51    textual_hdrs = glob(52        [53            "include/**/*.h",54            "src/*.h",55            "ext/robin_map/include/tsl/*.h",56        ],57    ),58    deps = ["@python_headers"],59)60