1# Copyright (c) 2022 Huawei Device Co., Ltd. All rights reserved. 2# 3# Redistribution and use in source and binary forms, with or without modification, 4# are permitted provided that the following conditions are met: 5# 6# 1. Redistributions of source code must retain the above copyright notice, this list of 7# conditions and the following disclaimer. 8# 9# 2. Redistributions in binary form must reproduce the above copyright notice, this list 10# of conditions and the following disclaimer in the documentation and/or other materials 11# provided with the distribution. 12# 13# 3. Neither the name of the copyright holder nor the names of its contributors may be used 14# to endorse or promote products derived from this software without specific prior written 15# permission. 16# 17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 19# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 21# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 22# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 23# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 24# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 27# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 29import("//kernel/uniproton/uniproton.gni") 30 31static_library("board_config") { 32 sources = [ 33 "board.c", 34 "dprintf.c", 35 ] 36 configs += [ 37 "lwip:lwip_config", 38 "common:stm32_config", 39 "driver:driver_config", 40 ] 41 if (defined(DRIVERS_HDF)) { 42 configs += [ "//drivers/hdf_core/adapter/khdf/uniproton:hdf_config" ] 43 } 44} 45 46group("board") { 47 deps = [ 48 ":board_config", 49 "common", 50 "driver", 51 "fs", 52 "lwip", 53 ] 54} 55 56config("public") { 57 include_dirs = [ 58 ".", 59 "//third_party/musl/porting/uniproton/kernel/include", 60 ] 61 include_dirs += 62 KERNEL_LWIP_INCLUDE_DIRS + [ "//third_party/lwip/src/include" ] 63 ldflags = [ 64 "-Wl,-T" + rebase_path("rtos.ld"), 65 "-Wl,-Llibs", 66 "--specs=nosys.specs", 67 ] 68 69 if (defined(LOSCFG_DRIVERS_HDF_TESTS_ENABLE)) { 70 include_dirs += 71 [ "//drivers/hdf_core/framework/core/common/include/manager" ] 72 } 73 product_cfg = read_file("${product_config_path}/config.json", "json") 74 foreach(product_config, product_cfg.bin_list) { 75 ldflags += [ "-Wl,--whole-archive" ] 76 foreach(force_link_lib, product_config.force_link_libs) { 77 ldflags += [ "-l${force_link_lib}" ] 78 } 79 ldflags += [ "-Wl,--no-whole-archive" ] 80 } 81 82 libs = [ 83 "nosys", 84 "gcc", 85 ] 86} 87