[ssl] Add boringssl build script.

Add a build script for building boringssl library. The script currently
defines a library target suitable for baremetal use.

generate_build_files.py is a python script for generating files needed
for gn build. The script is used by a number of other google projects
that build boringssl. It generates the following files:

BUILD.generated.gni -- A .gni file that defines lists of source files
for building crypto library, ssl library, tool and fuzzer etc.

BUILD.generated_tests.gni -- Lists of source files for test.

crypto_test_data.cc

err_data.c -- error string table.

The high level build script BUILD.gn is added by this CL.

The baremetal target excludes all source files that require file system
and socket support. But some source files still try to include
<sys/socket.h>. Thus, a baremetal_sysdeps folder is added to fake an
empty socket header to avoid compilation error. boringssl_utils.cc
implements a logic for loading certificate/crls from buffer, as upstream
boringssl only supports loading from files which may not be viable on
embeded platform.

Change-Id: I49bf2a645b4e5a86c15d1c74a48fe5b5d251baa8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/38080
Commit-Queue: Yecheng Zhao <zyecheng@google.com>
Reviewed-by: Ali Zhang <alizhang@google.com>
Reviewed-by: Varun Sharma <vars@google.com>
10 files changed
tree: 97b151a9e2f5ac801dbae7b1c7b9d4b89e738b9d
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32f429i_disc1/
  7. pw_console/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32f429i_disc1/
  12. targets/
  13. third_party/
  14. tools/
  15. .gitattributes
  16. .gitignore
  17. .gitmodules
  18. .gn
  19. activate.bat
  20. banner.txt
  21. bootstrap.bat
  22. bootstrap.sh
  23. BUILD.gn
  24. BUILDCONFIG.gn
  25. navbar.md
  26. PW_PLUGINS
  27. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.