# Copyright (c) 2024 Huawei Device Co., Ltd.
# 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
#
# http://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.
ide_previewer_path = "//ide/tools/previewer"
googletest_path = "//third_party/googletest"
secodefuzz_path = "//Secodefuzz"
secodepits_path = "//Secodepits"
secodefuzz_deps = "$secodefuzz_path:secodefuzz"
secodepits_deps = "$secodepits_path:secodepits"
googletest_deps = "$googletest_path:gmock_main"
googletest_include_path = "$googletest_path/include"
ace_engine_path = "//foundation/arkui/ace_engine"
ace_engine_include_path = [
"$ace_engine_path",
"$ace_engine_path/adapter/preview/entrance",
"$ace_engine_path/frameworks",
"$ace_engine_path/frameworks/base/utils",
"$ace_engine_path/frameworks/core/event",
"$ace_engine_path/engine",
"$ace_engine_path/engine/flutter/shell/platform/common/cpp/public",
"$ace_engine_path/engine/ace_adapter/flutter/shell/platform/glfw/public",
"$ace_engine_path/frameworks/core/common",
"$ace_engine_path/frameworks/core/common/clipboard",
"$ace_engine_path/adapter/preview/entrance/clipboard",
"$ace_engine_path/interfaces/inner_api/ace",
"$ace_engine_path/interfaces/inner_api/ace_kit/include",
"//",
]
ability_runtime_path = "//foundation/ability/ability_runtime"
ability_runtime_include_path = [
"$ability_runtime_path/frameworks/simulator/common/include",
"$ability_runtime_path/frameworks/simulator/ability_simulator/include",
]
window_manager_path = "//foundation/window/window_manager"
window_manager_include_path = [
"$window_manager_path",
"$window_manager_path/previewer/include",
"$window_manager_path/previewer/mock",
"$window_manager_path/utils/include",
]
graphic_2d_path = "//foundation/graphic/graphic_2d"
graphic_2d_include_path = [
"$graphic_2d_path/rosen/modules/glfw_render_context/export",
"$graphic_2d_path/rosen/modules/platform/ipc_core",
"$graphic_2d_path/rosen/modules/platform/image_native",
"$graphic_2d_path/rosen/modules/platform/utils",
]
ace_engine_lite_path = "//foundation/arkui/ace_engine_lite"
ui_lite_path = "//foundation/arkui/ui_lite"
ui_ext_lite_path = "//foundation/arkui/ui_ext_lite"
graphic_utils_lite_path = "//foundation/graphic/graphic_utils_lite"
ability_lite_path = "//foundation/ability/ability_lite"
resource_management_lite_path = "//base/global/resource_management_lite"
powermgr_lite_path = "//base/powermgr/powermgr_lite"
geo_lite_path = "//base/location/interfaces/kits/geo_lite"
sensorjs_lite_path = "//base/sensors/sensorjs_lite"
startup_init_path = "//base/startup/init"
utils_lite_path = "//commonlibrary/utils_lite"
template("ide_test") {
executable(target_name) {
testonly = invoker.testonly
subsystem_name = invoker.subsystem_name
part_name = invoker.part_name
module_out_path = invoker.module_out_path
output_name = invoker.output_name
print("$subsystem_name-$part_name-$module_out_path-$output_name")
defines = invoker.defines
sources = invoker.sources
include_dirs = invoker.include_dirs
include_dirs += [ googletest_include_path ]
deps = invoker.deps
deps += [
googletest_deps,
secodefuzz_deps,
secodepits_deps,
]
libs = invoker.libs
libs += [ "pthread" ]
cflags = invoker.cflags
cflags += [
"-std=c++17",
"-Wno-deprecated-declarations",
"-Wno-reorder",
"-Wno-sign-compare",
"-Wno-error",
"-Wno-warnings",
"-Wno-unused-variable",
"-fsanitize=address",
"-fsanitize=undefined",
"-fsanitize-coverage=trace-pc",
"-fprofile-arcs",
"-ftest-coverage",
"-fdump-rtl-expand",
"-g",
"-O0",
"-fno-omit-frame-pointer",
]
cflags_cc = invoker.cflags_cc
cflags_cc += [
"-fsanitize=address",
"-fsanitize=undefined",
"-fsanitize-coverage=trace-pc",
"-fprofile-arcs",
"-ftest-coverage",
"-fdump-rtl-expand",
"-g",
"-O0",
"-fno-omit-frame-pointer",
]
ldflags = invoker.ldflags
ldflags += [
"-fsanitize=address",
"-fsanitize=undefined",
"-fsanitize-coverage=trace-pc",
"-fprofile-arcs",
"-lgcov",
]
}
}
template("ide_fuzztest") {
ide_test(target_name) {
testonly = invoker.testonly
subsystem_name = invoker.subsystem_name
part_name = invoker.part_name
module_out_path = invoker.module_out_path
output_name = invoker.output_name
sources = invoker.sources
include_dirs = invoker.include_dirs
include_dirs += [
secodefuzz_path,
secodepits_path,
]
deps = invoker.deps
libs = invoker.libs
cflags = invoker.cflags
cflags_cc = invoker.cflags_cc
ldflags = invoker.ldflags
defines = []
}
}
template("ide_unittest") {
ide_test(target_name) {
testonly = invoker.testonly
subsystem_name = invoker.subsystem_name
part_name = invoker.part_name
module_out_path = invoker.module_out_path
output_name = invoker.output_name
sources = invoker.sources
include_dirs = invoker.include_dirs
deps = invoker.deps
libs = invoker.libs
cflags = invoker.cflags
cflags_cc = invoker.cflags_cc
ldflags = invoker.ldflags
defines = [
"REPLACE_WINDOW_HEADER=1",
"ENABLE_ICU=1",
]
}
}