| |
| config_setting( |
| name = "msvc_compiler", |
| flag_values = {"@bazel_tools//tools/cpp:compiler": "msvc-cl"}, |
| ) |
| |
| cc_library( |
| name = "nanobind", |
| hdrs = glob( |
| include = [ |
| "include/nanobind/*.h", |
| "include/nanobind/stl/*.h", |
| "include/nanobind/detail/*.h", |
| ], |
| exclude = [], |
| ), |
| srcs = [ |
| "include/nanobind/stl/detail/nb_dict.h", |
| "include/nanobind/stl/detail/nb_list.h", |
| "include/nanobind/stl/detail/traits.h", |
| "ext/robin_map/include/tsl/robin_map.h", |
| "ext/robin_map/include/tsl/robin_hash.h", |
| "ext/robin_map/include/tsl/robin_growth_policy.h", |
| "ext/robin_map/include/tsl/robin_set.h", |
| "src/buffer.h", |
| "src/common.cpp", |
| "src/error.cpp", |
| "src/implicit.cpp", |
| "src/nb_enum.cpp", |
| "src/nb_func.cpp", |
| "src/nb_internals.cpp", |
| "src/nb_internals.h", |
| "src/nb_ndarray.cpp", |
| "src/nb_type.cpp", |
| "src/trampoline.cpp", |
| ], |
| copts = select({ |
| ":msvc_compiler": [], |
| "//conditions:default": [ |
| "-fexceptions", |
| "-Os", # size optimization |
| "-flto", # enable LTO |
| ], |
| }), |
| linkopts = select({ |
| "@com_github_google_benchmark//:macos": [ |
| "-undefined dynamic_lookup", |
| "-Wl,-no_fixup_chains", |
| "-Wl,-dead_strip", |
| ], |
| "//conditions:default": [], |
| }), |
| includes = ["include", "ext/robin_map/include"], |
| deps = ["@python_headers"], |
| visibility = ["//visibility:public"], |
| ) |