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_type.cpp", "src/tensor.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 suppress", "-flat_namespace"], "//conditions:default": [], }), includes = ["include", "ext/robin_map/include"], deps = ["@python_headers"], visibility = ["//visibility:public"], )