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