1b6a906aeSopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd. 2b6a906aeSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3b6a906aeSopenharmony_ci# you may not use this file except in compliance with the License. 4b6a906aeSopenharmony_ci# You may obtain a copy of the License at 5b6a906aeSopenharmony_ci# 6b6a906aeSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7b6a906aeSopenharmony_ci# 8b6a906aeSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9b6a906aeSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10b6a906aeSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11b6a906aeSopenharmony_ci# See the License for the specific language governing permissions and 12b6a906aeSopenharmony_ci# limitations under the License. 13b6a906aeSopenharmony_ci 14b6a906aeSopenharmony_ciimport("//build/ohos.gni") 15b6a906aeSopenharmony_ci 16b6a906aeSopenharmony_ci# Execute the script and extract jsoncpp 17b6a906aeSopenharmony_ciaction("jsoncpp_install_action") { 18b6a906aeSopenharmony_ci script = "//third_party/jsoncpp/install.py" 19b6a906aeSopenharmony_ci outputs = [ 20b6a906aeSopenharmony_ci "${target_gen_dir}/jsoncpp-1.9.5/src/lib_json/json_reader.cpp", 21b6a906aeSopenharmony_ci "${target_gen_dir}/jsoncpp-1.9.5/src/lib_json/json_value.cpp", 22b6a906aeSopenharmony_ci "${target_gen_dir}/jsoncpp-1.9.5/src/lib_json/json_writer.cpp", 23b6a906aeSopenharmony_ci ] 24b6a906aeSopenharmony_ci 25b6a906aeSopenharmony_ci inputs = [ "//third_party/jsoncpp/jsoncpp-1.9.5.tar.gz" ] 26b6a906aeSopenharmony_ci 27b6a906aeSopenharmony_ci args = [ 28b6a906aeSopenharmony_ci "--gen-dir", 29b6a906aeSopenharmony_ci rebase_path("${target_gen_dir}", root_build_dir), 30b6a906aeSopenharmony_ci "--source-file", 31b6a906aeSopenharmony_ci rebase_path("//third_party/jsoncpp"), 32b6a906aeSopenharmony_ci ] 33b6a906aeSopenharmony_ci} 34b6a906aeSopenharmony_ci 35b6a906aeSopenharmony_ciconfig("config_static") { 36b6a906aeSopenharmony_ci cflags = [ 37b6a906aeSopenharmony_ci "-std=c++17", 38b6a906aeSopenharmony_ci "-Wno-error=implicit-fallthrough", 39b6a906aeSopenharmony_ci "-Wno-deprecated-declarations", 40b6a906aeSopenharmony_ci ] 41b6a906aeSopenharmony_ci visibility = [ ":*" ] 42b6a906aeSopenharmony_ci} 43b6a906aeSopenharmony_ci 44b6a906aeSopenharmony_ciconfig("jsoncpp_config") { 45b6a906aeSopenharmony_ci cflags = [ 46b6a906aeSopenharmony_ci "-std=c++17", 47b6a906aeSopenharmony_ci "-Wno-error=implicit-fallthrough", 48b6a906aeSopenharmony_ci "-Wno-deprecated-declarations", 49b6a906aeSopenharmony_ci ] 50b6a906aeSopenharmony_ci} 51b6a906aeSopenharmony_ci 52b6a906aeSopenharmony_ciconfig("flag_config") { 53b6a906aeSopenharmony_ci cflags_cc = [ "-fexceptions" ] 54b6a906aeSopenharmony_ci} 55b6a906aeSopenharmony_ci 56b6a906aeSopenharmony_ciconfig("jsoncpp_public_config") { 57b6a906aeSopenharmony_ci include_dirs = [ get_label_info(":jsoncpp_install_action", "target_gen_dir") + 58b6a906aeSopenharmony_ci "/jsoncpp-1.9.5/include" ] 59b6a906aeSopenharmony_ci} 60b6a906aeSopenharmony_ci 61b6a906aeSopenharmony_ciohos_shared_library("jsoncpp") { 62b6a906aeSopenharmony_ci branch_protector_ret = "pac_ret" 63b6a906aeSopenharmony_ci visibility = [ "*" ] 64b6a906aeSopenharmony_ci sources = get_target_outputs(":jsoncpp_install_action") 65b6a906aeSopenharmony_ci use_exceptions = true 66b6a906aeSopenharmony_ci configs = [ ":jsoncpp_config" ] 67b6a906aeSopenharmony_ci public_configs = [ ":jsoncpp_public_config" ] 68b6a906aeSopenharmony_ci innerapi_tags = [ 69b6a906aeSopenharmony_ci "chipsetsdk", 70b6a906aeSopenharmony_ci "platformsdk", 71b6a906aeSopenharmony_ci ] 72b6a906aeSopenharmony_ci install_images = [ 73b6a906aeSopenharmony_ci "system", 74b6a906aeSopenharmony_ci "updater", 75b6a906aeSopenharmony_ci ] 76b6a906aeSopenharmony_ci deps = [ ":jsoncpp_install_action" ] 77b6a906aeSopenharmony_ci part_name = "jsoncpp" 78b6a906aeSopenharmony_ci subsystem_name = "thirdparty" 79b6a906aeSopenharmony_ci} 80b6a906aeSopenharmony_ci 81b6a906aeSopenharmony_ciohos_static_library("jsoncpp_static") { 82b6a906aeSopenharmony_ci branch_protector_ret = "pac_ret" 83b6a906aeSopenharmony_ci sources = get_target_outputs(":jsoncpp_install_action") 84b6a906aeSopenharmony_ci use_exceptions = true 85b6a906aeSopenharmony_ci configs = [ 86b6a906aeSopenharmony_ci ":config_static", 87b6a906aeSopenharmony_ci ":flag_config", 88b6a906aeSopenharmony_ci ] 89b6a906aeSopenharmony_ci public_configs = [ ":jsoncpp_public_config" ] 90b6a906aeSopenharmony_ci cflags_cc = [ 91b6a906aeSopenharmony_ci "-Wall", 92b6a906aeSopenharmony_ci "-Werror", 93b6a906aeSopenharmony_ci "-Wno-implicit-fallthrough", 94b6a906aeSopenharmony_ci ] 95b6a906aeSopenharmony_ci deps = [ ":jsoncpp_install_action" ] 96b6a906aeSopenharmony_ci part_name = "jsoncpp" 97b6a906aeSopenharmony_ci subsystem_name = "thirdparty" 98b6a906aeSopenharmony_ci} 99