140f5d65dSopenharmony_ci# Copyright (c) 2022-2024 Huawei Device Co., Ltd.
240f5d65dSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
340f5d65dSopenharmony_ci# you may not use this file except in compliance with the License.
440f5d65dSopenharmony_ci# You may obtain a copy of the License at
540f5d65dSopenharmony_ci#
640f5d65dSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
740f5d65dSopenharmony_ci#
840f5d65dSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
940f5d65dSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1040f5d65dSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1140f5d65dSopenharmony_ci# See the License for the specific language governing permissions and
1240f5d65dSopenharmony_ci# limitations under the License.
1340f5d65dSopenharmony_ci
1440f5d65dSopenharmony_ciimport("//build/ohos.gni")
1540f5d65dSopenharmony_ciimport("//foundation/filemanagement/app_file_service/backup.gni")
1640f5d65dSopenharmony_ci
1740f5d65dSopenharmony_ciohos_executable("backup_tool") {
1840f5d65dSopenharmony_ci  branch_protector_ret = "pac_ret"
1940f5d65dSopenharmony_ci  sanitize = {
2040f5d65dSopenharmony_ci    integer_overflow = true
2140f5d65dSopenharmony_ci    cfi = true
2240f5d65dSopenharmony_ci    cfi_cross_dso = true
2340f5d65dSopenharmony_ci    debug = false
2440f5d65dSopenharmony_ci  }
2540f5d65dSopenharmony_ci
2640f5d65dSopenharmony_ci  include_dirs = []
2740f5d65dSopenharmony_ci  deps = []
2840f5d65dSopenharmony_ci  defines = []
2940f5d65dSopenharmony_ci  sources = [ "src/main.cpp" ]
3040f5d65dSopenharmony_ci
3140f5d65dSopenharmony_ci  if (build_variant == "root") {
3240f5d65dSopenharmony_ci    include_dirs += [ "include" ]
3340f5d65dSopenharmony_ci
3440f5d65dSopenharmony_ci    defines += [
3540f5d65dSopenharmony_ci      "LOG_DOMAIN=0xD004304",
3640f5d65dSopenharmony_ci      "LOG_TAG=\"BackupTool\"",
3740f5d65dSopenharmony_ci    ]
3840f5d65dSopenharmony_ci
3940f5d65dSopenharmony_ci    deps += [
4040f5d65dSopenharmony_ci      "${path_backup}/interfaces/inner_api/native/backup_kit_inner:backup_kit_inner",
4140f5d65dSopenharmony_ci      "${path_backup}/utils/:backup_utils",
4240f5d65dSopenharmony_ci      "${path_jsoncpp}:jsoncpp",
4340f5d65dSopenharmony_ci    ]
4440f5d65dSopenharmony_ci
4540f5d65dSopenharmony_ci    sources += [
4640f5d65dSopenharmony_ci      "src/tools_op.cpp",
4740f5d65dSopenharmony_ci      "src/tools_op_backup.cpp",
4840f5d65dSopenharmony_ci      "src/tools_op_check_sa.cpp",
4940f5d65dSopenharmony_ci      "src/tools_op_help.cpp",
5040f5d65dSopenharmony_ci      "src/tools_op_incremental_backup.cpp",
5140f5d65dSopenharmony_ci      "src/tools_op_incremental_restore.cpp",
5240f5d65dSopenharmony_ci      "src/tools_op_incremental_restore_async.cpp",
5340f5d65dSopenharmony_ci      "src/tools_op_restore.cpp",
5440f5d65dSopenharmony_ci      "src/tools_op_restore_async.cpp",
5540f5d65dSopenharmony_ci    ]
5640f5d65dSopenharmony_ci
5740f5d65dSopenharmony_ci    external_deps = [
5840f5d65dSopenharmony_ci      "c_utils:utils",
5940f5d65dSopenharmony_ci      "hilog:libhilog",
6040f5d65dSopenharmony_ci      "hitrace:hitrace_meter",
6140f5d65dSopenharmony_ci      "ipc:ipc_core",
6240f5d65dSopenharmony_ci    ]
6340f5d65dSopenharmony_ci
6440f5d65dSopenharmony_ci    defines += [ "BACKUP_TOOL_ENABLE=1" ]
6540f5d65dSopenharmony_ci  }
6640f5d65dSopenharmony_ci
6740f5d65dSopenharmony_ci  use_exceptions = true
6840f5d65dSopenharmony_ci  install_enable = false
6940f5d65dSopenharmony_ci  part_name = "app_file_service"
7040f5d65dSopenharmony_ci  subsystem_name = "filemanagement"
7140f5d65dSopenharmony_ci}
72