blob: 617a1e094aa2b8e3639639a100640da405c994af [file] [log] [blame]
<%include file="header.mako" />
import("//build/sdk/sdk_atom.gni")
config("${data.name}_config") {
include_dirs = [
% for include in sorted(data.include_dirs):
"${include}",
% endfor
]
visibility = [
":*",
]
}
if (!toolchain_variant.is_pic_default) {
# In the main toolchain, we just redirect to the same target in the shared
# toolchain.
group("${data.name}") {
public_deps = [
":${data.name}($current_toolchain-shared)",
]
public_configs = [
":${data.name}_config",
]
}
} else {
# In the shared toolchain, we normally set up the library.
_abi_lib = "$root_out_dir/${data.lib_name}"
% if data.has_impl_prebuilt:
_impl_lib = "$root_out_dir/${data.lib_name}.impl"
% endif
_debug_lib = "$root_out_dir/lib.unstripped/${data.lib_name}"
copy("${data.name}_copy_abi_lib") {
sources = [
"${data.prebuilt}",
]
outputs = [
_abi_lib,
]
}
% if data.has_impl_prebuilt:
copy("${data.name}_copy_impl_lib") {
sources = [
"${data.impl_prebuilt}",
]
outputs = [
_impl_lib,
]
}
% else:
group("${data.name}_copy_impl_lib") {}
% endif
copy("${data.name}_copy_unstripped_lib") {
sources = [
"${data.debug_prebuilt}",
]
outputs = [
_debug_lib,
]
}
_linked_lib = _abi_lib
if (is_debug) {
_linked_lib = _debug_lib
}
config("${data.name}_lib_config") {
libs = [
_linked_lib,
]
visibility = [
":*",
]
}
group("${data.name}") {
public_deps = [
":${data.name}_copy_abi_lib",
":${data.name}_copy_impl_lib",
":${data.name}_copy_unstripped_lib",
% for dep in sorted(data.deps):
"../${dep}",
% endfor
% for dep in sorted(data.fidl_deps):
"../../fidl/${dep}",
% endfor
]
public_configs = [
":${data.name}_config",
":${data.name}_lib_config",
]
data_deps = [
":${data.name}_copy_abi_lib",
]
}
} # !toolchain_variant.is_pic_default
sdk_atom("${data.name}_sdk") {
domain = "cpp"
name = "${data.name}"
category = "partner"
tags = [
"type:compiled_shared",
"arch:target",
]
shared_out_dir = get_label_info(":bogus($shlib_toolchain)", "root_out_dir")
files = [
% if data.with_sdk_headers:
% for dest, source in sorted(data.includes.iteritems()):
{
source = "${source}"
dest = "include/${dest}"
},
% endfor
% endif
{
source = "$shared_out_dir/${data.lib_name}"
dest = "lib/${data.lib_name}"
% if not data.has_impl_prebuilt:
packaged = true
% endif
},
% if data.has_impl_prebuilt:
{
source = "$shared_out_dir/${data.lib_name}.impl"
dest = "dist/${data.lib_name}"
packaged = true
},
% endif
{
source = "$shared_out_dir/lib.unstripped/${data.lib_name}"
dest = "debug/${data.lib_name}"
},
]
package_deps = [
% for dep in sorted(data.deps):
"../${dep}:${dep}_sdk",
% endfor
]
non_sdk_deps = [
":${data.name}",
]
}