# Copyright 2020 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_docgen/docs.gni") import("$dir_pw_unit_test/test.gni") import("arm_gcc/toolchains.gni") import("generate_toolchain.gni") import("host_clang/toolchains.gni") import("host_gcc/toolchains.gni") # For each of the toolchains below, the toolchain GNI file has the corresponding # configs. This allows BUILDCONFIG.gn to set default target values on "flat" # lists of configs, i.e. not nested. This in turn allows individual targets # fine-grained control over which default configs they wise to override. # Generate ARM GCC toolchains generate_toolchains("arm_gcc_suite") { toolchains = pw_toolchain_arm_gcc_list } # Generate Host GCC toolchains generate_toolchains("host_gcc_suite") { toolchains = pw_toolchain_host_gcc_list } # Generate Host Clang toolchains generate_toolchains("host_clang_suite") { toolchains = pw_toolchain_host_clang_list } config("public_include_path") { include_dirs = [ "public" ] } group("builtins") { deps = [ "$dir_pw_third_party/llvm_builtins" ] } pw_doc_group("docs") { sources = [ "docs.rst" ] } pw_source_set("no_destructor") { public_configs = [ ":public_include_path" ] public = [ "public/pw_toolchain/no_destructor.h" ] } pw_source_set("sibling_cast") { public_configs = [ ":public_include_path" ] public = [ "public/pw_toolchain/internal/sibling_cast.h" ] visibility = [ "$dir_pigweed/*" ] } pw_test("sibling_cast_test") { sources = [ "sibling_cast_test.cc" ] deps = [ ":sibling_cast" ] negative_compilation_tests = true } config("wrap_abort_config") { ldflags = [ "-Wl,--wrap=abort" ] visibility = [ ":*" ] } pw_source_set("wrap_abort") { all_dependent_configs = [ ":wrap_abort_config" ] sources = [ "wrap_abort.cc" ] deps = [ dir_pw_assert ] } pw_test_group("tests") { tests = [ ":no_destructor_test", ":sibling_cast_test", ] } pw_test("no_destructor_test") { sources = [ "no_destructor_test.cc" ] deps = [ ":no_destructor", dir_pw_assert, ] }