chromium/services/service_manager/public/cpp/service_executable/BUILD.gn

# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("support") {
  sources = [
    "service_executable_environment.cc",
    "service_executable_environment.h",
  ]

  deps = [
    ":switches",
    "//mojo/core/embedder",
    "//mojo/public/cpp/platform",
    "//mojo/public/cpp/system",
    "//sandbox/policy",
    "//services/service_manager/public/cpp",
  ]

  public_deps = [
    "//base",
    "//services/service_manager/public/mojom",
  ]

  if (is_linux || is_chromeos) {
    deps += [
      "//sandbox/linux:sandbox",
      "//sandbox/linux:sandbox_services",
      "//sandbox/linux:seccomp_bpf",
    ]
  }
}

source_set("switches") {
  sources = [
    "switches.cc",
    "switches.h",
  ]
}

# Service executable targets should link against this to get a boilerplate entry
# point which accepts canonical command-line arguments to establish a connection
# to the Service Manager. In order to link properly, dependents must ensure that
# they define a ServiceMain() symbol which matches the signature in
# //services/service_manager/public/cpp/service_executable/service_main.h.
#
# Note that GN targets based on the service_executable() template defined in
# service_executable.gni implicitly link against this.
source_set("main") {
  public = [ "service_main.h" ]

  sources = [ "main.cc" ]

  public_deps = [ "//services/service_manager/public/mojom" ]

  deps = [
    ":support",
    "//base",
    "//base:base_static",
    "//base:i18n",
  ]
}