# Copyright 2015 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.

# Trusted code
if (!is_nacl) {
  # A library for launching a NaCl sandbox connected to a Mojo embedder.
  source_set("monacl_sel") {
    sources = [
      "mojo_syscall.cc",
      "mojo_syscall_internal.h",
      "monacl_sel_main.cc",
    ]
    deps = [
      "//mojo/public/c/system",
      "//mojo/public/platform/native:system_impl_private_api",

      # This target makes sure we have all the pre-processor defines needed to
      # use NaCl's headers.
      "//build/config/nacl:nacl_base",
      "//native_client/src/trusted/desc:nrd_xfer",
      "//native_client/src/trusted/service_runtime:sel_main_chrome",
    ]
  }
}

# Untrusted code
if (is_nacl) {
  executable("irt_mojo") {
    cflags_c = [ "-std=c99" ]
    sources = [
      "../../../../mojo/public/platform/nacl/mojo_irt.h",
      "irt_entry_mojo.c",
      "mojo_irt.c",
    ]
    deps = [
      "//mojo/public/c/system",
      "//build/config/nacl:nacl_base",
      "//native_client/src/untrusted/irt:irt_core_lib",
      "//native_client/src/untrusted/nacl:imc_syscalls",
    ]
  }
}
