1# Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13template("ohos_source_set") { 14 source_set(target_name) { 15 if (defined(invoker.subsystem_name)) { 16 subsystem_name = invoker.subsystem_name 17 print("subsystem_name", subsystem_name) 18 } 19 if (defined(invoker.part_name)) { 20 part_name = invoker.part_name 21 print("part_name", part_name) 22 } 23 if (defined(invoker.sources)) { 24 sources = invoker.sources 25 } 26 if (defined(invoker.configs)) { 27 configs = invoker.configs 28 } 29 if (defined(invoker.cflags)) { 30 cflags = invoker.cflags 31 } 32 if (defined(invoker.include_dirs)) { 33 include_dirs = invoker.include_dirs 34 } 35 if (defined(invoker.deps)) { 36 deps = invoker.deps 37 } 38 if (defined(invoker.cflags_cc)) { 39 cflags_cc = invoker.cflags_cc 40 } 41 if (defined(invoker.ldflags)) { 42 ldflags = invoker.ldflags 43 } 44 if (defined(invoker.public_deps)) { 45 public_deps = invoker.public_deps 46 } 47 if (defined(invoker.public_configs)) { 48 public_configs = invoker.public_configs 49 } 50 } 51} 52template("ohos_shared_library") { 53 part_name = invoker.part_name 54 subsystem_name = invoker.subsystem_name 55 shared_library(target_name) { 56 sources = invoker.sources 57 if (defined(invoker.configs)) { 58 configs = invoker.configs 59 } 60 public_configs = invoker.public_configs 61 if (defined(invoker.defines)) { 62 defines = invoker.defines 63 } 64 if (defined(invoker.cflags)) { 65 cflags = invoker.cflags 66 } 67 if (defined(invoker.include_dirs)) { 68 include_dirs = invoker.include_dirs 69 } 70 if (defined(invoker.cflags_cc)) { 71 cflags_cc = invoker.cflags_cc 72 } 73 if (defined(invoker.deps)) { 74 deps = invoker.deps 75 } 76 } 77} 78template("ohos_static_library") { 79 static_library(target_name) { 80 if (defined(invoker.subsystem_name)) { 81 subsystem_name = invoker.subsystem_name 82 print("subsystem_name", subsystem_name) 83 } 84 if (defined(invoker.part_name)) { 85 part_name = invoker.part_name 86 print("part_name", part_name) 87 } 88 if (defined(invoker.sources)) { 89 sources = invoker.sources 90 } 91 if (defined(invoker.public_configs)) { 92 public_configs = invoker.public_configs 93 } 94 if (defined(invoker.configs)) { 95 if (configs == []) { 96 configs = invoker.configs 97 } else { 98 configs += invoker.configs 99 } 100 } 101 if (defined(invoker.defines)) { 102 defines = invoker.defines 103 } 104 if (defined(invoker.cflags)) { 105 cflags = invoker.cflags 106 } 107 if (defined(invoker.include_dirs)) { 108 include_dirs = invoker.include_dirs 109 } 110 if (defined(invoker.cflags_cc)) { 111 cflags_cc = invoker.cflags_cc 112 } 113 if (defined(invoker.deps)) { 114 deps = invoker.deps 115 } 116 if (defined(invoker.public_deps)) { 117 public_deps = invoker.public_deps 118 } 119 if (defined(invoker.visibility)) { 120 visibility = invoker.visibility 121 } 122 if (defined(invoker.output_extension)) { 123 output_extension = invoker.output_extension 124 } 125 if (is_mingw) { 126 output_extension = "a" 127 } 128 } 129} 130template("ohos_executable") { 131 executable(target_name) { 132 if (defined(invoker.subsystem_name)) { 133 subsystem_name = invoker.subsystem_name 134 print("subsystem_name", subsystem_name) 135 } 136 if (defined(invoker.part_name)) { 137 part_name = invoker.part_name 138 print("part_name", part_name) 139 } 140 if (defined(invoker.include_dirs)) { 141 include_dirs = invoker.include_dirs 142 } 143 sources = invoker.sources 144 if (defined(invoker.defines)) { 145 defines = invoker.defines 146 } 147 if (defined(invoker.cflags)) { 148 cflags = invoker.cflags 149 } 150 if (defined(invoker.deps)) { 151 deps = invoker.deps 152 } 153 if (defined(invoker.cflags_cc)) { 154 cflags_cc = invoker.cflags_cc 155 } 156 if (defined(invoker.output_name)) { 157 output_name = invoker.output_name 158 } 159 if (defined(invoker.testonly)) { 160 testonly = invoker.testonly 161 } 162 if (defined(invoker.ohos_test)) { 163 ohos_test = invoker.ohos_test 164 } 165 if (defined(invoker.output_extension)) { 166 output_extension = invoker.output_extension 167 } 168 if (is_mingw) { 169 output_extension = "exe" 170 } 171 } 172} 173