blob: cbbfaa2c81f9882a9d8eb29bcf8f0ee256c7ad5e [file] [log] [blame]
# 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")
import("//services/catalog/public/tools/catalog.gni")
import("//services/service_manager/public/service_manifest.gni")
import("//testing/test.gni")
# Target that builders build.
group("all") {
testonly = true
deps = [
":mash_catalog",
"//components/leveldb",
"//mash/catalog_viewer",
"//mash/example",
"//mash/quick_launch",
"//mash/runner",
"//mash/session",
"//mash/simple_wm",
"//mash/task_viewer",
]
# Build on platforms that support ash.
if (is_chromeos) {
deps += [
"//ash/autoclick/mus:accessibility_autoclick",
"//ash/mus/standalone:ash_standalone",
"//ash/touch_hud/mus:touch_hud",
"//mash:mash_unittests",
]
}
}
# This is the catalog of services available to a standalone mash environment.
# Build //mash/runner to generate the runner executable.
catalog("catalog") {
testonly = true
standalone_services = [
"//components/leveldb:manifest",
"//mash/catalog_viewer:manifest",
"//mash/quick_launch:manifest",
"//mash/session:manifest",
"//mash/task_viewer:manifest",
"//services/ui:manifest",
"//services/ui/demo:manifest",
"//services/ui/ime/test_ime_driver:manifest",
# TODO(rockot): It seems like a layering violation to have these service
# names referenced here, but it's the most convenient thing to do for now,
# and this is only for developers.
#
# Note that there are no build-time dependencies on the actual Chrome
# binary implied by mash:all or other targets here. This only ensures that
# if you have such a binary built, the runner will be able to locate it.
"//chrome/app:chrome_content_browser_manifest",
"//chrome/app:chrome_content_gpu_manifest",
"//chrome/app:chrome_content_packaged_services_manifest_for_mash",
"//chrome/app:chrome_content_plugin_manifest",
"//chrome/app:chrome_content_renderer_manifest",
"//chrome/app:chrome_content_utility_manifest",
]
executable_overrides = [ "content_packaged_services:@EXE_DIR/chrome" ]
catalog_deps = [ "//mash/example:catalog" ]
if (is_chromeos) {
standalone_services += [
"//ash/mus:manifest",
"//ash/mus/standalone:manifest",
]
}
if (is_linux && !is_android) {
standalone_services += [ "//components/font_service:manifest" ]
}
if (enable_nacl) {
standalone_services += [ "//components/nacl/loader:nacl_loader_manifest" ]
if (is_win && target_cpu == "x86") {
standalone_services += [ "//components/nacl/broker:nacl_broker_manifest" ]
}
}
}
copy("mash_catalog") {
testonly = true
sources = get_target_outputs(":catalog")
outputs = [
"$root_out_dir/mash_catalog.json",
]
deps = [
":catalog",
]
}
if (is_chromeos) {
# TODO(jamescook): Move these tests into //ash/mus.
test("mash_unittests") {
sources = [
"test/mash_test_suite.cc",
"test/mash_test_suite.h",
"test/mash_unittests.cc",
]
deps = [
"//ash:test_support_without_content",
"//ash/mus:resources",
"//ash/mus:unittests",
"//ash/public/cpp:ash_public_cpp",
"//base",
"//base/test:test_support",
"//cc",
"//cc:test_support",
"//components/viz/service",
"//mojo/edk/system",
"//services/catalog:lib",
"//ui/aura",
"//ui/base",
"//ui/compositor:test_support",
"//ui/gl:test_support",
]
data_deps = [
":mash_unittests_catalog_copy",
"//ash/mus:resources",
]
}
service_manifest("unittests_manifest") {
name = "mash_unittests"
source = "unittests_manifest.json"
}
catalog("mash_unittests_catalog") {
testonly = true
embedded_services = [ ":unittests_manifest" ]
catalog_deps = [ ":catalog" ]
}
copy("mash_unittests_catalog_copy") {
testonly = true
sources = get_target_outputs(":mash_unittests_catalog")
outputs = [
"${root_out_dir}/mash_unittests_catalog.json",
]
deps = [
":mash_unittests_catalog",
]
}
}