15c735df2Sopenharmony_ci# Copyright (C) 2024 Huawei Device Co., Ltd.
25c735df2Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
35c735df2Sopenharmony_ci# you may not use this file except in compliance with the License.
45c735df2Sopenharmony_ci# You may obtain a copy of the License at
55c735df2Sopenharmony_ci#
65c735df2Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
75c735df2Sopenharmony_ci#
85c735df2Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
95c735df2Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
105c735df2Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
115c735df2Sopenharmony_ci# See the License for the specific language governing permissions and
125c735df2Sopenharmony_ci# limitations under the License.
135c735df2Sopenharmony_ci
145c735df2Sopenharmony_ciimport("//base/location/config.gni")
155c735df2Sopenharmony_ciimport("//build/ohos.gni")
165c735df2Sopenharmony_ci
175c735df2Sopenharmony_ciconfig("geofence_sdk_config") {
185c735df2Sopenharmony_ci  visibility = [ ":*" ]
195c735df2Sopenharmony_ci  include_dirs = [
205c735df2Sopenharmony_ci    "$LOCATION_ROOT_DIR/interfaces/inner_api/include",
215c735df2Sopenharmony_ci    "$LOCATION_ROOT_DIR/frameworks/native/notification/include",
225c735df2Sopenharmony_ci    "$LOCATION_ROOT_DIR/frameworks/js/napi/include",
235c735df2Sopenharmony_ci  ]
245c735df2Sopenharmony_ci}
255c735df2Sopenharmony_ci
265c735df2Sopenharmony_cilocal_base_sources = [
275c735df2Sopenharmony_ci  "$LOCATION_NATIVE_DIR/geofence_sdk/source/geofence_request.cpp",
285c735df2Sopenharmony_ci  "$LOCATION_NATIVE_DIR/geofence_sdk/source/geofence_sdk.cpp",
295c735df2Sopenharmony_ci]
305c735df2Sopenharmony_ci
315c735df2Sopenharmony_ciohos_shared_library("geofence_sdk") {
325c735df2Sopenharmony_ci  install_enable = true
335c735df2Sopenharmony_ci
345c735df2Sopenharmony_ci  public_configs = [ ":geofence_sdk_config" ]
355c735df2Sopenharmony_ci
365c735df2Sopenharmony_ci  sanitize = {
375c735df2Sopenharmony_ci    cfi = true
385c735df2Sopenharmony_ci    cfi_cross_dso = true
395c735df2Sopenharmony_ci    debug = false
405c735df2Sopenharmony_ci  }
415c735df2Sopenharmony_ci  branch_protector_ret = "pac_ret"
425c735df2Sopenharmony_ci
435c735df2Sopenharmony_ci  sources = local_base_sources
445c735df2Sopenharmony_ci
455c735df2Sopenharmony_ci  deps = [
465c735df2Sopenharmony_ci    "$LOCATION_COMMON_DIR:lbsservice_common",
475c735df2Sopenharmony_ci    "$LOCATION_ROOT_DIR/frameworks/base_module:lbsbase_module",
485c735df2Sopenharmony_ci  ]
495c735df2Sopenharmony_ci
505c735df2Sopenharmony_ci  public_external_deps = [
515c735df2Sopenharmony_ci    "hilog:libhilog",
525c735df2Sopenharmony_ci    "init:libbegetutil",
535c735df2Sopenharmony_ci    "ipc:ipc_single",
545c735df2Sopenharmony_ci    "samgr:samgr_proxy",
555c735df2Sopenharmony_ci  ]
565c735df2Sopenharmony_ci
575c735df2Sopenharmony_ci  defines = []
585c735df2Sopenharmony_ci
595c735df2Sopenharmony_ci  if (notification_distributed_notification_service_enable) {
605c735df2Sopenharmony_ci    public_external_deps += [ "distributed_notification_service:ans_innerkits" ]
615c735df2Sopenharmony_ci    defines += [ "NOTIFICATION_ENABLE" ]
625c735df2Sopenharmony_ci  }
635c735df2Sopenharmony_ci
645c735df2Sopenharmony_ci  if (is_emulator) {
655c735df2Sopenharmony_ci    defines += [ "EMULATOR_ENABLED" ]
665c735df2Sopenharmony_ci  }
675c735df2Sopenharmony_ci
685c735df2Sopenharmony_ci  cflags_cc = [
695c735df2Sopenharmony_ci    "-std=c++17",
705c735df2Sopenharmony_ci    "-fno-rtti",
715c735df2Sopenharmony_ci    "-ffunction-sections",
725c735df2Sopenharmony_ci    "-fdata-sections",
735c735df2Sopenharmony_ci    "-Os",
745c735df2Sopenharmony_ci  ]
755c735df2Sopenharmony_ci
765c735df2Sopenharmony_ci  ldflags = [
775c735df2Sopenharmony_ci    "-fPIC",
785c735df2Sopenharmony_ci    "-Wl,-E",
795c735df2Sopenharmony_ci    "-Wl,--as-needed",
805c735df2Sopenharmony_ci    "-Wl,--gc-sections",
815c735df2Sopenharmony_ci  ]
825c735df2Sopenharmony_ci
835c735df2Sopenharmony_ci  # Used to control the export of dynamic library symbols.
845c735df2Sopenharmony_ci  version_script = "libgeofence_sdk_version_script.txt"
855c735df2Sopenharmony_ci
865c735df2Sopenharmony_ci  innerapi_tags = [ "platformsdk" ]
875c735df2Sopenharmony_ci  part_name = "location"
885c735df2Sopenharmony_ci  subsystem_name = "location"
895c735df2Sopenharmony_ci}
905c735df2Sopenharmony_ci
915c735df2Sopenharmony_ciohos_static_library("geofence_sdk_static") {
925c735df2Sopenharmony_ci  public_configs = [ ":geofence_sdk_config" ]
935c735df2Sopenharmony_ci
945c735df2Sopenharmony_ci  sanitize = {
955c735df2Sopenharmony_ci    cfi = true
965c735df2Sopenharmony_ci    cfi_cross_dso = true
975c735df2Sopenharmony_ci    debug = false
985c735df2Sopenharmony_ci  }
995c735df2Sopenharmony_ci  branch_protector_ret = "pac_ret"
1005c735df2Sopenharmony_ci
1015c735df2Sopenharmony_ci  sources = local_base_sources
1025c735df2Sopenharmony_ci
1035c735df2Sopenharmony_ci  deps = [
1045c735df2Sopenharmony_ci    "$LOCATION_COMMON_DIR:lbsservice_common",
1055c735df2Sopenharmony_ci    "$LOCATION_ROOT_DIR/frameworks/base_module:lbsbase_module",
1065c735df2Sopenharmony_ci  ]
1075c735df2Sopenharmony_ci
1085c735df2Sopenharmony_ci  public_external_deps = [
1095c735df2Sopenharmony_ci    "hilog:libhilog",
1105c735df2Sopenharmony_ci    "init:libbegetutil",
1115c735df2Sopenharmony_ci    "ipc:ipc_single",
1125c735df2Sopenharmony_ci    "samgr:samgr_proxy",
1135c735df2Sopenharmony_ci  ]
1145c735df2Sopenharmony_ci
1155c735df2Sopenharmony_ci  defines = []
1165c735df2Sopenharmony_ci
1175c735df2Sopenharmony_ci  if (notification_distributed_notification_service_enable) {
1185c735df2Sopenharmony_ci    public_external_deps += [ "distributed_notification_service:ans_innerkits" ]
1195c735df2Sopenharmony_ci    defines += [ "NOTIFICATION_ENABLE" ]
1205c735df2Sopenharmony_ci  }
1215c735df2Sopenharmony_ci
1225c735df2Sopenharmony_ci  if (is_emulator) {
1235c735df2Sopenharmony_ci    defines += [ "EMULATOR_ENABLED" ]
1245c735df2Sopenharmony_ci  }
1255c735df2Sopenharmony_ci
1265c735df2Sopenharmony_ci  cflags_cc = [
1275c735df2Sopenharmony_ci    "-std=c++17",
1285c735df2Sopenharmony_ci    "-fno-rtti",
1295c735df2Sopenharmony_ci  ]
1305c735df2Sopenharmony_ci
1315c735df2Sopenharmony_ci  ldflags = [
1325c735df2Sopenharmony_ci    "-fPIC",
1335c735df2Sopenharmony_ci    "-Wl,-E",
1345c735df2Sopenharmony_ci  ]
1355c735df2Sopenharmony_ci
1365c735df2Sopenharmony_ci  part_name = "location"
1375c735df2Sopenharmony_ci  subsystem_name = "location"
1385c735df2Sopenharmony_ci}
139