1# Copyright 2020 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15import("//build_overrides/pigweed.gni") 16 17import("$dir_pigweed/targets/lm3s6965evb_qemu/target_toolchains.gni") 18import("$dir_pw_docgen/docs.gni") 19import("$dir_pw_log_tokenized/backend.gni") 20import("$dir_pw_protobuf_compiler/proto.gni") 21import("$dir_pw_third_party/nanopb/nanopb.gni") 22import("$dir_pw_toolchain/arm_gcc/toolchains.gni") 23import("$dir_pw_toolchain/generate_toolchain.gni") 24import("$dir_pw_toolchain/traits.gni") 25 26if (current_toolchain != default_toolchain) { 27 pw_source_set("tokenized_log_handler") { 28 deps = [ 29 "$dir_pw_bytes", 30 "$dir_pw_log_tokenized:handler.facade", 31 "$dir_pw_sys_io", 32 ] 33 sources = [ "tokenized_log_handler.cc" ] 34 } 35} 36 37# Toolchain for generating upstream Pigweed documentation. 38generate_toolchain("docs") { 39 # Use the lm3s6965evb_qemu toolchain for pw_size_diff targets. 40 _base_toolchain = pw_target_toolchain_lm3s6965evb_qemu.size_optimized_clang 41 forward_variables_from(_base_toolchain, 42 "*", 43 [ 44 "defaults", 45 "name", 46 ]) 47 48 # Docs assume output binary location, and don't support extensions. 49 final_binary_extension = "" 50 51 defaults = { 52 forward_variables_from(_base_toolchain.defaults, "*") 53 54 # This is the docs target. 55 pw_docgen_BUILD_DOCS = true 56 57 # Disable NC tests in case the base toolchain has them enabled. 58 pw_compilation_testing_NEGATIVE_COMPILATION_ENABLED = false 59 60 pw_assert_BACKEND = dir_pw_assert_tokenized 61 pw_log_BACKEND = dir_pw_log_tokenized 62 pw_log_tokenized_HANDLER_BACKEND = 63 get_path_info(":tokenized_log_handler", "abspath") 64 65 pw_toolchain_CXX_STANDARD = pw_toolchain_STANDARD.CXX20 66 67 pw_boot_cortex_m_LINK_CONFIG_DEFINES = [] 68 pw_boot_cortex_m_LINK_CONFIG_DEFINES = [ 69 "PW_BOOT_FLASH_BEGIN=0x00000200", 70 "PW_BOOT_FLASH_SIZE=1000K", 71 "PW_BOOT_HEAP_SIZE=0", 72 "PW_BOOT_MIN_STACK_SIZE=1K", 73 "PW_BOOT_RAM_BEGIN=0x20000000", 74 "PW_BOOT_RAM_SIZE=1000K", 75 "PW_BOOT_VECTOR_TABLE_BEGIN=0x00000000", 76 "PW_BOOT_VECTOR_TABLE_SIZE=512", 77 ] 78 79 pw_chrono_SYSTEM_CLOCK_BACKEND = "//pw_chrono_stl:system_clock" 80 pw_chrono_SYSTEM_TIMER_BACKEND = "//pw_chrono_stl:system_timer" 81 pw_async_TASK_BACKEND = "//pw_async_basic:task" 82 pw_async_FAKE_DISPATCHER_BACKEND = "//pw_async_basic:fake_dispatcher" 83 } 84} 85 86pw_doc_group("target_docs") { 87 sources = [ "target_docs.rst" ] 88} 89