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

import("//build/config/nacl/config.gni")

# Collection of apps which are currently capable of being built as pexes.
group("portable_apps") {
  testonly = true

  deps = [
    "//apps/moterm",
    "//apps/moterm:apptests",
    "//apps/moterm:gl_helper_test_app",
  ]
}

group("apps") {
  testonly = true

  deps = [
    ":portable_apps",
    "//apps/benchmark",
    "//apps/benchmark:apptests",
  ]

  if (is_android) {
    deps += [ "//apps/shortcut" ]
  }

  if (mojo_use_nacl) {
    deps += [ ":portable_apps(//build/toolchain/nacl:newlib_pnacl)" ]
  }
}
