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