xref: /aosp_15_r20/external/openscreen/util/BUILD.gn (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard# Copyright 2019 The Chromium Authors. All rights reserved.
2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be
3*3f982cf4SFabien Sanglard# found in the LICENSE file.
4*3f982cf4SFabien Sanglard
5*3f982cf4SFabien Sanglardimport("//build_overrides/build.gni")
6*3f982cf4SFabien Sanglard
7*3f982cf4SFabien Sanglarddeclare_args() {
8*3f982cf4SFabien Sanglard  # Enables trace logging in build. This is true by default, unless
9*3f982cf4SFabien Sanglard  # we are built against Chrome--we have no way to link their platform
10*3f982cf4SFabien Sanglard  # implementation into our binaries so trace logging is not possible.
11*3f982cf4SFabien Sanglard  enable_trace_logging = !build_with_chromium
12*3f982cf4SFabien Sanglard}
13*3f982cf4SFabien Sanglard
14*3f982cf4SFabien Sanglardconfig("trace_logging_config") {
15*3f982cf4SFabien Sanglard  if (enable_trace_logging) {
16*3f982cf4SFabien Sanglard    defines = [ "ENABLE_TRACE_LOGGING" ]
17*3f982cf4SFabien Sanglard  }
18*3f982cf4SFabien Sanglard}
19*3f982cf4SFabien Sanglard
20*3f982cf4SFabien Sanglard# The set of util classes which have no dependency on platform:api.
21*3f982cf4SFabien Sanglardsource_set("base") {
22*3f982cf4SFabien Sanglard  sources = [
23*3f982cf4SFabien Sanglard    "base64.cc",
24*3f982cf4SFabien Sanglard    "base64.h",
25*3f982cf4SFabien Sanglard    "big_endian.cc",
26*3f982cf4SFabien Sanglard    "big_endian.h",
27*3f982cf4SFabien Sanglard    "chrono_helpers.h",
28*3f982cf4SFabien Sanglard    "enum_name_table.h",
29*3f982cf4SFabien Sanglard    "flat_map.h",
30*3f982cf4SFabien Sanglard    "hashing.h",
31*3f982cf4SFabien Sanglard    "integer_division.h",
32*3f982cf4SFabien Sanglard    "json/json_helpers.h",
33*3f982cf4SFabien Sanglard    "json/json_serialization.cc",
34*3f982cf4SFabien Sanglard    "json/json_serialization.h",
35*3f982cf4SFabien Sanglard    "json/json_value.cc",
36*3f982cf4SFabien Sanglard    "json/json_value.h",
37*3f982cf4SFabien Sanglard    "osp_logging.h",
38*3f982cf4SFabien Sanglard    "saturate_cast.h",
39*3f982cf4SFabien Sanglard    "simple_fraction.cc",
40*3f982cf4SFabien Sanglard    "simple_fraction.h",
41*3f982cf4SFabien Sanglard    "std_util.cc",
42*3f982cf4SFabien Sanglard    "std_util.h",
43*3f982cf4SFabien Sanglard    "stringprintf.cc",
44*3f982cf4SFabien Sanglard    "stringprintf.h",
45*3f982cf4SFabien Sanglard    "url.cc",
46*3f982cf4SFabien Sanglard    "url.h",
47*3f982cf4SFabien Sanglard    "weak_ptr.h",
48*3f982cf4SFabien Sanglard    "yet_another_bit_vector.cc",
49*3f982cf4SFabien Sanglard    "yet_another_bit_vector.h",
50*3f982cf4SFabien Sanglard  ]
51*3f982cf4SFabien Sanglard
52*3f982cf4SFabien Sanglard  public_deps = [
53*3f982cf4SFabien Sanglard    "../platform:base",
54*3f982cf4SFabien Sanglard    "../platform:logging",
55*3f982cf4SFabien Sanglard    "../third_party/abseil",
56*3f982cf4SFabien Sanglard    "../third_party/jsoncpp",
57*3f982cf4SFabien Sanglard  ]
58*3f982cf4SFabien Sanglard
59*3f982cf4SFabien Sanglard  deps = [
60*3f982cf4SFabien Sanglard    "../third_party/mozilla",
61*3f982cf4SFabien Sanglard
62*3f982cf4SFabien Sanglard    # We do a clone of Chrome's modp_b64 in order to share their BUILD.gn
63*3f982cf4SFabien Sanglard    # and license files, so this should always be an absolute reference.
64*3f982cf4SFabien Sanglard    "//third_party/modp_b64",
65*3f982cf4SFabien Sanglard  ]
66*3f982cf4SFabien Sanglard
67*3f982cf4SFabien Sanglard  public_configs = [ "../build:openscreen_include_dirs" ]
68*3f982cf4SFabien Sanglard}
69*3f982cf4SFabien Sanglard
70*3f982cf4SFabien Sanglardsource_set("util") {
71*3f982cf4SFabien Sanglard  sources = [
72*3f982cf4SFabien Sanglard    "alarm.cc",
73*3f982cf4SFabien Sanglard    "alarm.h",
74*3f982cf4SFabien Sanglard    "crypto/certificate_utils.cc",
75*3f982cf4SFabien Sanglard    "crypto/certificate_utils.h",
76*3f982cf4SFabien Sanglard    "crypto/digest_sign.cc",
77*3f982cf4SFabien Sanglard    "crypto/digest_sign.h",
78*3f982cf4SFabien Sanglard    "crypto/openssl_util.cc",
79*3f982cf4SFabien Sanglard    "crypto/openssl_util.h",
80*3f982cf4SFabien Sanglard    "crypto/pem_helpers.cc",
81*3f982cf4SFabien Sanglard    "crypto/pem_helpers.h",
82*3f982cf4SFabien Sanglard    "crypto/random_bytes.cc",
83*3f982cf4SFabien Sanglard    "crypto/random_bytes.h",
84*3f982cf4SFabien Sanglard    "crypto/rsa_private_key.cc",
85*3f982cf4SFabien Sanglard    "crypto/rsa_private_key.h",
86*3f982cf4SFabien Sanglard    "crypto/secure_hash.cc",
87*3f982cf4SFabien Sanglard    "crypto/secure_hash.h",
88*3f982cf4SFabien Sanglard    "crypto/sha2.cc",
89*3f982cf4SFabien Sanglard    "crypto/sha2.h",
90*3f982cf4SFabien Sanglard    "trace_logging.h",
91*3f982cf4SFabien Sanglard    "trace_logging/macro_support.h",
92*3f982cf4SFabien Sanglard    "trace_logging/scoped_trace_operations.cc",
93*3f982cf4SFabien Sanglard    "trace_logging/scoped_trace_operations.h",
94*3f982cf4SFabien Sanglard  ]
95*3f982cf4SFabien Sanglard
96*3f982cf4SFabien Sanglard  public_deps = [
97*3f982cf4SFabien Sanglard    ":base",
98*3f982cf4SFabien Sanglard    "../platform:api",
99*3f982cf4SFabien Sanglard    "../platform:base",
100*3f982cf4SFabien Sanglard    "../third_party/abseil",
101*3f982cf4SFabien Sanglard    "../third_party/jsoncpp",
102*3f982cf4SFabien Sanglard  ]
103*3f982cf4SFabien Sanglard
104*3f982cf4SFabien Sanglard  deps = [ "../third_party/boringssl" ]
105*3f982cf4SFabien Sanglard
106*3f982cf4SFabien Sanglard  public_configs = [
107*3f982cf4SFabien Sanglard    "../build:openscreen_include_dirs",
108*3f982cf4SFabien Sanglard    ":trace_logging_config",
109*3f982cf4SFabien Sanglard  ]
110*3f982cf4SFabien Sanglard}
111*3f982cf4SFabien Sanglard
112*3f982cf4SFabien Sanglardsource_set("unittests") {
113*3f982cf4SFabien Sanglard  testonly = true
114*3f982cf4SFabien Sanglard
115*3f982cf4SFabien Sanglard  sources = [
116*3f982cf4SFabien Sanglard    "alarm_unittest.cc",
117*3f982cf4SFabien Sanglard    "base64_unittest.cc",
118*3f982cf4SFabien Sanglard    "big_endian_unittest.cc",
119*3f982cf4SFabien Sanglard    "crypto/certificate_utils_unittest.cc",
120*3f982cf4SFabien Sanglard    "crypto/random_bytes_unittest.cc",
121*3f982cf4SFabien Sanglard    "crypto/rsa_private_key_unittest.cc",
122*3f982cf4SFabien Sanglard    "crypto/secure_hash_unittest.cc",
123*3f982cf4SFabien Sanglard    "crypto/sha2_unittest.cc",
124*3f982cf4SFabien Sanglard    "enum_name_table_unittest.cc",
125*3f982cf4SFabien Sanglard    "flat_map_unittest.cc",
126*3f982cf4SFabien Sanglard    "integer_division_unittest.cc",
127*3f982cf4SFabien Sanglard    "json/json_helpers_unittest.cc",
128*3f982cf4SFabien Sanglard    "json/json_serialization_unittest.cc",
129*3f982cf4SFabien Sanglard    "json/json_value_unittest.cc",
130*3f982cf4SFabien Sanglard    "saturate_cast_unittest.cc",
131*3f982cf4SFabien Sanglard    "simple_fraction_unittest.cc",
132*3f982cf4SFabien Sanglard    "stringprintf_unittest.cc",
133*3f982cf4SFabien Sanglard    "trace_logging/scoped_trace_operations_unittest.cc",
134*3f982cf4SFabien Sanglard    "url_unittest.cc",
135*3f982cf4SFabien Sanglard    "weak_ptr_unittest.cc",
136*3f982cf4SFabien Sanglard    "yet_another_bit_vector_unittest.cc",
137*3f982cf4SFabien Sanglard  ]
138*3f982cf4SFabien Sanglard
139*3f982cf4SFabien Sanglard  # The trace logging unittests depend on macros only defined
140*3f982cf4SFabien Sanglard  # when trace logging is enabled.
141*3f982cf4SFabien Sanglard  if (enable_trace_logging) {
142*3f982cf4SFabien Sanglard    sources += [ "trace_logging_unittest.cc" ]
143*3f982cf4SFabien Sanglard  }
144*3f982cf4SFabien Sanglard
145*3f982cf4SFabien Sanglard  deps = [
146*3f982cf4SFabien Sanglard    ":util",
147*3f982cf4SFabien Sanglard    "../platform:test",
148*3f982cf4SFabien Sanglard    "../third_party/abseil",
149*3f982cf4SFabien Sanglard    "../third_party/boringssl",
150*3f982cf4SFabien Sanglard    "../third_party/googletest:gmock",
151*3f982cf4SFabien Sanglard    "../third_party/googletest:gtest",
152*3f982cf4SFabien Sanglard    "../third_party/jsoncpp",
153*3f982cf4SFabien Sanglard  ]
154*3f982cf4SFabien Sanglard}
155