• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2022-2025 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/config/components/idl_tool/idl.gni")
15
16idl_gen_interface("ui_appearance_ability_interface") {
17  sources = [ "IUiAppearanceAbility.idl" ]
18  log_domainid = "0xD003900"
19  log_tag = "UiAppearance"
20  subsystem_name = "arkui"
21  part_name = "ui_appearance"
22}
23
24config("ui_appearance_service_config") {
25  visibility = [ ":*" ]
26  include_dirs = [
27    "include",
28    "utils/include/",
29    "${target_gen_dir}",
30  ]
31}
32
33ohos_source_set("ui_appearance_ability_proxy") {
34  sanitize = {
35    cfi = true
36    cfi_cross_dso = true
37    debug = false
38  }
39  public_configs = [ ":ui_appearance_service_config" ]
40  output_values = get_target_outputs(":ui_appearance_ability_interface")
41  sources = filter_include(output_values, [ "*_proxy.cpp" ])
42  deps = [ ":ui_appearance_ability_interface" ]
43  external_deps = [
44    "c_utils:utils",
45    "hilog:libhilog",
46    "ipc:ipc_single",
47    "samgr:samgr_proxy",
48  ]
49  subsystem_name = "arkui"
50  part_name = "ui_appearance"
51}
52
53ohos_source_set("ui_appearance_ability_stub") {
54  sanitize = {
55    cfi = true
56    cfi_cross_dso = true
57    debug = false
58  }
59  public_configs = [ ":ui_appearance_service_config" ]
60  output_values = get_target_outputs(":ui_appearance_ability_interface")
61  sources = filter_include(output_values, [ "*_stub.cpp" ])
62  deps = [ ":ui_appearance_ability_interface" ]
63  external_deps = [
64    "c_utils:utils",
65    "hilog:libhilog",
66    "ipc:ipc_single",
67    "samgr:samgr_proxy",
68  ]
69  subsystem_name = "arkui"
70  part_name = "ui_appearance"
71}
72
73ohos_shared_library("ui_appearance_service") {
74  sanitize = {
75    cfi = true  # Enable/disable control flow integrity detection
76    cfi_cross_dso = true  # Cross-SO CFI Checks
77    debug = false
78  }
79
80  sources = [
81    "src/dark_mode_manager.cpp",
82    "src/dark_mode_temp_state_manager.cpp",
83    "src/screen_switch_operator_manager.cpp",
84    "src/ui_appearance_ability.cpp",
85    "utils/src/alarm_timer.cpp",
86    "utils/src/alarm_timer_manager.cpp",
87    "utils/src/parameter_wrap.cpp",
88    "utils/src/setting_data_manager.cpp",
89    "utils/src/setting_data_observer.cpp",
90  ]
91
92  public_configs = [ ":ui_appearance_service_config" ]
93
94  cflags_cc = [
95    "-fvisibility=hidden",
96    "-fvisibility-inlines-hidden",
97    "-Oz",
98    "-fdata-sections",
99    "-ffunction-sections",
100    "-fno-asynchronous-unwind-tables",
101    "-fno-unwind-tables",
102  ]
103  ldflags = [ "-Wl,--gc-sections" ]
104
105  include_dirs = [
106    "include/",
107    "utils/include/",
108  ]
109
110  deps = [ ":ui_appearance_ability_stub" ]
111  external_deps = [
112    "ability_base:configuration",
113    "ability_runtime:app_manager",
114    "ability_runtime:dataobs_manager",
115    "ability_runtime:wantagent_innerkits",
116    "access_token:libaccesstoken_sdk",
117    "c_utils:utils",
118    "common_event_service:cesfwk_core",
119    "common_event_service:cesfwk_innerkits",
120    "data_share:datashare_consumer",
121    "hilog:libhilog",
122    "init:libbegetutil",
123    "ipc:ipc_single",
124    "os_account:os_account_innerkits",
125    "safwk:system_ability_fwk",
126    "samgr:samgr_proxy",
127    "time_service:time_client",
128  ]
129  subsystem_name = "arkui"
130  part_name = "ui_appearance"
131}
132
133ohos_shared_library("ui_appearance_client") {
134  sources = [ "src/ui_appearance_ability_client.cpp" ]
135
136  public_configs = [ ":ui_appearance_service_config" ]
137  include_dirs = [ "include/" ]
138  deps = [ ":ui_appearance_ability_proxy" ]
139  external_deps = [
140    "c_utils:utils",
141    "hicollie:libhicollie",
142    "hilog:libhilog",
143    "ipc:ipc_single",
144    "safwk:system_ability_fwk",
145    "samgr:samgr_proxy",
146  ]
147
148  cflags_cc = [
149    "-fvisibility=hidden",
150    "-fvisibility-inlines-hidden",
151    "-Oz",
152    "-fdata-sections",
153    "-ffunction-sections",
154    "-fno-asynchronous-unwind-tables",
155    "-fno-unwind-tables",
156  ]
157  ldflags = [ "-Wl,--gc-sections" ]
158
159  subsystem_name = "arkui"
160  innerapi_tags = [ "platformsdk" ]
161  part_name = "ui_appearance"
162}
163