blob: 022460028e621ad0604ecd7c33dfa67543b4ae87 [file] [log] [blame]
# Copyright 2021 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
import("//build_overrides/pigweed.gni")
import("$dir_pw_build/facade.gni")
import("$dir_pw_build/target_types.gni")
import("$dir_pw_docgen/docs.gni")
import("$dir_pw_third_party/boringssl/boringssl.gni")
import("$dir_pw_tls_client/configs.gni")
import("$dir_pw_unit_test/test.gni")
config("public_includes") {
include_dirs = [ "public" ]
}
pw_facade("pw_tls_client") {
backend = pw_tls_client_BACKEND
public_configs = [ ":public_includes" ]
public = [
"public/pw_tls_client/options.h",
"public/pw_tls_client/session.h",
"public/pw_tls_client/status.h",
]
public_deps = [
"$dir_pw_assert",
"$dir_pw_bytes",
"$dir_pw_result",
"$dir_pw_status",
"$dir_pw_stream",
"$dir_pw_string",
]
}
pw_facade("tls_entropy") {
backend = pw_tls_client_ENTROPY_BACKEND
public_configs = [ ":public_includes" ]
public = [ "public/pw_tls_client/entropy.h" ]
public_deps = [
"$dir_pw_bytes",
"$dir_pw_status",
]
}
# A fake entropy source that does nothing. It should only be used for
# demo and test purpose only. Production code shall not use it.
pw_source_set("fake_entropy") {
public_deps = [ ":tls_entropy.facade" ]
sources = [ "fake_entropy.cc" ]
deps = [ "$dir_pw_log" ]
}
pw_facade("time") {
backend = pw_tls_client_TIME_BACKEND
public = []
# The target should only be used by TLS libraries to obtain date time
visibility = [
":*",
"$dir_pw_third_party/boringssl",
"$dir_pw_third_party/mbedtls",
"$dir_pw_third_party/mbedtls:mbedtls_v3",
]
}
# TODO: b/235290724 - Add a python target to generate source file from the
# specified CRLSet file in `pw_tls_client_CRLSET_FILE`
pw_source_set("crlset") {
public_configs = [ ":public_includes" ]
public = [ "public/pw_tls_client/crlset.h" ]
public_deps = [ dir_pw_bytes ]
# TODO: b/235290724 - Add sources generated from a CRLSet file to build.
}
pw_source_set("test_server") {
sources = [ "test_server.cc" ]
public_configs = [ ":public_includes" ]
public = [ "public/pw_tls_client/test/test_server.h" ]
public_deps = [
"$dir_pw_bytes",
"$dir_pw_log",
"$dir_pw_stream",
"$dir_pw_third_party/boringssl",
]
}
pw_test("test_server_test") {
enable_if = dir_pw_third_party_boringssl != ""
public_deps = [
":test_data",
":test_server",
]
sources = [ "test_server_test.cc" ]
}
pw_python_action("generate_test_data") {
header_output = "$target_gen_dir/$target_name/test_certs_and_keys.h"
script = "py/pw_tls_client/generate_test_data.py"
python_deps = [ "py" ]
outputs = [ header_output ]
args = [ rebase_path(header_output) ]
}
config("test_data_includes") {
test_header_out = get_target_outputs(":generate_test_data")
include_dirs = [ get_path_info(test_header_out[0], "dir") ]
}
group("test_data") {
public_deps = [ ":generate_test_data" ]
public_configs = [ ":test_data_includes" ]
}
pw_test_group("tests") {
tests = [ ":test_server_test" ]
}
pw_doc_group("docs") {
sources = [
"backends.rst",
"docs.rst",
]
}