|  | # 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: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", | 
|  | "get_self_path_linux.cc", | 
|  | ], | 
|  | }), | 
|  | hdrs = [ | 
|  | "blaze_util.h", | 
|  | "blaze_util_platform.h", | 
|  | ], | 
|  | linkopts = select({ | 
|  | "//src/conditions:darwin": [ | 
|  | "-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", | 
|  | "@abseil-cpp//absl/base:log_severity", | 
|  | "@abseil-cpp//absl/log:globals", | 
|  | "@abseil-cpp//absl/log:initialize", | 
|  | ] + 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", | 
|  | "main.cc", | 
|  | "server_process_info.cc", | 
|  | "server_process_info.h", | 
|  | ] + 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: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", | 
|  | ] + select({ | 
|  | "//src/conditions:windows": ["option_processor_windows.cc"], | 
|  | "//conditions:default": ["option_processor_unix.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", | 
|  | "@abseil-cpp//absl/strings", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | 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", | 
|  | "@abseil-cpp//absl/algorithm:container", | 
|  | "@abseil-cpp//absl/container:flat_hash_map", | 
|  | "@abseil-cpp//absl/functional:function_ref", | 
|  | "@abseil-cpp//absl/memory", | 
|  | "@abseil-cpp//absl/strings", | 
|  | "@abseil-cpp//absl/strings:str_format", | 
|  | "@abseil-cpp//absl/strings:string_view", | 
|  | "@abseil-cpp//absl/types:span", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | filegroup( | 
|  | name = "srcs", | 
|  | srcs = glob(["**"]) + ["//src/main/cpp/util:srcs"], | 
|  | visibility = ["//src:__pkg__"], | 
|  | ) |