| 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"], | |
| ) |