15f9996aaSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
25f9996aaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
35f9996aaSopenharmony_ci# you may not use this file except in compliance with the License.
45f9996aaSopenharmony_ci# You may obtain a copy of the License at
55f9996aaSopenharmony_ci#
65f9996aaSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
75f9996aaSopenharmony_ci#
85f9996aaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
95f9996aaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
105f9996aaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
115f9996aaSopenharmony_ci# See the License for the specific language governing permissions and
125f9996aaSopenharmony_ci# limitations under the License.
135f9996aaSopenharmony_ci
145f9996aaSopenharmony_ciimport("//build/ohos.gni")
155f9996aaSopenharmony_ci
165f9996aaSopenharmony_ciohos_cargo_crate("target") {
175f9996aaSopenharmony_ci  crate_name = "test_rlib_crate"
185f9996aaSopenharmony_ci  crate_root = "crate/src/lib.rs"
195f9996aaSopenharmony_ci  sources = [ "crate/src/lib.rs" ]
205f9996aaSopenharmony_ci
215f9996aaSopenharmony_ci  #To generate the build_script binary
225f9996aaSopenharmony_ci  build_root = "crate/build.rs"
235f9996aaSopenharmony_ci  build_sources = [ "crate/build.rs" ]
245f9996aaSopenharmony_ci  build_script_outputs = [ "generated/generated.rs" ]
255f9996aaSopenharmony_ci
265f9996aaSopenharmony_ci  features = [
275f9996aaSopenharmony_ci    "my-feature_a",
285f9996aaSopenharmony_ci    "my-feature_b",
295f9996aaSopenharmony_ci    "std",
305f9996aaSopenharmony_ci  ]
315f9996aaSopenharmony_ci  rustflags = [
325f9996aaSopenharmony_ci    "--cfg",
335f9996aaSopenharmony_ci    "test_a_and_b",
345f9996aaSopenharmony_ci  ]
355f9996aaSopenharmony_ci  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=45" ]
365f9996aaSopenharmony_ci}
375f9996aaSopenharmony_ci
385f9996aaSopenharmony_ci# Exists to test the case that a single crate has both a library and a binary
395f9996aaSopenharmony_ciohos_cargo_crate("test_rlib_crate_associated_bin") {
405f9996aaSopenharmony_ci  crate_root = "crate/src/main.rs"
415f9996aaSopenharmony_ci  crate_type = "bin"
425f9996aaSopenharmony_ci  sources = [ "crate/src/main.rs" ]
435f9996aaSopenharmony_ci
445f9996aaSopenharmony_ci  #To generate the build_script binary
455f9996aaSopenharmony_ci  build_root = "crate/build.rs"
465f9996aaSopenharmony_ci  build_sources = [ "crate/build.rs" ]
475f9996aaSopenharmony_ci  features = [
485f9996aaSopenharmony_ci    "my-feature_a",
495f9996aaSopenharmony_ci    "my-feature_b",
505f9996aaSopenharmony_ci    "std",
515f9996aaSopenharmony_ci  ]
525f9996aaSopenharmony_ci  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=45" ]
535f9996aaSopenharmony_ci  deps = [ ":target" ]
545f9996aaSopenharmony_ci}
55