Skip to content

Commit caa45a6

Browse files
committed
Fix //src/main/cpp:client link with MinGW
Linking the Bazel client requires a number of explicit library linker args when using MinGW. This was missed in #28751.
1 parent 96c57f8 commit caa45a6

File tree

2 files changed

+59
-16
lines changed

2 files changed

+59
-16
lines changed

src/conditions/BUILD

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,24 @@ config_setting(
226226
flag_values = {"@rules_cc//cc/compiler:compiler": "msvc-cl"},
227227
)
228228

229+
config_setting(
230+
name = "windows_clang",
231+
constraint_values = ["@platforms//os:windows"],
232+
flag_values = {"@rules_cc//cc/compiler:compiler": "clang"},
233+
)
234+
235+
config_setting(
236+
name = "windows_gcc",
237+
constraint_values = ["@platforms//os:windows"],
238+
flag_values = {"@rules_cc//cc/compiler:compiler": "gcc"},
239+
)
240+
241+
config_setting(
242+
name = "windows_mingw_gcc",
243+
constraint_values = ["@platforms//os:windows"],
244+
flag_values = {"@rules_cc//cc/compiler:compiler": "mingw-gcc"},
245+
)
246+
229247
selects.config_setting_group(
230248
name = "windows_msvc_like",
231249
match_any = [
@@ -235,6 +253,16 @@ selects.config_setting_group(
235253
visibility = ["//visibility:public"],
236254
)
237255

256+
selects.config_setting_group(
257+
name = "windows_gcc_like",
258+
match_any = [
259+
":windows_clang",
260+
":windows_gcc",
261+
":windows_mingw_gcc",
262+
],
263+
visibility = ["//visibility:public"],
264+
)
265+
238266
config_setting(
239267
name = "arm",
240268
constraint_values = ["@platforms//cpu:arm"],

src/main/cpp/BUILD

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -109,22 +109,37 @@ cc_binary(
109109
"//src/conditions:windows_msvc_like": ["/wd4018"],
110110
"//conditions:default": ["-Wno-sign-compare"],
111111
}),
112-
linkopts = select({
113-
"//src/conditions:darwin": [
114-
],
115-
"//src/conditions:freebsd": [
116-
"-lprocstat",
117-
"-lm",
118-
],
119-
"//src/conditions:openbsd": [
120-
],
121-
"//src/conditions:windows": [
122-
],
123-
"//conditions:default": [
124-
"-lrt",
125-
"-ldl",
126-
],
127-
}),
112+
linkopts = (
113+
select({
114+
"//src/conditions:darwin": [
115+
],
116+
"//src/conditions:freebsd": [
117+
"-lprocstat",
118+
"-lm",
119+
],
120+
"//src/conditions:openbsd": [
121+
],
122+
"//src/conditions:windows": [
123+
],
124+
"//conditions:default": [
125+
"-lrt",
126+
"-ldl",
127+
],
128+
}) +
129+
select({
130+
"//src/conditions:windows_gcc_like": [
131+
"-lbcrypt",
132+
"-liphlpapi",
133+
"-lole32",
134+
"-lshell32",
135+
"-luuid",
136+
"-lws2_32",
137+
# MinGW requires -municode when using wmain.
138+
"-municode",
139+
],
140+
"//conditions:default": [],
141+
})
142+
),
128143
visibility = ["//src:__pkg__"],
129144
deps = [
130145
":archive_utils",

0 commit comments

Comments
 (0)