1# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
2# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without modification,
5# are permitted provided that the following conditions are met:
6#
7# 1. Redistributions of source code must retain the above copyright notice, this list of
8#    conditions and the following disclaimer.
9#
10# 2. Redistributions in binary form must reproduce the above copyright notice, this list
11#    of conditions and the following disclaimer in the documentation and/or other materials
12#    provided with the distribution.
13#
14# 3. Neither the name of the copyright holder nor the names of its contributors may be used
15#    to endorse or promote products derived from this software without specific prior written
16#    permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
22# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30import("//drivers/hdf_core/adapter/khdf/liteos_m/hdf.gni")
31import("//kernel/liteos_m/liteos.gni")
32
33hdf_driver("bsp_config") {
34  asmflags = board_asmflags
35  sources = [
36    "driver/cfiflash/cfiflash.c",
37    "driver/cfiflash/cfiflash_fs_hal.c",
38    "driver/cfiflash/hdf_cfi.c",
39    "driver/plic.c",
40    "driver/uart.c",
41    "driver/video/fb.c",
42    "driver/video/fb_init.c",
43    "driver/video/fb_mem.c",
44    "driver/video/key_cache.c",
45    "driver/virtgpu.c",
46    "driver/virtinput.c",
47    "driver/virtmmio.c",
48    "driver/virtnet.c",
49    "fs/ff_gen_drv.c",
50    "los_start.S",
51    "main.c",
52    "riscv_hal.c",
53  ]
54  if (!defined(LOSCFG_TEST)) {
55    # kernel's testsuites not enabled, use ower's
56    sources += [ "test/test_demo.c" ]
57  }
58  include_dirs = [
59    "driver/cfiflash",
60    "driver/video",
61    "hardware",
62    "hardware/adapter",
63    "$LITEOSTHIRDPARTY/FreeBSD/sys/dev/evdev",
64    "$HDF_FRAMEWORKS_PATH/include/utils",
65    "$HDF_FRAMEWORKS_PATH/model/input/driver",
66    "$HDF_PERIPHERAL_PATH/base",
67    "$HDF_PERIPHERAL_PATH/display/interfaces/include",
68    "$HDF_PERIPHERAL_PATH/input/interfaces/include",
69    "//drivers/hdf_core/adapter/khdf/liteos_m/osal/include",
70    "//drivers/hdf_core/interfaces/inner_api/osal/shared",
71    "//third_party/bounds_checking_function/include",
72  ]
73
74  deps = [
75    "hardware",
76    "libc",
77    "ui",
78  ]
79}
80
81config("public") {
82  include_dirs = [
83    ".",
84    "include",
85    "include/asm",
86    "driver",
87    "fs",
88    "ui",
89  ]
90
91  ldflags = [
92    "-Wl,-mcmodel=medany",
93    "-Wl,-melf32lriscv",
94    "-nostartfiles",
95    "-Wl,-T" + rebase_path("liteos.ld"),
96    "-nostdlib",
97  ]
98
99  # config force_link_libs from vendor/ohemu/qemu_riscv32_mini_system_demo/config.json
100  ldflags += [ "-L./libs" ]
101  ldflags += [ "-Wl,--whole-archive" ]
102  foreach(force_link_lib, force_link_libs) {
103    ldflags += [ "-l${force_link_lib}" ]
104  }
105  ldflags += [ "-Wl,--no-whole-archive" ]
106
107  libs = [
108    "nosys",
109    "gcc",
110    "stdc++",
111    "ui",
112  ]
113
114  if (defined(LOSCFG_LIBC_NEWLIB)) {
115    ldflags -= [ "-nostdlib" ]
116
117    libs -= [ "nosys" ]
118    libs += [
119      "c",
120      "m",
121    ]
122
123    cflags_c = [
124      "-U__INT32_TYPE__",
125      "-D__INT32_TYPE__=int",
126      "-DLWIP_NO_CTYPE_H=1",
127    ]
128  }
129}
130