15c735df2Sopenharmony_ci# Copyright (C) 2022 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_cilocal_base_sources = [
185c735df2Sopenharmony_ci  "$LOCATION_LOCATOR_ROOT/source/location_config_manager.cpp",
195c735df2Sopenharmony_ci  "$LOCATION_LOCATOR_ROOT/source/subability_common.cpp",
205c735df2Sopenharmony_ci  "$LOCATION_LOCATOR_ROOT/source/work_record.cpp",
215c735df2Sopenharmony_ci  "$LOCATION_LOCATOR_ROOT/source/work_record_statistic.cpp",
225c735df2Sopenharmony_ci  "$LOCATION_NETWORK_ROOT/source/network_ability.cpp",
235c735df2Sopenharmony_ci  "$LOCATION_NETWORK_ROOT/source/network_ability_skeleton.cpp",
245c735df2Sopenharmony_ci  "$LOCATION_NETWORK_ROOT/source/network_callback_host.cpp",
255c735df2Sopenharmony_ci]
265c735df2Sopenharmony_ci
275c735df2Sopenharmony_ciif (location_feature_with_network) {
285c735df2Sopenharmony_ci  ohos_shared_library("lbsservice_network") {
295c735df2Sopenharmony_ci    sources = local_base_sources
305c735df2Sopenharmony_ci
315c735df2Sopenharmony_ci    include_dirs = [
325c735df2Sopenharmony_ci      "$LOCATION_ROOT_DIR/interfaces/inner_api/include",
335c735df2Sopenharmony_ci      "$LOCATION_LOCATOR_ROOT/include",
345c735df2Sopenharmony_ci      "$LOCATION_NETWORK_ROOT/include",
355c735df2Sopenharmony_ci    ]
365c735df2Sopenharmony_ci
375c735df2Sopenharmony_ci    sanitize = {
385c735df2Sopenharmony_ci      cfi = true
395c735df2Sopenharmony_ci      cfi_cross_dso = true
405c735df2Sopenharmony_ci      debug = false
415c735df2Sopenharmony_ci    }
425c735df2Sopenharmony_ci    branch_protector_ret = "pac_ret"
435c735df2Sopenharmony_ci
445c735df2Sopenharmony_ci    deps = [
455c735df2Sopenharmony_ci      "$LOCATION_ROOT_DIR/frameworks/base_module:lbsbase_module",
465c735df2Sopenharmony_ci      "$LOCATION_ROOT_DIR/frameworks/location_common/common:lbsservice_common",
475c735df2Sopenharmony_ci    ]
485c735df2Sopenharmony_ci
495c735df2Sopenharmony_ci    external_deps = [
505c735df2Sopenharmony_ci      "ability_base:want",
515c735df2Sopenharmony_ci      "ability_runtime:ability_manager",
525c735df2Sopenharmony_ci      "eventhandler:libeventhandler",
535c735df2Sopenharmony_ci      "ffrt:libffrt",
545c735df2Sopenharmony_ci      "hilog:libhilog",
555c735df2Sopenharmony_ci      "ipc:ipc_single",
565c735df2Sopenharmony_ci      "safwk:system_ability_fwk",
575c735df2Sopenharmony_ci    ]
585c735df2Sopenharmony_ci
595c735df2Sopenharmony_ci    defines = []
605c735df2Sopenharmony_ci
615c735df2Sopenharmony_ci    ldflags = [
625c735df2Sopenharmony_ci      "-Wl,--as-needed",
635c735df2Sopenharmony_ci      "-Wl,--gc-sections",
645c735df2Sopenharmony_ci    ]
655c735df2Sopenharmony_ci
665c735df2Sopenharmony_ci    cflags_cc = [
675c735df2Sopenharmony_ci      "-ffunction-sections",
685c735df2Sopenharmony_ci      "-fdata-sections",
695c735df2Sopenharmony_ci      "-Os",
705c735df2Sopenharmony_ci    ]
715c735df2Sopenharmony_ci
725c735df2Sopenharmony_ci    if (location_feature_with_network) {
735c735df2Sopenharmony_ci      defines += [ "FEATURE_NETWORK_SUPPORT" ]
745c735df2Sopenharmony_ci    }
755c735df2Sopenharmony_ci
765c735df2Sopenharmony_ci    if (location_feature_with_passive) {
775c735df2Sopenharmony_ci      defines += [ "FEATURE_PASSIVE_SUPPORT" ]
785c735df2Sopenharmony_ci    }
795c735df2Sopenharmony_ci
805c735df2Sopenharmony_ci    # Used to control the export of dynamic library symbols.
815c735df2Sopenharmony_ci    version_script = "liblbsservice_network_version_script.txt"
825c735df2Sopenharmony_ci
835c735df2Sopenharmony_ci    part_name = "location"
845c735df2Sopenharmony_ci    subsystem_name = "location"
855c735df2Sopenharmony_ci  }
865c735df2Sopenharmony_ci
875c735df2Sopenharmony_ci  ohos_static_library("lbsservice_network_static") {
885c735df2Sopenharmony_ci    sources = local_base_sources
895c735df2Sopenharmony_ci
905c735df2Sopenharmony_ci    include_dirs = [
915c735df2Sopenharmony_ci      "$LOCATION_ROOT_DIR/interfaces/inner_api/include",
925c735df2Sopenharmony_ci      "$LOCATION_LOCATOR_ROOT/include",
935c735df2Sopenharmony_ci      "$LOCATION_NETWORK_ROOT/include",
945c735df2Sopenharmony_ci    ]
955c735df2Sopenharmony_ci
965c735df2Sopenharmony_ci    sanitize = {
975c735df2Sopenharmony_ci      cfi = true
985c735df2Sopenharmony_ci      cfi_cross_dso = true
995c735df2Sopenharmony_ci      debug = false
1005c735df2Sopenharmony_ci    }
1015c735df2Sopenharmony_ci    branch_protector_ret = "pac_ret"
1025c735df2Sopenharmony_ci
1035c735df2Sopenharmony_ci    deps = [
1045c735df2Sopenharmony_ci      "$LOCATION_ROOT_DIR/frameworks/base_module:lbsbase_module",
1055c735df2Sopenharmony_ci      "$LOCATION_ROOT_DIR/frameworks/location_common/common:lbsservice_common",
1065c735df2Sopenharmony_ci    ]
1075c735df2Sopenharmony_ci
1085c735df2Sopenharmony_ci    external_deps = [
1095c735df2Sopenharmony_ci      "ability_base:want",
1105c735df2Sopenharmony_ci      "ability_runtime:ability_manager",
1115c735df2Sopenharmony_ci      "eventhandler:libeventhandler",
1125c735df2Sopenharmony_ci      "ffrt:libffrt",
1135c735df2Sopenharmony_ci      "hilog:libhilog",
1145c735df2Sopenharmony_ci      "ipc:ipc_single",
1155c735df2Sopenharmony_ci      "safwk:system_ability_fwk",
1165c735df2Sopenharmony_ci    ]
1175c735df2Sopenharmony_ci
1185c735df2Sopenharmony_ci    defines = []
1195c735df2Sopenharmony_ci    if (location_feature_with_network) {
1205c735df2Sopenharmony_ci      defines += [ "FEATURE_NETWORK_SUPPORT" ]
1215c735df2Sopenharmony_ci    }
1225c735df2Sopenharmony_ci
1235c735df2Sopenharmony_ci    if (location_feature_with_passive) {
1245c735df2Sopenharmony_ci      defines += [ "FEATURE_PASSIVE_SUPPORT" ]
1255c735df2Sopenharmony_ci    }
1265c735df2Sopenharmony_ci
1275c735df2Sopenharmony_ci    part_name = "location"
1285c735df2Sopenharmony_ci    subsystem_name = "location"
1295c735df2Sopenharmony_ci  }
1305c735df2Sopenharmony_ci} else {
1315c735df2Sopenharmony_ci  ohos_shared_library("lbsservice_network") {
1325c735df2Sopenharmony_ci    part_name = "location"
1335c735df2Sopenharmony_ci    subsystem_name = "location"
1345c735df2Sopenharmony_ci  }
1355c735df2Sopenharmony_ci
1365c735df2Sopenharmony_ci  ohos_static_library("lbsservice_network_static") {
1375c735df2Sopenharmony_ci    part_name = "location"
1385c735df2Sopenharmony_ci    subsystem_name = "location"
1395c735df2Sopenharmony_ci  }
1405c735df2Sopenharmony_ci}
141