forked from facebook/buck2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuck_rust_binary.bzl
More file actions
32 lines (28 loc) · 1.52 KB
/
buck_rust_binary.bzl
File metadata and controls
32 lines (28 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is dual-licensed under either the MIT license found in the
# LICENSE-MIT file in the root directory of this source tree or the Apache
# License, Version 2.0 found in the LICENSE-APACHE file in the root directory
# of this source tree. You may select, at your option, one of the
# above-listed licenses.
load("@fbcode_macros//build_defs/lib:link_styles.bzl", "link_styles")
load("@fbsource//tools/build_defs:rust_binary.bzl", "rust_binary")
def buck_rust_binary(**kwargs):
kwargs.setdefault("edition", "2021")
if kwargs.get("link_style") == None:
link_style = link_styles.default()
kwargs["link_style"] = select({
"DEFAULT": link_style,
"ovr_config//os:macos": "static",
})
# Link group is currently used automatically for rust in dev mode. Unfortunately, it builds
# a binary that is not relocatable and it checks for dev mode by reading the build mode buckconfig.
# If we don't disable link groups, we will also end up building a non-relocatable binary when
# using opt modifier because opt modifier does not change build mode buckconfig. Work around this
# by disabling link groups for now.
# TODO(scottcao): Delete this line once link group macros are properly selectified.
kwargs["link_group_map"] = []
# JEMalloc is not (yet!) the default on MacOS so add the allocator
# explicitly on all platforms here.
kwargs.setdefault("allocator", "jemalloc")
rust_binary(**kwargs)