• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/lite/config/component/lite_component.gni")
15import("//third_party/jerryscript/engine.gni")
16
17lite_component("jerry-port-default") {
18  if (ohos_kernel_type == "liteos_m") {
19    features = [ ":jerry-port-default_static" ]
20  } else {
21    features = [ ":jerry-port-default_shared" ]
22  }
23}
24
25jerry_port_default_sources = [
26  "default-date.c",
27  "default-debugger.c",
28  "default-external-context.c",
29  "default-fatal.c",
30  "default-io.c",
31  "default-module.c",
32]
33
34jerry_port_default_include_dirs = [
35  "include",
36  "${core_path}/include",
37]
38
39if (board_toolchain_type == "iccarm") {
40  config("jerry_port_default_config") {
41    cflags = [
42      "--diag_suppress",
43      "Pe111",
44    ]
45    defines = [
46      "JERRY_FOR_IAR_CONFIG",
47      "JERRY_DEBUGGER=0",
48      "JERRY_STACK_LIMIT=(8)",
49      "JERRY_IAR_JUPITER",
50      "INPUTJS_BUFFER_SIZE=64*1024",
51      "SNAPSHOT_BUFFER_SIZE=48*1024",
52    ]
53    defines += [
54      "JERRY_GC_LIMIT=${jerryscript_jerry_gc_limit}",
55      "JERRY_CPOINTER_32_BIT=${jerryscript_jerry_cpointer_32_bit}",
56      "JERRY_ERROR_MESSAGES=${jerryscript_jerry_error_messages}",
57      "JERRY_PARSER=${jerryscript_jerry_parser}",
58      "JERRY_LINE_INFO=${jerryscript_jerry_line_info}",
59      "JERRY_LOGGING=${jerryscript_jerry_logging}",
60      "JERRY_MEM_GC_BEFORE_EACH_ALLOC=${jerryscript_jerry_mem_gc_before_each_alloc}",
61      "JERRY_PARSER_DUMP_BYTE_CODE=${jerryscript_jerry_parser_dump_byte_code}",
62      "JERRY_REGEXP_STRICT_MODE=${jerryscript_jerry_regexp_strict_mode}",
63      "JERRY_REGEXP_DUMP_BYTE_CODE=${jerryscript_jerry_regexp_dump_byte_code}",
64      "JERRY_SNAPSHOT_EXEC=${jerryscript_jerry_snapshot_exec}",
65      "JERRY_SNAPSHOT_SAVE=${jerryscript_jerry_snapshot_save}",
66      "JERRY_SYSTEM_ALLOCATOR=${jerryscript_jerry_system_allocator}",
67      "JERRY_VALGRIND=${jerryscript_jerry_valgrind}",
68      "JERRY_VM_EXEC_STOP=${jerryscript_jerry_vm_exec_stop}",
69      "JERRY_ES2015=${jerryscript_jerry_es2015}",
70      "JERRY_ES2015_BUILTIN_TYPEDARRAY=${jerryscript_jerry_es2015_builtin_typedarray}",
71      "JERRY_ES2015_BUILTIN_SET=${jerryscript_jerry_es2015_builtin_set}",
72      "JERRY_ES2015_BUILTIN_PROMISE=${jerryscript_jerry_es2015_builtin_promise}",
73      "JERRY_ES2015_BUILTIN_PROXY=${jerryscript_jerry_es2015_builtin_proxy}",
74      "JERRY_ES2015_MODULE_SYSTEM=${jerryscript_jerry_es2015_module_system}",
75      "JERRY_ES2015_BUILTIN_MAP=${jerryscript_jerry_es2015_builtin_map}",
76      "JERRY_ES2015_BUILTIN_WEAKMAP=${jerryscript_jerry_es2015_builtin_weakmap}",
77      "JERRY_ES2015_BUILTIN_WEAKSET=${jerryscript_jerry_es2015_builtin_weakset}",
78      "JERRY_ES2015_BUILTIN_DATAVIEW=${jerryscript_jerry_es2015_builtin_dataview}",
79      "JERRY_ES2015_BUILTIN_REFLECT=${jerryscript_jerry_es2015_builtin_reflect}",
80    ]
81    if (jerryscript_enable_external_context == true) {
82      defines += [ "JERRY_EXTERNAL_CONTEXT=1" ]
83    }
84    defines += [ "INPUTJS_BUFFER_SIZE=${jerryscript_inputjs_buffer_size}" ]
85    defines += [ "SNAPSHOT_BUFFER_SIZE=${jerryscript_snapshot_buffer_size}" ]
86    defines += [ "BMS_TASK_HEAP_SIZE=${jerryscript_bms_task_heap_size}" ]
87    defines += [ "JS_TASK_HEAP_SIZE=${jerryscript_js_task_heap_size}" ]
88
89    include_dirs = jerry_port_default_include_dirs
90    include_dirs += [
91      "${core_path}",
92      "${core_path}/include",
93      "${core_path}/api",
94      "${core_path}/debugger",
95      "${core_path}/ecma/base",
96      "${core_path}/ecma/builtin-objects",
97      "${core_path}/ecma/builtin-objects/typedarray",
98      "${core_path}/ecma/operations",
99      "${core_path}/ext",
100      "${core_path}/jcontext",
101      "${core_path}/jmem",
102      "${core_path}/jrt",
103      "${core_path}/lit",
104      "${core_path}/parser",
105      "${core_path}/parser/js",
106      "${core_path}/parser/regexp",
107      "${core_path}/vm",
108      "${port_path}",
109      "//commonlibrary/utils_lite/memory/include",
110    ]
111  }
112}
113
114if (ohos_kernel_type == "liteos_m") {
115  lite_library("jerry-port-default_static") {
116    target_type = "static_library"
117    sources = jerry_port_default_sources
118    if (board_toolchain_type == "iccarm") {
119      public_configs = [ ":jerry_port_default_config" ]
120    } else {
121      include_dirs = jerry_port_default_include_dirs
122    }
123  }
124} else {
125  lite_library("jerry-port-default_shared") {
126    target_type = "shared_library"
127
128    sources = jerry_port_default_sources
129    include_dirs = jerry_port_default_include_dirs
130  }
131}
132