forked from facebook/buck2
-
Notifications
You must be signed in to change notification settings - Fork 1
/
buck_rust_binary.bzl
31 lines (27 loc) · 1.44 KB
/
buck_rust_binary.bzl
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
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under both the MIT license found in the
# LICENSE-MIT file in the root directory of this source tree and the Apache
# License, Version 2.0 found in the LICENSE-APACHE file in the root directory
# of this source tree.
load("@fbcode_macros//build_defs:rust_binary.bzl", "rust_binary")
load("@fbcode_macros//build_defs/lib:link_styles.bzl", "link_styles")
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)