1fc223305Sopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. 2fc223305Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3fc223305Sopenharmony_ci# you may not use this file except in compliance with the License. 4fc223305Sopenharmony_ci# You may obtain a copy of the License at 5fc223305Sopenharmony_ci# 6fc223305Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7fc223305Sopenharmony_ci# 8fc223305Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9fc223305Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10fc223305Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11fc223305Sopenharmony_ci# See the License for the specific language governing permissions and 12fc223305Sopenharmony_ci# limitations under the License. 13fc223305Sopenharmony_ciimport("//build/ohos.gni") 14fc223305Sopenharmony_ciimport("//foundation/distributeddatamgr/preferences/preferences.gni") 15fc223305Sopenharmony_ciconfig("native_preferences_config") { 16fc223305Sopenharmony_ci visibility = [ ":*" ] 17fc223305Sopenharmony_ci include_dirs = [ 18fc223305Sopenharmony_ci "include", 19fc223305Sopenharmony_ci "${preferences_base_path}/frameworks/common/include", 20fc223305Sopenharmony_ci "${preferences_native_path}/include", 21fc223305Sopenharmony_ci "${preferences_native_path}/platform/include/", 22fc223305Sopenharmony_ci ] 23fc223305Sopenharmony_ci} 24fc223305Sopenharmony_ci 25fc223305Sopenharmony_ciconfig("mock_config") { 26fc223305Sopenharmony_ci include_dirs = [ 27fc223305Sopenharmony_ci "${preferences_native_path}/mock/ability_runtime/dataobs_manager/include", 28fc223305Sopenharmony_ci "${preferences_native_path}/mock/ability_base/zuri/include", 29fc223305Sopenharmony_ci ] 30fc223305Sopenharmony_ci if (!is_android) { 31fc223305Sopenharmony_ci include_dirs += 32fc223305Sopenharmony_ci [ "${preferences_native_path}/mock/c_utils/utils/base/include" ] 33fc223305Sopenharmony_ci } 34fc223305Sopenharmony_ci} 35fc223305Sopenharmony_ci 36fc223305Sopenharmony_ciconfig("native_preferences_public_config") { 37fc223305Sopenharmony_ci visibility = [ ":*" ] 38fc223305Sopenharmony_ci include_dirs = [ "include" ] 39fc223305Sopenharmony_ci} 40fc223305Sopenharmony_ci 41fc223305Sopenharmony_ciconfig("adaptor_config") { 42fc223305Sopenharmony_ci include_dirs = [ "//commonlibrary/c_utils/base/include" ] 43fc223305Sopenharmony_ci} 44fc223305Sopenharmony_ci 45fc223305Sopenharmony_cibase_sources = [ 46fc223305Sopenharmony_ci "${preferences_native_path}/platform/src/preferences_dfx_adapter.cpp", 47fc223305Sopenharmony_ci "${preferences_native_path}/platform/src/preferences_file_lock.cpp", 48fc223305Sopenharmony_ci "${preferences_native_path}/platform/src/preferences_thread.cpp", 49fc223305Sopenharmony_ci "${preferences_native_path}/src/base64_helper.cpp", 50fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_base.cpp", 51fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_helper.cpp", 52fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_impl.cpp", 53fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_observer.cpp", 54fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_utils.cpp", 55fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_value.cpp", 56fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_xml_utils.cpp", 57fc223305Sopenharmony_ci] 58fc223305Sopenharmony_ci 59fc223305Sopenharmony_ciif (!is_ohos) { 60fc223305Sopenharmony_ci mock_sources = [ 61fc223305Sopenharmony_ci "${preferences_native_path}/mock/ability_base/zuri/src/uri.cpp", 62fc223305Sopenharmony_ci "${preferences_native_path}/mock/ability_runtime/dataobs_manager/src/data_ability_observer_stub.cpp", 63fc223305Sopenharmony_ci "${preferences_native_path}/mock/ability_runtime/dataobs_manager/src/dataobs_mgr_client.cpp", 64fc223305Sopenharmony_ci ] 65fc223305Sopenharmony_ci if (!is_android) { 66fc223305Sopenharmony_ci mock_sources += 67fc223305Sopenharmony_ci [ "${preferences_native_path}/mock/c_utils/utils/base/src/refbase.cpp" ] 68fc223305Sopenharmony_ci } 69fc223305Sopenharmony_ci} 70fc223305Sopenharmony_ci 71fc223305Sopenharmony_ciif (is_ohos) { 72fc223305Sopenharmony_ci ohos_shared_library("native_preferences") { 73fc223305Sopenharmony_ci branch_protector_ret = "pac_ret" 74fc223305Sopenharmony_ci sanitize = { 75fc223305Sopenharmony_ci boundary_sanitize = true 76fc223305Sopenharmony_ci ubsan = true 77fc223305Sopenharmony_ci cfi = true 78fc223305Sopenharmony_ci cfi_cross_dso = true 79fc223305Sopenharmony_ci debug = false 80fc223305Sopenharmony_ci } 81fc223305Sopenharmony_ci cflags_cc = [ 82fc223305Sopenharmony_ci "-std=c++17", 83fc223305Sopenharmony_ci "-stdlib=libc++", 84fc223305Sopenharmony_ci "-fvisibility=hidden", 85fc223305Sopenharmony_ci ] 86fc223305Sopenharmony_ci all_dependent_configs = [ ":native_preferences_public_config" ] 87fc223305Sopenharmony_ci sources = base_sources 88fc223305Sopenharmony_ci sources += [ 89fc223305Sopenharmony_ci "${preferences_native_path}/platform/src/preferences_db_adapter.cpp", 90fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_enhance_impl.cpp", 91fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_value_parcel.cpp", 92fc223305Sopenharmony_ci ] 93fc223305Sopenharmony_ci 94fc223305Sopenharmony_ci innerapi_tags = [ 95fc223305Sopenharmony_ci "platformsdk", 96fc223305Sopenharmony_ci "sasdk", 97fc223305Sopenharmony_ci ] 98fc223305Sopenharmony_ci 99fc223305Sopenharmony_ci configs = [ ":native_preferences_config" ] 100fc223305Sopenharmony_ci 101fc223305Sopenharmony_ci external_deps = [ 102fc223305Sopenharmony_ci "ability_base:zuri", 103fc223305Sopenharmony_ci "ability_runtime:dataobs_manager", 104fc223305Sopenharmony_ci "access_token:libaccesstoken_sdk", 105fc223305Sopenharmony_ci "bounds_checking_function:libsec_shared", 106fc223305Sopenharmony_ci "c_utils:utils", 107fc223305Sopenharmony_ci "hilog:libhilog", 108fc223305Sopenharmony_ci "hisysevent:libhisysevent", 109fc223305Sopenharmony_ci "hitrace:hitrace_meter", 110fc223305Sopenharmony_ci "ipc:ipc_core", 111fc223305Sopenharmony_ci "libxml2:libxml2", 112fc223305Sopenharmony_ci ] 113fc223305Sopenharmony_ci public_configs = [ ":native_preferences_public_config" ] 114fc223305Sopenharmony_ci subsystem_name = "distributeddatamgr" 115fc223305Sopenharmony_ci part_name = "preferences" 116fc223305Sopenharmony_ci } 117fc223305Sopenharmony_ci} else if (is_mingw || is_mac) { 118fc223305Sopenharmony_ci ohos_shared_library("native_preferences") { 119fc223305Sopenharmony_ci all_dependent_configs = [ ":native_preferences_public_config" ] 120fc223305Sopenharmony_ci sources = base_sources 121fc223305Sopenharmony_ci sources += mock_sources 122fc223305Sopenharmony_ci innerapi_tags = [ "platformsdk" ] 123fc223305Sopenharmony_ci 124fc223305Sopenharmony_ci configs = [ ":native_preferences_config" ] 125fc223305Sopenharmony_ci 126fc223305Sopenharmony_ci configs += [ ":mock_config" ] 127fc223305Sopenharmony_ci configs += [ ":adaptor_config" ] 128fc223305Sopenharmony_ci 129fc223305Sopenharmony_ci cflags_cc = [ 130fc223305Sopenharmony_ci "-std=c++17", 131fc223305Sopenharmony_ci "-stdlib=libc++", 132fc223305Sopenharmony_ci ] 133fc223305Sopenharmony_ci if (is_mac) { 134fc223305Sopenharmony_ci buildos = "mac" 135fc223305Sopenharmony_ci defines = [ "MAC_PLATFORM" ] 136fc223305Sopenharmony_ci } else { 137fc223305Sopenharmony_ci buildos = "windows" 138fc223305Sopenharmony_ci defines = [ "WINDOWS_PLATFORM" ] 139fc223305Sopenharmony_ci ldflags = [ "-lws2_32" ] 140fc223305Sopenharmony_ci } 141fc223305Sopenharmony_ci deps = [ 142fc223305Sopenharmony_ci "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${buildos}", 143fc223305Sopenharmony_ci ] 144fc223305Sopenharmony_ci external_deps = [ 145fc223305Sopenharmony_ci "bounds_checking_function:libsec_shared", 146fc223305Sopenharmony_ci "libxml2:static_libxml2", 147fc223305Sopenharmony_ci ] 148fc223305Sopenharmony_ci public_configs = [ ":native_preferences_public_config" ] 149fc223305Sopenharmony_ci 150fc223305Sopenharmony_ci subsystem_name = "distributeddatamgr" 151fc223305Sopenharmony_ci part_name = "preferences" 152fc223305Sopenharmony_ci } 153fc223305Sopenharmony_ci} else if (is_android) { 154fc223305Sopenharmony_ci ohos_source_set("native_preferences") { 155fc223305Sopenharmony_ci all_dependent_configs = [ ":native_preferences_public_config" ] 156fc223305Sopenharmony_ci sources = base_sources 157fc223305Sopenharmony_ci sources += mock_sources 158fc223305Sopenharmony_ci 159fc223305Sopenharmony_ci defines = [ "ANDROID_PLATFORM" ] 160fc223305Sopenharmony_ci 161fc223305Sopenharmony_ci configs = [ ":native_preferences_config" ] 162fc223305Sopenharmony_ci configs += [ ":mock_config" ] 163fc223305Sopenharmony_ci cflags_cc = [ "-fvisibility=hidden" ] 164fc223305Sopenharmony_ci deps = [ 165fc223305Sopenharmony_ci "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_android", 166fc223305Sopenharmony_ci "//commonlibrary/c_utils/base:utilsbase", 167fc223305Sopenharmony_ci "//third_party/bounds_checking_function:libsec_static", 168fc223305Sopenharmony_ci "//third_party/libxml2:libxml2", 169fc223305Sopenharmony_ci ] 170fc223305Sopenharmony_ci public_configs = [ ":native_preferences_public_config" ] 171fc223305Sopenharmony_ci subsystem_name = "distributeddatamgr" 172fc223305Sopenharmony_ci part_name = "preferences" 173fc223305Sopenharmony_ci } 174fc223305Sopenharmony_ci} else if (is_ios) { 175fc223305Sopenharmony_ci ohos_source_set("native_preferences") { 176fc223305Sopenharmony_ci all_dependent_configs = [ ":native_preferences_public_config" ] 177fc223305Sopenharmony_ci sources = base_sources 178fc223305Sopenharmony_ci sources += mock_sources 179fc223305Sopenharmony_ci defines = [ "IOS_PLATFORM" ] 180fc223305Sopenharmony_ci 181fc223305Sopenharmony_ci configs = [ ":native_preferences_config" ] 182fc223305Sopenharmony_ci configs += [ ":mock_config" ] 183fc223305Sopenharmony_ci cflags_cc = [ "-fvisibility=hidden" ] 184fc223305Sopenharmony_ci deps = [ 185fc223305Sopenharmony_ci "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${target_os}", 186fc223305Sopenharmony_ci "//commonlibrary/c_utils/base:utilsbase", 187fc223305Sopenharmony_ci "//third_party/bounds_checking_function:libsec_static", 188fc223305Sopenharmony_ci "//third_party/libxml2:libxml2", 189fc223305Sopenharmony_ci ] 190fc223305Sopenharmony_ci public_configs = [ ":native_preferences_public_config" ] 191fc223305Sopenharmony_ci subsystem_name = "distributeddatamgr" 192fc223305Sopenharmony_ci part_name = "preferences" 193fc223305Sopenharmony_ci } 194fc223305Sopenharmony_ci} 195fc223305Sopenharmony_ci 196fc223305Sopenharmony_ciohos_static_library("native_preferences_static") { 197fc223305Sopenharmony_ci sources = base_sources 198fc223305Sopenharmony_ci configs = [ ":native_preferences_config" ] 199fc223305Sopenharmony_ci 200fc223305Sopenharmony_ci if (is_mingw || is_mac) { 201fc223305Sopenharmony_ci configs += [ ":mock_config" ] 202fc223305Sopenharmony_ci configs += [ ":adaptor_config" ] 203fc223305Sopenharmony_ci 204fc223305Sopenharmony_ci sources += mock_sources 205fc223305Sopenharmony_ci cflags_cc = [ 206fc223305Sopenharmony_ci "-std=c++17", 207fc223305Sopenharmony_ci "-stdlib=libc++", 208fc223305Sopenharmony_ci ] 209fc223305Sopenharmony_ci if (is_mac) { 210fc223305Sopenharmony_ci buildos = "mac" 211fc223305Sopenharmony_ci defines = [ "MAC_PLATFORM" ] 212fc223305Sopenharmony_ci } else { 213fc223305Sopenharmony_ci buildos = "windows" 214fc223305Sopenharmony_ci defines = [ "WINDOWS_PLATFORM" ] 215fc223305Sopenharmony_ci ldflags = [ "-lws2_32" ] 216fc223305Sopenharmony_ci } 217fc223305Sopenharmony_ci deps = [ 218fc223305Sopenharmony_ci "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${buildos}", 219fc223305Sopenharmony_ci ] 220fc223305Sopenharmony_ci external_deps = [ 221fc223305Sopenharmony_ci "bounds_checking_function:libsec_shared", 222fc223305Sopenharmony_ci "libxml2:static_libxml2", 223fc223305Sopenharmony_ci ] 224fc223305Sopenharmony_ci } else { 225fc223305Sopenharmony_ci if (is_ohos) { 226fc223305Sopenharmony_ci branch_protector_ret = "pac_ret" 227fc223305Sopenharmony_ci sanitize = { 228fc223305Sopenharmony_ci boundary_sanitize = true 229fc223305Sopenharmony_ci ubsan = true 230fc223305Sopenharmony_ci cfi = true 231fc223305Sopenharmony_ci cfi_cross_dso = true 232fc223305Sopenharmony_ci debug = false 233fc223305Sopenharmony_ci } 234fc223305Sopenharmony_ci sources += [ 235fc223305Sopenharmony_ci "${preferences_native_path}/platform/src/preferences_db_adapter.cpp", 236fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_enhance_impl.cpp", 237fc223305Sopenharmony_ci "${preferences_native_path}/src/preferences_value_parcel.cpp", 238fc223305Sopenharmony_ci ] 239fc223305Sopenharmony_ci } 240fc223305Sopenharmony_ci external_deps = [ 241fc223305Sopenharmony_ci "ability_base:zuri", 242fc223305Sopenharmony_ci "ability_runtime:dataobs_manager", 243fc223305Sopenharmony_ci "access_token:libaccesstoken_sdk", 244fc223305Sopenharmony_ci "bounds_checking_function:libsec_shared", 245fc223305Sopenharmony_ci "c_utils:utils", 246fc223305Sopenharmony_ci "hilog:libhilog", 247fc223305Sopenharmony_ci "hisysevent:libhisysevent", 248fc223305Sopenharmony_ci "hitrace:hitrace_meter", 249fc223305Sopenharmony_ci "ipc:ipc_core", 250fc223305Sopenharmony_ci "libxml2:libxml2", 251fc223305Sopenharmony_ci ] 252fc223305Sopenharmony_ci } 253fc223305Sopenharmony_ci 254fc223305Sopenharmony_ci public_configs = [ ":native_preferences_public_config" ] 255fc223305Sopenharmony_ci 256fc223305Sopenharmony_ci subsystem_name = "distributeddatamgr" 257fc223305Sopenharmony_ci part_name = "preferences" 258fc223305Sopenharmony_ci} 259