xref: /aosp_15_r20/external/openscreen/third_party/boringssl/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 Sanglardimport("BUILD.generated.gni")
7*3f982cf4SFabien Sanglardimport("BUILD.generated_tests.gni")
8*3f982cf4SFabien Sanglard
9*3f982cf4SFabien Sanglardif (build_with_chromium) {
10*3f982cf4SFabien Sanglard  group("boringssl") {
11*3f982cf4SFabien Sanglard    public_configs = [ "//build/config/compiler:default_include_dirs" ]
12*3f982cf4SFabien Sanglard    public_deps = [
13*3f982cf4SFabien Sanglard      "//third_party/boringssl",
14*3f982cf4SFabien Sanglard    ]
15*3f982cf4SFabien Sanglard  }
16*3f982cf4SFabien Sanglard} else {
17*3f982cf4SFabien Sanglard  # Config for us and everybody else depending on BoringSSL.
18*3f982cf4SFabien Sanglard  config("external_config") {
19*3f982cf4SFabien Sanglard    include_dirs = [ "src/include" ]
20*3f982cf4SFabien Sanglard    cflags = []
21*3f982cf4SFabien Sanglard    if (is_clang) {
22*3f982cf4SFabien Sanglard      cflags += [ "-Wno-extra-semi" ]
23*3f982cf4SFabien Sanglard    }
24*3f982cf4SFabien Sanglard  }
25*3f982cf4SFabien Sanglard
26*3f982cf4SFabien Sanglard  # Config internal to this build file, shared by boringssl and boringssl_fuzzer.
27*3f982cf4SFabien Sanglard  config("internal_config") {
28*3f982cf4SFabien Sanglard    visibility = [ ":*" ]  # Only targets in this file can depend on this.
29*3f982cf4SFabien Sanglard    defines = [
30*3f982cf4SFabien Sanglard      "BORINGSSL_ALLOW_CXX_RUNTIME",
31*3f982cf4SFabien Sanglard      "BORINGSSL_IMPLEMENTATION",
32*3f982cf4SFabien Sanglard      "BORINGSSL_NO_STATIC_INITIALIZER",
33*3f982cf4SFabien Sanglard      "OPENSSL_SMALL",
34*3f982cf4SFabien Sanglard    ]
35*3f982cf4SFabien Sanglard    cflags = [ "-w" ]  # Disable all warnings.
36*3f982cf4SFabien Sanglard    cflags_c = [ "-std=c99" ]
37*3f982cf4SFabien Sanglard
38*3f982cf4SFabien Sanglard    defines += [ "_XOPEN_SOURCE=700" ]
39*3f982cf4SFabien Sanglard  }
40*3f982cf4SFabien Sanglard
41*3f982cf4SFabien Sanglard  config("no_asm_config") {
42*3f982cf4SFabien Sanglard    visibility = [ ":*" ]  # Only targets in this file can depend on this.
43*3f982cf4SFabien Sanglard    defines = [ "OPENSSL_NO_ASM" ]
44*3f982cf4SFabien Sanglard  }
45*3f982cf4SFabien Sanglard
46*3f982cf4SFabien Sanglard  all_sources = crypto_sources + ssl_sources
47*3f982cf4SFabien Sanglard  all_headers = crypto_headers + ssl_headers
48*3f982cf4SFabien Sanglard
49*3f982cf4SFabien Sanglard  # This has no sources on some platforms so must be a source_set.
50*3f982cf4SFabien Sanglard  source_set("boringssl_asm") {
51*3f982cf4SFabien Sanglard    visibility = [ ":*" ]  # Only targets in this file can depend on this.
52*3f982cf4SFabien Sanglard
53*3f982cf4SFabien Sanglard    sources = []
54*3f982cf4SFabien Sanglard    asmflags = []
55*3f982cf4SFabien Sanglard
56*3f982cf4SFabien Sanglard    if (is_linux) {
57*3f982cf4SFabien Sanglard      if (current_cpu == "x64") {
58*3f982cf4SFabien Sanglard        sources += crypto_sources_linux_x86_64
59*3f982cf4SFabien Sanglard      } else if (current_cpu == "x86") {
60*3f982cf4SFabien Sanglard        sources += crypto_sources_linux_x86
61*3f982cf4SFabien Sanglard      } else {
62*3f982cf4SFabien Sanglard        public_configs = [ ":no_asm_config" ]
63*3f982cf4SFabien Sanglard      }
64*3f982cf4SFabien Sanglard    } else if (is_mac) {
65*3f982cf4SFabien Sanglard      if (current_cpu == "x64") {
66*3f982cf4SFabien Sanglard        sources += crypto_sources_mac_x86_64
67*3f982cf4SFabien Sanglard      } else if (current_cpu == "x86") {
68*3f982cf4SFabien Sanglard        sources += crypto_sources_mac_x86
69*3f982cf4SFabien Sanglard      } else {
70*3f982cf4SFabien Sanglard        public_configs = [ ":no_asm_config" ]
71*3f982cf4SFabien Sanglard      }
72*3f982cf4SFabien Sanglard    } else {
73*3f982cf4SFabien Sanglard      public_configs = [ ":no_asm_config" ]
74*3f982cf4SFabien Sanglard    }
75*3f982cf4SFabien Sanglard  }
76*3f982cf4SFabien Sanglard
77*3f982cf4SFabien Sanglard  source_set("boringssl") {
78*3f982cf4SFabien Sanglard    sources = all_sources
79*3f982cf4SFabien Sanglard    public = all_headers
80*3f982cf4SFabien Sanglard    deps = [
81*3f982cf4SFabien Sanglard      ":boringssl_asm",
82*3f982cf4SFabien Sanglard      "src/third_party/fiat:fiat_license",
83*3f982cf4SFabien Sanglard    ]
84*3f982cf4SFabien Sanglard
85*3f982cf4SFabien Sanglard    public_configs = [ ":external_config" ]
86*3f982cf4SFabien Sanglard    configs += [ ":internal_config" ]
87*3f982cf4SFabien Sanglard  }
88*3f982cf4SFabien Sanglard}
89