Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Unified Diff: mojo/nacl/BUILD.gn

Issue 840653003: Pull in native_client and build tests. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebase Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/BUILD.gn ('k') | mojo/tools/mojob.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/nacl/BUILD.gn
diff --git a/mojo/nacl/BUILD.gn b/mojo/nacl/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..4315245a7385f9bfd3082ed814fb4d125cc05205
--- /dev/null
+++ b/mojo/nacl/BUILD.gn
@@ -0,0 +1,103 @@
+# All toolchains use the same generated code.
+gen_dir = "$root_build_dir/gen/mojo/nacl"
+
+# Only allow the generator to be run by one toolchain.
+if (current_toolchain == default_toolchain) {
+ # Generate the code to plumb the Mojo public API into the NaCl sandbox.
+ action("mojo_nacl_codegen") {
+ script = "generator/generate_nacl_bindings.py"
+ args = [
+ "-d",
+ rebase_path(gen_dir, root_build_dir),
+ ]
+ inputs = [
+ script,
+ "generator/interface.py",
+ "generator/interface_dsl.py",
+ "generator/mojo_syscall.cc.tmpl",
+ "generator/libmojo.cc.tmpl",
+ ]
+ outputs = [
+ "$gen_dir/mojo_syscall.cc",
+ "$gen_dir/libmojo.cc",
+ ]
+ }
+}
+
+# Trusted code
+if (!is_nacl) {
+ # A library for launching a NaCl sandbox connected to a Mojo embedder.
+ static_library("monacl_sel") {
+ sources = [
+ "mojo_syscall_internal.h",
+ "$gen_dir/mojo_syscall.cc",
+ "monacl_sel_main.cc",
+ ]
+ deps = [
+ # This target makes sure we have all the pre-processor defines needed to
+ # use NaCl's headers.
+ "//native_client/build/config/nacl:nacl_base",
+ "//native_client/src/trusted/desc:nrd_xfer",
+ "//native_client/src/trusted/service_runtime:sel_main_chrome",
+ ":mojo_nacl_codegen($default_toolchain)",
+ ]
+ }
+
+ # A simple shell for running untrusted binaries that talk to the Mojo
+ # embedder. (No services.)
+ executable("monacl_shell") {
+ testonly = true
+ sources = [
+ "monacl_shell.cc",
+ ]
+ deps = [
+ "//base:base",
+ "//mojo/edk/system:system",
+ ":monacl_sel",
+ ]
+ }
+}
+
+# Untrusted code
+if (is_nacl) {
+ # Thunk mapping the Mojo public API onto NaCl syscalls.
+ static_library("mojo") {
+ sources = [
+ "$gen_dir/libmojo.cc",
+ ]
+ deps = [
+ ":mojo_nacl_codegen($default_toolchain)",
+ ]
+ }
+
+ # Unit test for the Mojo public API.
+ executable("monacl_test") {
+ testonly = true
+ sources = [
+ "//mojo/public/cpp/system/tests/core_unittest.cc",
+ "//mojo/public/cpp/system/tests/macros_unittest.cc",
+ ]
+ deps = [
+ "//native_client/src/untrusted/nacl:imc_syscalls",
+ "//mojo/public/c/system/tests:tests",
+ "//mojo/public/cpp/system:system",
+ "//testing/gtest:gtest",
+ "//testing/gtest:gtest_main",
+ ":mojo",
+ ]
+ }
+}
+
+group("mojo_nacl") {
+ deps = [
+ "//native_client/src/untrusted/irt:irt_core(//native_client/build/toolchain/nacl:irt_${cpu_arch})",
+ ]
+}
+
+group("mojo_nacl_tests") {
+ testonly = true
+ deps = [
+ ":monacl_shell",
+ ":monacl_test(//native_client/build/toolchain/nacl:clang_newlib_${cpu_arch})",
+ ]
+}
« no previous file with comments | « mojo/BUILD.gn ('k') | mojo/tools/mojob.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698