133d722a9Sopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. 233d722a9Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 333d722a9Sopenharmony_ci# you may not use this file except in compliance with the License. 433d722a9Sopenharmony_ci# You may obtain a copy of the License at 533d722a9Sopenharmony_ci# 633d722a9Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 733d722a9Sopenharmony_ci# 833d722a9Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 933d722a9Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 1033d722a9Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1133d722a9Sopenharmony_ci# See the License for the specific language governing permissions and 1233d722a9Sopenharmony_ci# limitations under the License. 1333d722a9Sopenharmony_ci 1433d722a9Sopenharmony_ciimport("//build/ohos.gni") 1533d722a9Sopenharmony_ci 1633d722a9Sopenharmony_ciohos_cargo_crate("lib") { 1733d722a9Sopenharmony_ci crate_name = "cxx" 1833d722a9Sopenharmony_ci crate_type = "rlib" 1933d722a9Sopenharmony_ci crate_root = "src/lib.rs" 2033d722a9Sopenharmony_ci 2133d722a9Sopenharmony_ci sources = [ "src/lib.rs" ] 2233d722a9Sopenharmony_ci edition = "2018" 2333d722a9Sopenharmony_ci cargo_pkg_version = "1.0.97" 2433d722a9Sopenharmony_ci cargo_pkg_authors = "David Tolnay <dtolnay@gmail.com>" 2533d722a9Sopenharmony_ci cargo_pkg_name = "cxx" 2633d722a9Sopenharmony_ci cargo_pkg_description = "Safe interop between Rust and C++" 2733d722a9Sopenharmony_ci deps = [ "//third_party/rust/crates/cxx/macro:lib(${host_toolchain})" ] 2833d722a9Sopenharmony_ci features = [ 2933d722a9Sopenharmony_ci "alloc", 3033d722a9Sopenharmony_ci "std", 3133d722a9Sopenharmony_ci ] 3233d722a9Sopenharmony_ci build_root = "build.rs" 3333d722a9Sopenharmony_ci build_sources = [ "build.rs" ] 3433d722a9Sopenharmony_ci} 3533d722a9Sopenharmony_ci 3633d722a9Sopenharmony_ciconfig("cxx_cppdeps_header_config") { 3733d722a9Sopenharmony_ci include_dirs = [ "include" ] 3833d722a9Sopenharmony_ci} 3933d722a9Sopenharmony_ci 4033d722a9Sopenharmony_ciohos_static_library("cxx_cppdeps") { 4133d722a9Sopenharmony_ci part_name = "build_framework" 4233d722a9Sopenharmony_ci subsystem_name = "build" 4333d722a9Sopenharmony_ci defines = [ "RUST_CXX_NO_EXCEPTIONS" ] 4433d722a9Sopenharmony_ci public_configs = [ ":cxx_cppdeps_header_config" ] 4533d722a9Sopenharmony_ci sources = [ 4633d722a9Sopenharmony_ci "//third_party/rust/crates/cxx/include/cxx.h", 4733d722a9Sopenharmony_ci "//third_party/rust/crates/cxx/src/cxx.cc", 4833d722a9Sopenharmony_ci ] 4933d722a9Sopenharmony_ci deps = [ "//third_party/rust/crates/cxx:lib" ] 5033d722a9Sopenharmony_ci if (is_win) { 5133d722a9Sopenharmony_ci defines += [ "CXX_RS_EXPORT=__declspec(dllexport)" ] 5233d722a9Sopenharmony_ci } else { 5333d722a9Sopenharmony_ci defines += [ "CXX_RS_EXPORT=__attribute__((visibility(\"default\")))" ] 5433d722a9Sopenharmony_ci } 5533d722a9Sopenharmony_ci} 56