1# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5# Depend on this target to use the types etc defined in the system without
6# linking against a specific implementation of the system. To link against a
7# particular implementation, use the :for_component or
8# :for_shared_library targets, depending on the type of target you are.
9source_set("system") {
10  sources = [
11    "buffer.h",
12    "core.h",
13    "data_pipe.h",
14    "functions.h",
15    "macros.h",
16    "message_pipe.h",
17    "system_export.h",
18    "types.h",
19  ]
20}
21
22# In an is_component_build build, everything can link against //mojo/system
23# because it is built as a shared library. However, in a static build,
24# //mojo/system is linked into an executable (e.g., mojo_shell), and must be
25# injected into other shared libraries (i.e., Mojo Apps) that need the mojo
26# system API.
27#
28# For component targets, add //mojo/public/c/system:for_component to your deps
29# section.
30#
31# For shared_library targets (e.g., a Mojo App), add
32# //mojo/public/c/system:for_shared_library to your deps
33
34group("for_shared_library") {
35  public_deps = [ ":system" ]
36  if (is_component_build) {
37    deps = [ "//mojo/system" ]
38  } else {
39    deps = [ "//mojo/public/platform/native:system_thunks" ]
40  }
41}
42
43group("for_component") {
44  public_deps = [ ":system" ]
45  if (is_component_build) {
46    deps = [ "//mojo/system" ]
47  }
48}
49