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