Skip to content

Commit 5da8edb

Browse files
committed
Add Windows support to Bazel scripts.
Note: you will need to use local instead of archive for cuda/cudnn/tensorrt. Also: I was not able to get git working in Bazel but it is meant to work. If it doesn't just comment that out and load the pip repository manually.
1 parent 1a00287 commit 5da8edb

File tree

4 files changed

+127
-17
lines changed

4 files changed

+127
-17
lines changed

third_party/cuda/BUILD

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,22 @@ config_setting(
88
],
99
)
1010

11+
config_setting(
12+
name = "windows",
13+
constraint_values = [
14+
"@platforms//os:windows",
15+
],
16+
)
17+
1118
cc_library(
1219
name = "cudart",
1320
srcs = select({
1421
":aarch64_linux": [
1522
"targets/aarch64-linux/lib/libcudart.so",
1623
],
24+
":windows": [
25+
"lib/x64/cudart.lib",
26+
],
1727
"//conditions:default": [
1828
"targets/x86_64-linux/lib/libcudart.so",
1929
],
@@ -32,6 +42,9 @@ cc_library(
3242
":aarch64_linux": [
3343
"targets/aarch64-linux/lib/libnvToolsExt.so.1",
3444
],
45+
":windows": [
46+
"bin/nvToolsExt64_1.dll",
47+
],
3548
"//conditions:default": [
3649
"targets/x86_64-linux/lib/libnvToolsExt.so.1",
3750
],
@@ -44,6 +57,9 @@ cc_library(
4457
":aarch64_linux": glob([
4558
"targets/aarch64-linux/lib/**/lib*.so",
4659
]),
60+
":windows": [
61+
"bin/*.dll",
62+
],
4763
"//conditions:default": glob([
4864
"targets/x86_64-linux/lib/**/lib*.so",
4965
]),
@@ -59,9 +75,17 @@ cc_library(
5975

6076
cc_library(
6177
name = "cublas",
62-
srcs = glob([
63-
"lib/**/*libcublas.so",
64-
]),
78+
srcs = select({
79+
":aarch64_linux": glob([
80+
"lib/**/*libcublas.so",
81+
]),
82+
":windows": glob([
83+
"lib/x64/cublas.lib",
84+
]),
85+
"//conditions:default": glob([
86+
"lib/**/*libcublas.so",
87+
]),
88+
}),
6589
hdrs = glob([
6690
"include/**/*cublas*.h",
6791
"include/**/*.hpp",

third_party/cudnn/local/BUILD

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ config_setting(
88
],
99
)
1010

11+
config_setting(
12+
name = "windows",
13+
constraint_values = [
14+
"@platforms//os:windows",
15+
],
16+
)
17+
1118
cc_library(
1219
name = "cudnn_headers",
1320
hdrs = ["include/cudnn.h"] + glob(["include/cudnn+.h"]),
@@ -19,6 +26,7 @@ cc_import(
1926
name = "cudnn_lib",
2027
shared_library = select({
2128
":aarch64_linux": "lib/aarch64-linux-gnu/libcudnn.so",
29+
":windows": glob(["bin/cudnn64_*.dll"])[0],
2230
"//conditions:default": "lib/x86_64-linux-gnu/libcudnn.so",
2331
}),
2432
visibility = ["//visibility:private"],

third_party/libtorch/BUILD

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
package(default_visibility = ["//visibility:public"])
22

3+
config_setting(
4+
name = "windows",
5+
constraint_values = [
6+
"@platforms//os:windows",
7+
],
8+
)
9+
310
cc_library(
411
name = "libtorch",
512
deps = [
@@ -18,12 +25,20 @@ cc_library(
1825
) + glob([
1926
'include/torch/csrc/api/include/**/*.h'
2027
]),
21-
srcs = [
22-
'lib/libtorch.so',
23-
'lib/libtorch_cuda.so',
24-
'lib/libtorch_cpu.so',
25-
'lib/libtorch_global_deps.so',
26-
],
28+
srcs = select({
29+
":windows": [
30+
'lib/torch.lib',
31+
'lib/torch_cuda.lib',
32+
'lib/torch_cpu.lib',
33+
'lib/torch_global_deps.dll',
34+
],
35+
"//conditions:default": [
36+
'lib/libtorch.so',
37+
'lib/libtorch_cuda.so',
38+
'lib/libtorch_cpu.so',
39+
'lib/libtorch_global_deps.so',
40+
],
41+
}),
2742
deps = [
2843
":ATen",
2944
":c10_cuda",
@@ -39,7 +54,10 @@ cc_library(
3954
hdrs = glob([
4055
'include/c10/**/*.h'
4156
]),
42-
srcs = ["lib/libc10_cuda.so"],
57+
srcs = select({
58+
":windows": ["lib/c10_cuda.lib"],
59+
"//conditions:default": ["lib/libc10_cuda.so"],
60+
}),
4361
strip_include_prefix = "include",
4462
deps = [
4563
":c10"
@@ -51,7 +69,10 @@ cc_library(
5169
hdrs = glob([
5270
'include/c10/**/*.h'
5371
]),
54-
srcs = ["lib/libc10.so"],
72+
srcs = select({
73+
":windows": ["lib/c10.lib"],
74+
"//conditions:default": ["lib/libc10.so"],
75+
}),
5576
strip_include_prefix = "include",
5677
)
5778

@@ -68,11 +89,18 @@ cc_library(
6889
hdrs = glob([
6990
'include/caffe2/**/*.h'
7091
]),
71-
srcs = [
72-
'lib/libcaffe2_nvrtc.so',
73-
'lib/libcaffe2_detectron_ops_gpu.so',
74-
'lib/libcaffe2_observers.so',
75-
'lib/libcaffe2_module_test_dynamic.so'
76-
],
92+
srcs = select({
93+
":windows": [
94+
'lib/caffe2_nvrtc.lib',
95+
'lib/caffe2_detectron_ops_gpu.lib',
96+
'lib/caffe2_module_test_dynamic.lib'
97+
],
98+
"//conditions:default": [
99+
'lib/libcaffe2_nvrtc.so',
100+
'lib/libcaffe2_detectron_ops_gpu.so',
101+
'lib/libcaffe2_observers.so',
102+
'lib/libcaffe2_module_test_dynamic.so'
103+
],
104+
}),
77105
strip_include_prefix = "include",
78106
)

third_party/tensorrt/local/BUILD

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ config_setting(
88
],
99
)
1010

11+
config_setting(
12+
name = "windows",
13+
constraint_values = [
14+
"@platforms//os:windows",
15+
],
16+
)
17+
1118
cc_library(
1219
name = "nvinfer_headers",
1320
hdrs = select({
@@ -22,6 +29,17 @@ cc_library(
2229
"include/aarch64-linux-gnu/NvInferPluginUtils.h",
2330
],
2431
),
32+
":windows": [
33+
"include/NvUtils.h",
34+
] + glob(
35+
[
36+
"include/NvInfer*.h",
37+
],
38+
exclude = [
39+
"include/NvInferPlugin.h",
40+
"include/NvInferPluginUtils.h",
41+
],
42+
),
2543
"//conditions:default": [
2644
"include/x86_64-linux-gnu/NvUtils.h",
2745
] + glob(
@@ -36,6 +54,7 @@ cc_library(
3654
}),
3755
includes = select({
3856
":aarch64_linux": ["include/aarch64-linux-gnu"],
57+
":windows": ["include/"],
3958
"//conditions:default": ["include/x86_64-linux-gnu/"],
4059
}),
4160
visibility = ["//visibility:private"],
@@ -45,13 +64,15 @@ cc_import(
4564
name = "nvinfer_lib",
4665
shared_library = select({
4766
":aarch64_linux": "lib/aarch64-linux-gnu/libnvinfer.so",
67+
":windows": "lib/nvinfer.dll",
4868
"//conditions:default": "lib/x86_64-linux-gnu/libnvinfer.so",
4969
}),
5070
visibility = ["//visibility:private"],
5171
)
5272

5373
cc_library(
5474
name = "nvinfer",
75+
srcs = select({ ":windows": [ "lib/nvinfer.lib" ] }),
5576
deps = [
5677
"nvinfer_headers",
5778
"nvinfer_lib",
@@ -68,6 +89,7 @@ cc_import(
6889
name = "nvparsers_lib",
6990
shared_library = select({
7091
":aarch64_linux": "lib/aarch64-linux-gnu/libnvparsers.so",
92+
":windows": "lib/nvparsers.dll",
7193
"//conditions:default": "lib/x86_64-linux-gnu/libnvparsers.so",
7294
}),
7395
visibility = ["//visibility:private"],
@@ -84,6 +106,13 @@ cc_library(
84106
"include/aarch64-linux-gnu/NvOnnxConfig.h",
85107
"include/aarch64-linux-gnu/NvUffParser.h"
86108
],
109+
":windows": [
110+
"include/NvCaffeParser.h",
111+
"include/NvOnnxParser.h",
112+
"include/NvOnnxParserRuntime.h",
113+
"include/NvOnnxConfig.h",
114+
"include/NvUffParser.h"
115+
]
87116
"//conditions:default": [
88117
"include/x86_64-linux-gnu/NvCaffeParser.h",
89118
"include/x86_64-linux-gnu/NvOnnxParser.h",
@@ -94,6 +123,7 @@ cc_library(
94123
}),
95124
includes = select({
96125
":aarch64_linux": ["include/aarch64-linux-gnu"],
126+
":windows": ["include/"],
97127
"//conditions:default": ["include/x86_64-linux-gnu/"],
98128
}),
99129
visibility = ["//visibility:private"],
@@ -115,6 +145,7 @@ cc_import(
115145
name = "nvonnxparser_lib",
116146
shared_library = select({
117147
":aarch64_linux": "lib/aarch64-linux-gnu/libnvonnxparser.so",
148+
":windows": "lib/nvonnxparser.dll",
118149
"//conditions:default": "lib/x86_64-linux-gnu/libnvonnxparser.so",
119150
}),
120151
visibility = ["//visibility:private"],
@@ -128,6 +159,11 @@ cc_library(
128159
"include/aarch64-linux-gnu/NvOnnxParserRuntime.h",
129160
"include/aarch64-linux-gnu/NvOnnxConfig.h"
130161
],
162+
":windows": [
163+
"include/NvOnnxParser.h",
164+
"include/NvOnnxParserRuntime.h",
165+
"include/NvOnnxConfig.h"
166+
]
131167
"//conditions:default": [
132168
"include/x86_64-linux-gnu/NvOnnxParser.h",
133169
"include/x86_64-linux-gnu/NvOnnxParserRuntime.h",
@@ -136,6 +172,7 @@ cc_library(
136172
}),
137173
includes = select({
138174
":aarch64_linux": ["include/aarch64-linux-gnu"],
175+
":windows": ["include/"],
139176
"//conditions:default": ["include/x86_64-linux-gnu/"],
140177
}),
141178
visibility = ["//visibility:private"],
@@ -157,6 +194,7 @@ cc_import(
157194
name = "nvonnxparser_runtime_lib",
158195
shared_library = select({
159196
":aarch64_linux": "lib/x86_64-linux-gnu/libnvonnxparser_runtime.so",
197+
":windows": "lib/nvonnxparser_runtime.dll",
160198
"//conditions:default": "lib/x86_64-linux-gnu/libnvonnxparser_runtime.so",
161199
}),
162200
visibility = ["//visibility:public"],
@@ -168,12 +206,16 @@ cc_library(
168206
":aarch64_linux": [
169207
"include/aarch64-linux-gnu/NvOnnxParserRuntime.h",
170208
],
209+
":windows": [
210+
"include/NvOnnxParserRuntime.h",
211+
]
171212
"//conditions:default": [
172213
"include/x86_64-linux-gnu/NvOnnxParserRuntime.h",
173214
]
174215
}),
175216
includes = select({
176217
":aarch64_linux": ["include/aarch64-linux-gnu"],
218+
":windows": ["include/"],
177219
"//conditions:default": ["include/x86_64-linux-gnu/"],
178220
}),
179221
visibility = ["//visibility:private"],
@@ -195,6 +237,7 @@ cc_import(
195237
name = "nvcaffeparser_lib",
196238
shared_library = select({
197239
":aarch64_linux": "lib/aarch64-linux-gnu/libnvcaffe_parsers.so",
240+
":windows": "lib/nvcaffe_parsers.dll",
198241
"//conditions:default": "lib/x86_64-linux-gnu/libnvcaffe_parsers.so",
199242
}),
200243
visibility = ["//visibility:private"],
@@ -206,12 +249,16 @@ cc_library(
206249
":aarch64_linux": [
207250
"include/aarch64-linux-gnu/NvCaffeParser.h",
208251
],
252+
":windows": [
253+
"include/NvCaffeParser.h",
254+
]
209255
"//conditions:default": [
210256
"include/x86_64-linux-gnu/NvCaffeParser.h",
211257
]
212258
}),
213259
includes = select({
214260
":aarch64_linux": ["include/aarch64-linux-gnu"],
261+
":windows": ["include/"],
215262
"//conditions:default": ["include/x86_64-linux-gnu/"],
216263
}),
217264
visibility = ["//visibility:private"],
@@ -233,6 +280,7 @@ cc_import(
233280
name = "nvinferplugin_lib",
234281
shared_library = select({
235282
":aarch64_linux": "lib/x86_64-linux-gnu/libnvinfer_plugin.so",
283+
":windows": "lib/nvinfer_plugin.dll",
236284
"//conditions:default": "lib/x86_64-linux-gnu/libnvinfer_plugin.so",
237285
}),
238286
visibility = ["//visibility:private"],
@@ -242,10 +290,12 @@ cc_library(
242290
name = "nvinferplugin_headers",
243291
hdrs = select({
244292
":aarch64_linux": glob(["include/aarch64-linux-gnu/NvInferPlugin*.h"]),
293+
":windows": glob(["include/NvInferPlugin*.h"])
245294
"//conditions:default": glob(["include/x86_64-linux-gnu/NvInferPlugin*.h"])
246295
}),
247296
includes = select({
248297
":aarch64_linux": ["include/aarch64-linux-gnu"],
298+
":windows": ["include/"],
249299
"//conditions:default": ["include/x86_64-linux-gnu/"],
250300
}),
251301
visibility = ["//visibility:private"],

0 commit comments

Comments
 (0)