blob: 64bf02b958434e729e23ecfa6977e10f0be28fd6 [file] [log] [blame]
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
# Description:
# The Bazel launcher.
package(
default_visibility = ["//visibility:public"],
)
WIN_LINK_OPTS = [
"-DEFAULTLIB:advapi32.lib", # GetUserNameW
"-DEFAULTLIB:ole32.lib", # CoTaskMemFree
"-DEFAULTLIB:shell32.lib", # SHGetKnownFolderPath
"-DEFAULTLIB:ws2_32.lib", # grpc
]
cc_library(
name = "blaze_util",
srcs = [
"blaze_util.cc",
"server_process_info.h",
"startup_options.h",
] + select({
"//src/conditions:darwin": [
"blaze_util_darwin.cc",
"blaze_util_posix.cc",
],
"//src/conditions:darwin_x86_64": [
"blaze_util_darwin.cc",
"blaze_util_posix.cc",
],
"//src/conditions:freebsd": [
"blaze_util_bsd.cc",
"blaze_util_posix.cc",
],
"//src/conditions:openbsd": [
"blaze_util_bsd.cc",
"blaze_util_posix.cc",
],
"//src/conditions:windows": [
"blaze_util_windows.cc",
],
"//conditions:default": [
"blaze_util_linux.cc",
"blaze_util_posix.cc",
],
}),
hdrs = [
"blaze_util.h",
"blaze_util_platform.h",
],
linkopts = select({
"//src/conditions:darwin": [
"-framework CoreFoundation",
],
"//src/conditions:darwin_x86_64": [
"-framework CoreFoundation",
],
"//src/conditions:freebsd": [
],
"//src/conditions:openbsd": [
],
"//src/conditions:windows": WIN_LINK_OPTS,
"//conditions:default": [
"-lrt",
],
}),
deps = [
"//src/main/cpp/util",
"//src/main/cpp/util:blaze_exit_code",
"//src/main/cpp/util:logging",
] + select({
"//src/conditions:windows": [
"//src/main/native/windows:lib-file",
"//src/main/native/windows:lib-process",
],
"//conditions:default": [],
}),
)
cc_library(
name = "archive_utils",
srcs = [
"archive_utils.cc",
],
hdrs = [
"archive_utils.h",
],
deps = [
":blaze_util",
"//src/main/cpp/util",
"//src/main/cpp/util:blaze_exit_code",
"//src/main/cpp/util:errors",
"//src/main/cpp/util:logging",
"//third_party/ijar:zip",
],
)
cc_binary(
name = "client",
srcs = [
"blaze.cc",
"blaze.h",
"server_process_info.cc",
"server_process_info.h",
"main.cc",
] + select({
"//src/conditions:windows": ["resources.o"],
"//conditions:default": [],
}),
copts = select({
"//src/conditions:windows": ["/wd4018"],
"//conditions:default": ["-Wno-sign-compare"],
}),
linkopts = select({
"//src/conditions:darwin": [
],
"//src/conditions:darwin_x86_64": [
],
"//src/conditions:freebsd": [
"-lprocstat",
"-lm",
],
"//src/conditions:openbsd": [
],
"//src/conditions:windows": [
],
"//conditions:default": [
"-lrt",
"-ldl",
],
}),
visibility = ["//src:__pkg__"],
deps = [
":archive_utils",
":bazel_startup_options",
":blaze_util",
":option_processor",
":startup_options",
":workspace_layout",
"//src/main/cpp/util",
"//src/main/cpp/util:bazel_log_handler",
"//src/main/cpp/util:errors",
"//src/main/cpp/util:logging",
"//src/main/cpp/util:strings",
"//src/main/protobuf:command_server_cc_grpc",
"//src/main/protobuf:command_server_cc_proto",
"//third_party/ijar:zip",
],
)
cc_library(
name = "option_processor",
srcs = ["option_processor.cc"],
hdrs = [
"option_processor.h",
"option_processor-internal.h",
],
# The system bazelrc can be voided by setting BAZEL_SYSTEM_BAZELRC_PATH to
# /dev/null.
copts = select({
# For windows platforms, this can include environment
# variables in the form %ProgramData%. We need to escape for
# multiple levels, here, this becomes
# /DBAZEL_SYSTEM_BAZELRC_PATH="%%ProgramData%%/bazel.bazelrc"',
# and the double % get reduced down to 1 by the compiler. A
# forward slash is used because \b is a special character,
# backspace.
"//src/conditions:windows": [
"/DBAZEL_SYSTEM_BAZELRC_PATH#\\\"%%ProgramData%%/bazel.bazelrc\\\"",
],
# For posix platforms, this can include environment variables in the
# form ${var_name}. Braces are required.
"//conditions:default": [
"-DBAZEL_SYSTEM_BAZELRC_PATH=\\\"/etc/bazel.bazelrc\\\"",
],
}),
visibility = [
"//src:__pkg__",
"//src/test/cpp:__pkg__",
],
deps = [
":blaze_util",
":rc_file",
":startup_options",
":workspace_layout",
"//src/main/cpp/util",
"//src/main/cpp/util:blaze_exit_code",
"//src/main/cpp/util:logging",
],
)
cc_library(
name = "startup_options",
srcs = ["startup_options.cc"],
hdrs = ["startup_options.h"],
visibility = [
"//src:__pkg__",
"//src/test/cpp:__pkg__",
],
deps = [
":blaze_util",
":workspace_layout",
"//src/main/cpp/util",
"//src/main/cpp/util:blaze_exit_code",
"//src/main/cpp/util:errors",
],
)
cc_library(
name = "bazel_startup_options",
srcs = ["bazel_startup_options.cc"],
hdrs = ["bazel_startup_options.h"],
visibility = [
"//src:__pkg__",
"//src/test/cpp:__pkg__",
],
deps = [
":blaze_util",
":startup_options",
":workspace_layout",
"//src/main/cpp/util:blaze_exit_code",
],
)
cc_library(
name = "workspace_layout",
srcs = ["workspace_layout.cc"],
hdrs = ["workspace_layout.h"],
visibility = [
"//src:__pkg__",
"//src/test/cpp:__pkg__",
],
deps = [
":blaze_util",
"//src/main/cpp/util",
],
)
cc_library(
name = "rc_file",
srcs = ["rc_file.cc"],
hdrs = ["rc_file.h"],
visibility = [
"//src:__pkg__",
"//src/test/cpp:__pkg__",
],
deps = [
":blaze_util",
":workspace_layout",
"//src/main/cpp/util",
"//src/main/cpp/util:logging",
],
)
filegroup(
name = "srcs",
srcs = glob(["**"]) + ["//src/main/cpp/util:srcs"],
visibility = ["//src:__pkg__"],
)