xref: /aosp_15_r20/external/cronet/components/nacl/common/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2015 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build/buildflag_header.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//components/nacl/features.gni")
7*6777b538SAndroid Build Coastguard Workerimport("//components/nacl/toolchain.gni")
8*6777b538SAndroid Build Coastguard Workerimport("//mojo/public/tools/bindings/mojom.gni")
9*6777b538SAndroid Build Coastguard Worker
10*6777b538SAndroid Build Coastguard Workerif (enable_nacl) {
11*6777b538SAndroid Build Coastguard Worker  # This is separate so it can be used by ../broker:nacl64.
12*6777b538SAndroid Build Coastguard Worker  static_library("minimal") {
13*6777b538SAndroid Build Coastguard Worker    sources = [
14*6777b538SAndroid Build Coastguard Worker      "nacl_cmd_line.cc",
15*6777b538SAndroid Build Coastguard Worker      "nacl_cmd_line.h",
16*6777b538SAndroid Build Coastguard Worker      "nacl_constants.cc",
17*6777b538SAndroid Build Coastguard Worker      "nacl_constants.h",
18*6777b538SAndroid Build Coastguard Worker      "nacl_messages.cc",
19*6777b538SAndroid Build Coastguard Worker      "nacl_messages.h",
20*6777b538SAndroid Build Coastguard Worker      "nacl_process_type.h",
21*6777b538SAndroid Build Coastguard Worker      "nacl_service.cc",
22*6777b538SAndroid Build Coastguard Worker      "nacl_service.h",
23*6777b538SAndroid Build Coastguard Worker      "nacl_types.cc",
24*6777b538SAndroid Build Coastguard Worker      "nacl_types.h",
25*6777b538SAndroid Build Coastguard Worker      "nacl_types_param_traits.cc",
26*6777b538SAndroid Build Coastguard Worker      "nacl_types_param_traits.h",
27*6777b538SAndroid Build Coastguard Worker    ]
28*6777b538SAndroid Build Coastguard Worker
29*6777b538SAndroid Build Coastguard Worker    public_deps = [
30*6777b538SAndroid Build Coastguard Worker      ":minimal_content_dummy",
31*6777b538SAndroid Build Coastguard Worker      ":switches",
32*6777b538SAndroid Build Coastguard Worker      "//ipc",
33*6777b538SAndroid Build Coastguard Worker      "//sandbox/policy",
34*6777b538SAndroid Build Coastguard Worker    ]
35*6777b538SAndroid Build Coastguard Worker
36*6777b538SAndroid Build Coastguard Worker    deps = [
37*6777b538SAndroid Build Coastguard Worker      "//base",
38*6777b538SAndroid Build Coastguard Worker      "//base:base_static",
39*6777b538SAndroid Build Coastguard Worker      "//content/public/common:content_descriptors",
40*6777b538SAndroid Build Coastguard Worker      "//mojo/core/embedder",
41*6777b538SAndroid Build Coastguard Worker      "//native_client/src/trusted/error_code",
42*6777b538SAndroid Build Coastguard Worker      "//services/service_manager/public/cpp",
43*6777b538SAndroid Build Coastguard Worker    ]
44*6777b538SAndroid Build Coastguard Worker  }
45*6777b538SAndroid Build Coastguard Worker
46*6777b538SAndroid Build Coastguard Worker  # This exists just to make 'gn check' happy with :minimal.  It can't
47*6777b538SAndroid Build Coastguard Worker  # depend on //content/public/common or anything like that, because that
48*6777b538SAndroid Build Coastguard Worker  # would bring in lots more than counts as "minimal" (stuff that should
49*6777b538SAndroid Build Coastguard Worker  # not be in the nacl64.exe build).
50*6777b538SAndroid Build Coastguard Worker  source_set("minimal_content_dummy") {
51*6777b538SAndroid Build Coastguard Worker    check_includes = false
52*6777b538SAndroid Build Coastguard Worker    sources = [
53*6777b538SAndroid Build Coastguard Worker      "//content/public/common/content_descriptors.h",
54*6777b538SAndroid Build Coastguard Worker      "//content/public/common/content_switches.h",
55*6777b538SAndroid Build Coastguard Worker      "//content/public/common/process_type.h",
56*6777b538SAndroid Build Coastguard Worker    ]
57*6777b538SAndroid Build Coastguard Worker
58*6777b538SAndroid Build Coastguard Worker    # Deps required by the above headers.
59*6777b538SAndroid Build Coastguard Worker    deps = [ "//media:media_buildflags" ]
60*6777b538SAndroid Build Coastguard Worker  }
61*6777b538SAndroid Build Coastguard Worker
62*6777b538SAndroid Build Coastguard Worker  static_library("common") {
63*6777b538SAndroid Build Coastguard Worker    sources = [
64*6777b538SAndroid Build Coastguard Worker      "nacl_host_messages.cc",
65*6777b538SAndroid Build Coastguard Worker      "nacl_host_messages.h",
66*6777b538SAndroid Build Coastguard Worker      "pnacl_types.cc",
67*6777b538SAndroid Build Coastguard Worker      "pnacl_types.h",
68*6777b538SAndroid Build Coastguard Worker    ]
69*6777b538SAndroid Build Coastguard Worker
70*6777b538SAndroid Build Coastguard Worker    public_deps = [
71*6777b538SAndroid Build Coastguard Worker      ":minimal",
72*6777b538SAndroid Build Coastguard Worker      ":mojo_bindings",
73*6777b538SAndroid Build Coastguard Worker      ":switches",
74*6777b538SAndroid Build Coastguard Worker      "//ipc",
75*6777b538SAndroid Build Coastguard Worker    ]
76*6777b538SAndroid Build Coastguard Worker
77*6777b538SAndroid Build Coastguard Worker    deps = [
78*6777b538SAndroid Build Coastguard Worker      "//base",
79*6777b538SAndroid Build Coastguard Worker      "//build:chromeos_buildflags",
80*6777b538SAndroid Build Coastguard Worker      "//url",
81*6777b538SAndroid Build Coastguard Worker      "//url/ipc:url_ipc",
82*6777b538SAndroid Build Coastguard Worker    ]
83*6777b538SAndroid Build Coastguard Worker
84*6777b538SAndroid Build Coastguard Worker    if (is_linux || is_chromeos) {
85*6777b538SAndroid Build Coastguard Worker      sources += [
86*6777b538SAndroid Build Coastguard Worker        "nacl_paths.cc",
87*6777b538SAndroid Build Coastguard Worker        "nacl_paths.h",
88*6777b538SAndroid Build Coastguard Worker      ]
89*6777b538SAndroid Build Coastguard Worker
90*6777b538SAndroid Build Coastguard Worker      defines = [ "__STDC_LIMIT_MACROS=1" ]
91*6777b538SAndroid Build Coastguard Worker
92*6777b538SAndroid Build Coastguard Worker      deps += [ "//content/common:sandbox_support_linux" ]
93*6777b538SAndroid Build Coastguard Worker    }
94*6777b538SAndroid Build Coastguard Worker  }
95*6777b538SAndroid Build Coastguard Worker
96*6777b538SAndroid Build Coastguard Worker  mojom("mojo_bindings") {
97*6777b538SAndroid Build Coastguard Worker    sources = [ "nacl.mojom" ]
98*6777b538SAndroid Build Coastguard Worker    cpp_typemaps = [
99*6777b538SAndroid Build Coastguard Worker      {
100*6777b538SAndroid Build Coastguard Worker        types = [
101*6777b538SAndroid Build Coastguard Worker          {
102*6777b538SAndroid Build Coastguard Worker            mojom = "nacl.mojom.NaClErrorCode"
103*6777b538SAndroid Build Coastguard Worker            cpp = "::NaClErrorCode"
104*6777b538SAndroid Build Coastguard Worker          },
105*6777b538SAndroid Build Coastguard Worker        ]
106*6777b538SAndroid Build Coastguard Worker        traits_headers =
107*6777b538SAndroid Build Coastguard Worker            [ "//native_client/src/trusted/service_runtime/nacl_error_code.h" ]
108*6777b538SAndroid Build Coastguard Worker        traits_private_headers =
109*6777b538SAndroid Build Coastguard Worker            [ "//components/nacl/common/nacl_types_param_traits.h" ]
110*6777b538SAndroid Build Coastguard Worker        traits_public_deps = [
111*6777b538SAndroid Build Coastguard Worker          ":minimal",
112*6777b538SAndroid Build Coastguard Worker          "//native_client/src/trusted/error_code",
113*6777b538SAndroid Build Coastguard Worker        ]
114*6777b538SAndroid Build Coastguard Worker        traits_deps = [ "//ipc" ]
115*6777b538SAndroid Build Coastguard Worker      },
116*6777b538SAndroid Build Coastguard Worker    ]
117*6777b538SAndroid Build Coastguard Worker  }
118*6777b538SAndroid Build Coastguard Worker}
119*6777b538SAndroid Build Coastguard Worker
120*6777b538SAndroid Build Coastguard Worker# Depending on this allows targets to unconditionally include
121*6777b538SAndroid Build Coastguard Worker# nacl_process_type.h without testing whether nacl is enabled.
122*6777b538SAndroid Build Coastguard Workersource_set("process_type") {
123*6777b538SAndroid Build Coastguard Worker  public = [ "nacl_process_type.h" ]
124*6777b538SAndroid Build Coastguard Worker
125*6777b538SAndroid Build Coastguard Worker  deps = [ "//content/public/common" ]
126*6777b538SAndroid Build Coastguard Worker}
127*6777b538SAndroid Build Coastguard Worker
128*6777b538SAndroid Build Coastguard Workerstatic_library("switches") {
129*6777b538SAndroid Build Coastguard Worker  sources = [
130*6777b538SAndroid Build Coastguard Worker    "nacl_switches.cc",
131*6777b538SAndroid Build Coastguard Worker    "nacl_switches.h",
132*6777b538SAndroid Build Coastguard Worker  ]
133*6777b538SAndroid Build Coastguard Worker}
134*6777b538SAndroid Build Coastguard Worker
135*6777b538SAndroid Build Coastguard Workerbuildflag_header("buildflags") {
136*6777b538SAndroid Build Coastguard Worker  header = "buildflags.h"
137*6777b538SAndroid Build Coastguard Worker  flags = [
138*6777b538SAndroid Build Coastguard Worker    "ENABLE_NACL=$enable_nacl",
139*6777b538SAndroid Build Coastguard Worker    "IS_MINIMAL_TOOLCHAIN=$is_minimal_toolchain",
140*6777b538SAndroid Build Coastguard Worker  ]
141*6777b538SAndroid Build Coastguard Worker}
142