summaryrefslogtreecommitdiffstats
path: root/mojo/mojo_nacl.gyp
diff options
context:
space:
mode:
authorncbray <ncbray@chromium.org>2014-09-11 16:00:16 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-11 23:12:58 +0000
commit95d2d4025c767fbc5669377aae457a4bfb5ca46b (patch)
tree2aa4a8c86a814466dddf88c16ab28f6e50549201 /mojo/mojo_nacl.gyp
parent60cf26c22bf0bb90fa6dbbdef5cb79fe7c305ecb (diff)
downloadchromium_src-95d2d4025c767fbc5669377aae457a4bfb5ca46b.zip
chromium_src-95d2d4025c767fbc5669377aae457a4bfb5ca46b.tar.gz
chromium_src-95d2d4025c767fbc5669377aae457a4bfb5ca46b.tar.bz2
Mojo + NaCl prototype.
Create a standalone executable that plumbs public Mojo API calls into a NaCl sandbox. This allows the public Mojo unit tests to run inside NaCl. BUG=401761 Review URL: https://codereview.chromium.org/385983008 Cr-Commit-Position: refs/heads/master@{#294484}
Diffstat (limited to 'mojo/mojo_nacl.gyp')
-rw-r--r--mojo/mojo_nacl.gyp119
1 files changed, 119 insertions, 0 deletions
diff --git a/mojo/mojo_nacl.gyp b/mojo/mojo_nacl.gyp
new file mode 100644
index 0000000..1184dd7
--- /dev/null
+++ b/mojo/mojo_nacl.gyp
@@ -0,0 +1,119 @@
+# Copyright 2014 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.
+
+{
+ 'conditions': [
+ ['disable_nacl==0 and disable_nacl_untrusted==0', {
+ 'variables': {
+ 'monacl_codegen_dir': '<(SHARED_INTERMEDIATE_DIR)/<!(python <(DEPTH)/build/inverse_depth.py <(DEPTH))/monacl',
+ },
+ 'includes': [
+ 'mojo_variables.gypi',
+ '../build/common_untrusted.gypi',
+ '../components/nacl/nacl_defines.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'monacl_codegen',
+ 'type': 'none',
+ 'actions': [
+ {
+ 'action_name': 'generate_nacl_bindings',
+ 'inputs': [
+ 'nacl/generator/generate_nacl_bindings.py',
+ 'nacl/generator/interface.py',
+ 'nacl/generator/interface_dsl.py',
+ 'nacl/generator/mojo_syscall.cc.tmpl',
+ 'nacl/generator/libmojo.cc.tmpl',
+ ],
+ 'outputs': [
+ '<(monacl_codegen_dir)/mojo_syscall.cc',
+ '<(monacl_codegen_dir)/libmojo.cc',
+ ],
+ 'action': [
+ 'python',
+ 'nacl/generator/generate_nacl_bindings.py',
+ '-d', '<(monacl_codegen_dir)',
+ ],
+ },
+ ],
+ },
+ {
+ 'target_name': 'monacl_sel',
+ 'type': 'static_library',
+ 'defines': [
+ '<@(nacl_defines)',
+ ],
+ 'include_dirs': [
+ '..',
+ ],
+ 'sources': [
+ '<(monacl_codegen_dir)/mojo_syscall.cc',
+ 'nacl/monacl_sel_main.cc',
+ ],
+ 'dependencies': [
+ '<(DEPTH)/native_client/src/trusted/service_runtime/service_runtime.gyp:sel',
+ ],
+ },
+ {
+ 'target_name': 'monacl_shell',
+ 'type': 'executable',
+ 'dependencies': [
+ '../base/base.gyp:base',
+ 'mojo_base.gyp:mojo_system_impl',
+ 'monacl_sel',
+ ],
+ 'sources': [
+ 'nacl/monacl_shell.cc',
+ ],
+ },
+ {
+ 'target_name': 'mojo_nacl',
+ 'type': 'none',
+ 'variables': {
+ 'nlib_target': 'libmojo.a',
+ 'build_glibc': 0,
+ 'build_newlib': 1,
+ 'build_pnacl_newlib': 0,
+ },
+ 'defines': [
+ '<@(nacl_defines)',
+ ],
+ 'sources': [
+ '<(monacl_codegen_dir)/libmojo.cc',
+ ],
+ 'dependencies': [
+ 'monacl_codegen',
+ ],
+ },
+ {
+ 'target_name': 'monacl_test',
+ 'type': 'none',
+ 'variables': {
+ 'nexe_target': 'monacl_test',
+ 'build_newlib': 1,
+ 'link_flags': [
+ '-pthread',
+ '-lmojo',
+ '-limc_syscalls',
+ ],
+ 'sources': [
+ '<@(mojo_public_system_unittest_sources)',
+ ],
+ },
+ 'dependencies': [
+ '<(DEPTH)/native_client/tools.gyp:prep_toolchain',
+ '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib',
+ '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib',
+ '<(DEPTH)/native_client/src/untrusted/pthread/pthread.gyp:pthread_lib',
+ '../testing/gtest_nacl.gyp:gtest_nacl',
+ '../testing/gtest_nacl.gyp:gtest_main_nacl',
+ 'mojo_nacl',
+ 'monacl_codegen',
+ ],
+ },
+ ],
+ }],
+ ],
+}