| # Copyright 2018 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| assert(is_fuchsia) |
| |
| import("//build/config/fuchsia/fidl_library.gni") |
| import("//build/toolchain/toolchain.gni") |
| |
| # Templates for Fuchsia SDK packages. |
| |
| # Declares a package specifying FIDL files and its dependencies. |
| # |
| # Parameters: |
| # package_name - Name of the library. target_name is used if name |
| # is not specified explicitly. |
| # namespace - FIDL namespace. |
| # sources - List of sources relative to sdk/fidl/${name}. |
| # deps - List of dependencies. |
| template("fuchsia_sdk_fidl_pkg") { |
| _package_name = target_name |
| if (defined(invoker.package_name)) { |
| _package_name = invoker.package_name |
| } |
| |
| fidl_library(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "deps", |
| "public_deps", |
| "testonly", |
| "visibility", |
| ]) |
| |
| library_name = _package_name |
| |
| if (defined(invoker.namespace)) { |
| namespace = invoker.namespace |
| } |
| |
| sources = invoker.sources |
| } |
| } |
| |
| # Declares a package containing uncompiled code and/or precompiled libraries. |
| # |
| # Parameters: |
| # package_name - Name of the library. target_name is used if name |
| # is not specified explicitly. |
| # sources - List of sources relative to sdk/pkg/${name}. |
| # deps - List of dependencies. |
| # shared_libs - List of precompiled shared libraries. |
| # static_libs - List of precompiled static libraries. |
| template("fuchsia_sdk_pkg") { |
| config("${target_name}_config") { |
| forward_variables_from(invoker, [ "include_dirs" ]) |
| visibility = [ ":${invoker.target_name}" ] |
| } |
| |
| if (defined(invoker.shared_libs)) { |
| if (defined(invoker.sdk_dist_dir)) { |
| sdk_dist_dir = invoker.sdk_dist_dir |
| } else { |
| sdk_dist_dir = "arch/${target_cpu}/dist" |
| } |
| |
| copy("${target_name}_dist_libs") { |
| sources = [] |
| foreach(lib, invoker.shared_libs) { |
| sources += [ "${sdk_dist_dir}/lib${lib}.so" ] |
| } |
| |
| outputs = [ |
| "${root_out_dir}${shlib_subdir}/{{source_file_part}}", |
| ] |
| } |
| } |
| |
| static_library(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "data", |
| "deps", |
| "public_deps", |
| "sources", |
| "testonly", |
| "visibility", |
| ]) |
| |
| public_configs = [ ":${invoker.target_name}_config" ] |
| |
| if (defined(invoker.shared_libs)) { |
| configs += [ "//third_party/fuchsia-sdk:sdk_lib_dirs_config" ] |
| libs = invoker.shared_libs |
| data_deps = [ |
| ":${target_name}_dist_libs", |
| ] |
| } else if (defined(invoker.static_libs)) { |
| libs = invoker.static_libs |
| } |
| } |
| } |