• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2config_setting(
3    name = "msvc_compiler",
4    flag_values = {"@bazel_tools//tools/cpp:compiler": "msvc-cl"},
5)
6
7cc_library(
8    name = "nanobind",
9    hdrs = glob(
10        include = [
11            "include/nanobind/*.h",
12            "include/nanobind/stl/*.h",
13            "include/nanobind/detail/*.h",
14        ],
15        exclude = [],
16    ),
17    srcs = [
18        "include/nanobind/stl/detail/nb_dict.h",
19        "include/nanobind/stl/detail/nb_list.h",
20        "include/nanobind/stl/detail/traits.h",
21        "ext/robin_map/include/tsl/robin_map.h",
22        "ext/robin_map/include/tsl/robin_hash.h",
23        "ext/robin_map/include/tsl/robin_growth_policy.h",
24        "ext/robin_map/include/tsl/robin_set.h",
25        "src/buffer.h",
26        "src/common.cpp",
27        "src/error.cpp",
28        "src/implicit.cpp",
29        "src/nb_enum.cpp",
30        "src/nb_func.cpp",
31        "src/nb_internals.cpp",
32        "src/nb_internals.h",
33        "src/nb_ndarray.cpp",
34        "src/nb_type.cpp",
35        "src/trampoline.cpp",
36    ],
37    copts = select({
38        ":msvc_compiler": [],
39        "//conditions:default": [
40        "-fexceptions",
41        "-Os",  # size optimization
42        "-flto", # enable LTO
43        ],
44    }),
45    linkopts = select({
46        "@com_github_google_benchmark//:macos": [
47        "-undefined dynamic_lookup",
48        "-Wl,-no_fixup_chains",
49        "-Wl,-dead_strip",
50        ],
51        "//conditions:default": [],
52    }),
53    includes = ["include", "ext/robin_map/include"],
54    deps = ["@python_headers"],
55    visibility = ["//visibility:public"],
56)
57