137a09cd7Sopenharmony_ci# Copyright (C) 2021-2023 Huawei Device Co., Ltd.
237a09cd7Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
337a09cd7Sopenharmony_ci# you may not use this file except in compliance with the License.
437a09cd7Sopenharmony_ci# You may obtain a copy of the License at
537a09cd7Sopenharmony_ci#
637a09cd7Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
737a09cd7Sopenharmony_ci#
837a09cd7Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
937a09cd7Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1037a09cd7Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1137a09cd7Sopenharmony_ci# See the License for the specific language governing permissions and
1237a09cd7Sopenharmony_ci# limitations under the License.
1337a09cd7Sopenharmony_ci
1437a09cd7Sopenharmony_ciimport("../../thermalmgr.gni")
1537a09cd7Sopenharmony_ci
1637a09cd7Sopenharmony_ciconfig("thermal_protector_public_config") {
1737a09cd7Sopenharmony_ci  include_dirs = [
1837a09cd7Sopenharmony_ci    "include",
1937a09cd7Sopenharmony_ci    "include/policy",
2037a09cd7Sopenharmony_ci    "include/action",
2137a09cd7Sopenharmony_ci  ]
2237a09cd7Sopenharmony_ci}
2337a09cd7Sopenharmony_ci
2437a09cd7Sopenharmony_ciohos_executable("thermal_protector") {
2537a09cd7Sopenharmony_ci  sources = [
2637a09cd7Sopenharmony_ci    "src/action/cpu_action.cpp",
2737a09cd7Sopenharmony_ci    "src/action/current_action.cpp",
2837a09cd7Sopenharmony_ci    "src/action/device_control_factory.cpp",
2937a09cd7Sopenharmony_ci    "src/action/thermal_device_control.cpp",
3037a09cd7Sopenharmony_ci    "src/action/voltage_action.cpp",
3137a09cd7Sopenharmony_ci    "src/main.cpp",
3237a09cd7Sopenharmony_ci    "src/policy/protector_thermal_zone_info.cpp",
3337a09cd7Sopenharmony_ci    "src/policy/thermal_kernel_config_file.cpp",
3437a09cd7Sopenharmony_ci    "src/policy/thermal_kernel_policy.cpp",
3537a09cd7Sopenharmony_ci    "src/thermal_kernel_service.cpp",
3637a09cd7Sopenharmony_ci    "src/thermal_protector_timer.cpp",
3737a09cd7Sopenharmony_ci    "src/thermal_protector_utils.cpp",
3837a09cd7Sopenharmony_ci    "src/thermal_sensor_provision.cpp",
3937a09cd7Sopenharmony_ci  ]
4037a09cd7Sopenharmony_ci
4137a09cd7Sopenharmony_ci  public_configs = [ ":thermal_protector_public_config" ]
4237a09cd7Sopenharmony_ci
4337a09cd7Sopenharmony_ci  configs = [
4437a09cd7Sopenharmony_ci    "${utils_path}:utils_config",
4537a09cd7Sopenharmony_ci    "${utils_path}:coverage_flags",
4637a09cd7Sopenharmony_ci  ]
4737a09cd7Sopenharmony_ci
4837a09cd7Sopenharmony_ci  deps = [ "${utils_path}:thermal_utils" ]
4937a09cd7Sopenharmony_ci
5037a09cd7Sopenharmony_ci  external_deps = [
5137a09cd7Sopenharmony_ci    "c_utils:utils",
5237a09cd7Sopenharmony_ci    "hilog:libhilog",
5337a09cd7Sopenharmony_ci    "libxml2:libxml2",
5437a09cd7Sopenharmony_ci  ]
5537a09cd7Sopenharmony_ci
5637a09cd7Sopenharmony_ci  if (has_thermal_config_policy_part) {
5737a09cd7Sopenharmony_ci    defines = [ "HAS_THERMAL_CONFIG_POLICY_PART" ]
5837a09cd7Sopenharmony_ci    external_deps += [ "config_policy:configpolicy_util" ]
5937a09cd7Sopenharmony_ci  }
6037a09cd7Sopenharmony_ci
6137a09cd7Sopenharmony_ci  install_enable = true
6237a09cd7Sopenharmony_ci  part_name = "thermal_manager"
6337a09cd7Sopenharmony_ci  subsystem_name = "powermgr"
6437a09cd7Sopenharmony_ci}
6537a09cd7Sopenharmony_ci
6637a09cd7Sopenharmony_cigroup("thermal_protector_group") {
6737a09cd7Sopenharmony_ci  deps = [
6837a09cd7Sopenharmony_ci    ":thermal_protector",
6937a09cd7Sopenharmony_ci    "profile:thermal_kernel_config",
7037a09cd7Sopenharmony_ci  ]
7137a09cd7Sopenharmony_ci}
72