| Index: third_party/mojo/src/mojo/public/mojo_application.gni
|
| diff --git a/third_party/mojo/src/mojo/public/mojo_application.gni b/third_party/mojo/src/mojo/public/mojo_application.gni
|
| index 77ed4bbb46353cbf9573a270afe11f5473a97036..0cf7bff5dd268dd66d426daf4f5d99e150984099 100644
|
| --- a/third_party/mojo/src/mojo/public/mojo_application.gni
|
| +++ b/third_party/mojo/src/mojo/public/mojo_application.gni
|
| @@ -10,144 +10,281 @@ import("mojo_sdk.gni")
|
| # of a shared library.
|
| template("mojo_native_application") {
|
| if (defined(invoker.output_name)) {
|
| - output = invoker.output_name + ".mojo"
|
| - library_target_name = invoker.output_name + "_library"
|
| + base_target_name = invoker.output_name
|
| } else {
|
| - output = target_name + ".mojo"
|
| - library_target_name = target_name + "_library"
|
| - }
|
| -
|
| - if (is_linux || is_android) {
|
| - library_name = "lib${library_target_name}.so"
|
| - } else if (is_win) {
|
| - library_name = "${library_target_name}.dll"
|
| - } else if (is_mac) {
|
| - library_name = "lib${library_target_name}.dylib"
|
| - } else {
|
| - assert(false, "Platform not supported.")
|
| - }
|
| -
|
| - if (is_android) {
|
| - # On android, use the stripped version of the library, because applications
|
| - # are always fetched over the network.
|
| - library_dir = "${root_out_dir}/lib.stripped"
|
| - } else {
|
| - library_dir = root_out_dir
|
| + base_target_name = target_name
|
| }
|
|
|
| final_target_name = target_name
|
|
|
| - shared_library(library_target_name) {
|
| - if (defined(invoker.cflags)) {
|
| - cflags = invoker.cflags
|
| - }
|
| - if (defined(invoker.cflags_c)) {
|
| - cflags_c = invoker.cflags_c
|
| - }
|
| - if (defined(invoker.cflags_cc)) {
|
| - cflags_cc = invoker.cflags_cc
|
| - }
|
| - if (defined(invoker.cflags_objc)) {
|
| - cflags_objc = invoker.cflags_objc
|
| - }
|
| - if (defined(invoker.cflags_objcc)) {
|
| - cflags_objcc = invoker.cflags_objcc
|
| - }
|
| - if (defined(invoker.defines)) {
|
| - defines = invoker.defines
|
| - }
|
| - if (defined(invoker.include_dirs)) {
|
| - include_dirs = invoker.include_dirs
|
| - }
|
| - if (defined(invoker.ldflags)) {
|
| - ldflags = invoker.ldflags
|
| - }
|
| - if (defined(invoker.lib_dirs)) {
|
| - lib_dirs = invoker.lib_dirs
|
| - }
|
| - if (defined(invoker.libs)) {
|
| - libs = invoker.libs
|
| - }
|
| + if (!is_nacl) {
|
| + output = base_target_name + ".mojo"
|
| + library_target_name = base_target_name + "_library"
|
|
|
| - data_deps = []
|
| - if (defined(invoker.data_deps)) {
|
| - data_deps = invoker.data_deps
|
| + if (is_linux || is_android) {
|
| + library_name = "lib${library_target_name}.so"
|
| + } else if (is_win) {
|
| + library_name = "${library_target_name}.dll"
|
| + } else if (is_mac) {
|
| + library_name = "lib${library_target_name}.dylib"
|
| + } else {
|
| + assert(false, "Platform not supported.")
|
| }
|
|
|
| - # Copy any necessary prebuilt artifacts.
|
| - if (use_prebuilt_mojo_shell) {
|
| - data_deps +=
|
| - [ rebase_path("mojo/public/tools:copy_mojo_shell", ".", mojo_root) ]
|
| - }
|
| - if (use_prebuilt_network_service) {
|
| - data_deps += [ rebase_path("mojo/public/tools:copy_network_service",
|
| - ".",
|
| - mojo_root) ]
|
| + if (is_android) {
|
| + # On android, use the stripped version of the library, because applications
|
| + # are always fetched over the network.
|
| + library_dir = "${root_out_dir}/lib.stripped"
|
| + } else {
|
| + library_dir = root_out_dir
|
| }
|
|
|
| - deps = rebase_path([
|
| - "mojo/public/c/system",
|
| - "mojo/public/platform/native:system",
|
| - ],
|
| - ".",
|
| - mojo_root)
|
| - if (defined(invoker.deps)) {
|
| - deps += invoker.deps
|
| - }
|
| - if (defined(invoker.forward_dependent_configs_from)) {
|
| - forward_dependent_configs_from = invoker.forward_dependent_configs_from
|
| - }
|
| - if (defined(invoker.public_deps)) {
|
| - public_deps = invoker.public_deps
|
| - }
|
| - if (defined(invoker.all_dependent_configs)) {
|
| - all_dependent_configs = invoker.all_dependent_configs
|
| - }
|
| - if (defined(invoker.public_configs)) {
|
| - public_configs = invoker.public_configs
|
| - }
|
| - if (defined(invoker.check_includes)) {
|
| - check_includes = invoker.check_includes
|
| - }
|
| - if (defined(invoker.configs)) {
|
| - configs += invoker.configs
|
| - }
|
| - if (defined(invoker.data)) {
|
| - data = invoker.data
|
| - }
|
| - if (defined(invoker.inputs)) {
|
| - inputs = invoker.inputs
|
| - }
|
| - if (defined(invoker.public)) {
|
| - public = invoker.public
|
| - }
|
| - if (defined(invoker.sources)) {
|
| - sources = invoker.sources
|
| + shared_library(library_target_name) {
|
| + if (defined(invoker.cflags)) {
|
| + cflags = invoker.cflags
|
| + }
|
| + if (defined(invoker.cflags_c)) {
|
| + cflags_c = invoker.cflags_c
|
| + }
|
| + if (defined(invoker.cflags_cc)) {
|
| + cflags_cc = invoker.cflags_cc
|
| + }
|
| + if (defined(invoker.cflags_objc)) {
|
| + cflags_objc = invoker.cflags_objc
|
| + }
|
| + if (defined(invoker.cflags_objcc)) {
|
| + cflags_objcc = invoker.cflags_objcc
|
| + }
|
| + if (defined(invoker.defines)) {
|
| + defines = invoker.defines
|
| + }
|
| + if (defined(invoker.include_dirs)) {
|
| + include_dirs = invoker.include_dirs
|
| + }
|
| + if (defined(invoker.ldflags)) {
|
| + ldflags = invoker.ldflags
|
| + }
|
| + if (defined(invoker.lib_dirs)) {
|
| + lib_dirs = invoker.lib_dirs
|
| + }
|
| + if (defined(invoker.libs)) {
|
| + libs = invoker.libs
|
| + }
|
| +
|
| + data_deps = []
|
| + if (defined(invoker.data_deps)) {
|
| + data_deps = invoker.data_deps
|
| + }
|
| +
|
| + # Copy any necessary prebuilt artifacts.
|
| + if (use_prebuilt_mojo_shell) {
|
| + data_deps +=
|
| + [ rebase_path("mojo/public/tools:copy_mojo_shell", ".", mojo_root) ]
|
| + }
|
| + if (use_prebuilt_network_service) {
|
| + data_deps += [ rebase_path("mojo/public/tools:copy_network_service",
|
| + ".",
|
| + mojo_root) ]
|
| + }
|
| +
|
| + deps = rebase_path([
|
| + "mojo/public/c/system",
|
| + "mojo/public/platform/native:system",
|
| + ],
|
| + ".",
|
| + mojo_root)
|
| + if (defined(invoker.deps)) {
|
| + deps += invoker.deps
|
| + }
|
| + if (defined(invoker.forward_dependent_configs_from)) {
|
| + forward_dependent_configs_from = invoker.forward_dependent_configs_from
|
| + }
|
| + if (defined(invoker.public_deps)) {
|
| + public_deps = invoker.public_deps
|
| + }
|
| + if (defined(invoker.all_dependent_configs)) {
|
| + all_dependent_configs = invoker.all_dependent_configs
|
| + }
|
| + if (defined(invoker.public_configs)) {
|
| + public_configs = invoker.public_configs
|
| + }
|
| + if (defined(invoker.check_includes)) {
|
| + check_includes = invoker.check_includes
|
| + }
|
| + if (defined(invoker.configs)) {
|
| + configs += invoker.configs
|
| + }
|
| + if (defined(invoker.data)) {
|
| + data = invoker.data
|
| + }
|
| + if (defined(invoker.inputs)) {
|
| + inputs = invoker.inputs
|
| + }
|
| + if (defined(invoker.public)) {
|
| + public = invoker.public
|
| + }
|
| + if (defined(invoker.sources)) {
|
| + sources = invoker.sources
|
| + }
|
| + if (defined(invoker.testonly)) {
|
| + testonly = invoker.testonly
|
| + }
|
| +
|
| + visibility = [ ":${final_target_name}" ]
|
| }
|
| - if (defined(invoker.testonly)) {
|
| - testonly = invoker.testonly
|
| +
|
| + copy(final_target_name) {
|
| + if (defined(invoker.testonly)) {
|
| + testonly = invoker.testonly
|
| + }
|
| + if (defined(invoker.visibility)) {
|
| + visibility = invoker.visibility
|
| + }
|
| + deps = [
|
| + ":${library_target_name}",
|
| + ]
|
| +
|
| + sources = [
|
| + "${library_dir}/${library_name}",
|
| + ]
|
| + outputs = [
|
| + "${root_out_dir}/${output}",
|
| + ]
|
| }
|
| + } else {
|
| + nexe_target_name = base_target_name + "_nexe"
|
| + nexe_name = base_target_name + ".nexe"
|
|
|
| - visibility = [ ":${final_target_name}" ]
|
| - }
|
| + output = "${base_target_name}_${cpu_arch}.nexe.mojo"
|
| +
|
| + executable(nexe_target_name) {
|
| + output_name = base_target_name
|
| +
|
| + if (defined(invoker.cflags)) {
|
| + cflags = invoker.cflags
|
| + }
|
| + if (defined(invoker.cflags_c)) {
|
| + cflags_c = invoker.cflags_c
|
| + }
|
| + if (defined(invoker.cflags_cc)) {
|
| + cflags_cc = invoker.cflags_cc
|
| + }
|
| + if (defined(invoker.cflags_objc)) {
|
| + cflags_objc = invoker.cflags_objc
|
| + }
|
| + if (defined(invoker.cflags_objcc)) {
|
| + cflags_objcc = invoker.cflags_objcc
|
| + }
|
| + if (defined(invoker.defines)) {
|
| + defines = invoker.defines
|
| + }
|
| + if (defined(invoker.include_dirs)) {
|
| + include_dirs = invoker.include_dirs
|
| + }
|
| + if (defined(invoker.ldflags)) {
|
| + ldflags = invoker.ldflags
|
| + }
|
| + if (defined(invoker.lib_dirs)) {
|
| + lib_dirs = invoker.lib_dirs
|
| + }
|
| + if (defined(invoker.libs)) {
|
| + libs = invoker.libs
|
| + }
|
| +
|
| + data_deps = []
|
| + if (defined(invoker.data_deps)) {
|
| + data_deps = invoker.data_deps
|
| + }
|
|
|
| - copy(final_target_name) {
|
| - if (defined(invoker.testonly)) {
|
| - testonly = invoker.testonly
|
| + # Copy any necessary prebuilt artifacts.
|
| + if (use_prebuilt_mojo_shell) {
|
| + data_deps +=
|
| + [ rebase_path("mojo/public/tools:copy_mojo_shell", ".", mojo_root) ]
|
| + }
|
| + if (use_prebuilt_network_service) {
|
| + data_deps += [ rebase_path("mojo/public/tools:copy_network_service",
|
| + ".",
|
| + mojo_root) ]
|
| + }
|
| +
|
| + deps = rebase_path([
|
| + "mojo/public/c/system",
|
| + "mojo/public/platform/nacl:system",
|
| + ],
|
| + ".",
|
| + mojo_root)
|
| + if (defined(invoker.deps)) {
|
| + deps += invoker.deps
|
| + }
|
| + if (defined(invoker.forward_dependent_configs_from)) {
|
| + forward_dependent_configs_from = invoker.forward_dependent_configs_from
|
| + }
|
| + if (defined(invoker.public_deps)) {
|
| + public_deps = invoker.public_deps
|
| + }
|
| + if (defined(invoker.all_dependent_configs)) {
|
| + all_dependent_configs = invoker.all_dependent_configs
|
| + }
|
| + if (defined(invoker.public_configs)) {
|
| + public_configs = invoker.public_configs
|
| + }
|
| + if (defined(invoker.check_includes)) {
|
| + check_includes = invoker.check_includes
|
| + }
|
| + if (defined(invoker.configs)) {
|
| + configs += invoker.configs
|
| + }
|
| + if (defined(invoker.data)) {
|
| + data = invoker.data
|
| + }
|
| + if (defined(invoker.inputs)) {
|
| + inputs = invoker.inputs
|
| + }
|
| + if (defined(invoker.public)) {
|
| + public = invoker.public
|
| + }
|
| + if (defined(invoker.sources)) {
|
| + sources = invoker.sources
|
| + }
|
| + if (defined(invoker.testonly)) {
|
| + testonly = invoker.testonly
|
| + }
|
| +
|
| + visibility = [ ":${final_target_name}" ]
|
| }
|
| - if (defined(invoker.visibility)) {
|
| - visibility = invoker.visibility
|
| +
|
| + action(target_name) {
|
| + if (defined(invoker.testonly)) {
|
| + testonly = invoker.testonly
|
| + }
|
| + if (defined(invoker.visibility)) {
|
| + visibility = invoker.visibility
|
| + }
|
| +
|
| + script = rebase_path("mojo/public/tools/prepend.py", ".", mojo_root)
|
| +
|
| + input_path = "${root_out_dir}/${nexe_name}"
|
| + inputs = [
|
| + input_path,
|
| + ]
|
| +
|
| + output_path = "${root_build_dir}/${output}"
|
| + outputs = [
|
| + output_path,
|
| + ]
|
| +
|
| + deps = [
|
| + ":${nexe_target_name}",
|
| + ]
|
| +
|
| + rebase_input = rebase_path(input_path, root_build_dir)
|
| + rebase_output = rebase_path(output_path, root_build_dir)
|
| + args = [
|
| + "--input=$rebase_input",
|
| + "--output=$rebase_output",
|
| + "--line=#!mojo mojo:nacl_content_handler",
|
| + ]
|
| }
|
| - deps = [
|
| - ":${library_target_name}",
|
| - ]
|
| -
|
| - sources = [
|
| - "${library_dir}/${library_name}",
|
| - ]
|
| - outputs = [
|
| - "${root_out_dir}/${output}",
|
| - ]
|
| }
|
| }
|
|
|
|
|