blob: d7cef78e9d6d6b59b85f99e48f63332c2b0591dd [file] [log] [blame]
# Copyright 2016 The Fuchsia 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.gni")
import("//build/package.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
source_set("lib") {
sources = [
"allow_list.cc",
"allow_list.h",
"cache_control.cc",
"cache_control.h",
"component_controller_impl.cc",
"component_controller_impl.h",
"component_event_provider_impl.cc",
"component_event_provider_impl.h",
"debug_info_retriever.cc",
"debug_info_retriever.h",
"dynamic_library_loader.cc",
"dynamic_library_loader.h",
"environment_controller_impl.cc",
"environment_controller_impl.h",
"hub/component_hub.cc",
"hub/component_hub.h",
"hub/hub.cc",
"hub/hub.h",
"hub/hub_info.cc",
"hub/hub_info.h",
"hub/realm_hub.cc",
"hub/realm_hub.h",
"job_provider_impl.cc",
"job_provider_impl.h",
"log_connector_impl.cc",
"log_connector_impl.h",
"namespace.cc",
"namespace.h",
"namespace_builder.cc",
"namespace_builder.h",
"policy_checker.cc",
"policy_checker.h",
"realm.cc",
"realm.h",
"runner_holder.cc",
"runner_holder.h",
"scheme_map.cc",
"scheme_map.h",
"service_provider_dir_impl.cc",
"service_provider_dir_impl.h",
"storage_watchdog.cc",
"storage_watchdog.h",
"system_objects_directory.cc",
"system_objects_directory.h",
"util.cc",
"util.h",
]
public_deps = [
"//garnet/lib/loader",
"//garnet/public/lib/json",
"//sdk/fidl/fuchsia.sys",
"//sdk/fidl/fuchsia.sys.internal",
"//sdk/fidl/fuchsia.sys.test",
"//sdk/lib/sys/cpp",
"//src/lib/backoff",
"//src/lib/cmx",
"//src/lib/fsl",
"//src/lib/fxl",
"//src/lib/inspect_deprecated",
"//src/lib/pkg_url",
"//third_party/googletest:gtest_prod",
"//third_party/rapidjson",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
"//zircon/public/lib/fdio-caller",
"//zircon/public/lib/fit",
"//zircon/public/lib/fs",
"//zircon/public/lib/inspector",
"//zircon/public/lib/trace-provider-with-fdio",
"//zircon/public/lib/zx",
"//zircon/system/fidl/fuchsia-process",
"//zircon/system/ulib/loader-service",
]
defines = [ "_ALL_SOURCE=1" ]
}
source_set("appmgr_for_test") {
testonly = true
sources = [
"appmgr.cc",
"appmgr.h",
]
public_deps = [
":lib",
"//sdk/fidl/fuchsia.sys",
"//sdk/fidl/fuchsia.sys.test",
"//sdk/lib/sys/cpp",
"//src/lib/fxl",
"//src/sys/lib/stdout-to-debuglog",
"//zircon/public/lib/fs",
"//zircon/public/lib/zx",
]
}
executable("bin") {
output_name = "appmgr"
sources = [
"appmgr.cc",
"appmgr.h",
"main.cc",
]
deps = [
":lib",
"//sdk/lib/sys/cpp",
"//src/sys/lib/stdout-to-debuglog",
]
# appmgr starts early in the boot sequence before shared libraries from
# packages are available, so it has to avoid dynamically linking against
# libraries outside of /boot/lib. These rules ensure that appmgr statically
# links against the C++ standard library and prevents dependencies on some
# shared library targets that are easy to pull in unintentionally.
configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
assert_no_deps = [ "//garnet/public/lib/fostr/*" ]
}
executable("unittest_bin") {
testonly = true
output_name = "appmgr_unittests"
sources = [
"allow_list_unittest.cc",
"component_controller_unittest.cc",
"component_event_provider_unittest.cc",
"hub/hub_holder_unittest.cc",
"log_connector_impl_unittest.cc",
"namespace_builder_unittest.cc",
"namespace_unittest.cc",
"policy_checker_unittest.cc",
"scheme_map_unittest.cc",
"service_provider_dir_unittest.cc",
"storage_watchdog_unittest.cc",
"util_unittest.cc",
]
deps = [
":appmgr_for_test",
":lib",
"//garnet/examples/fidl/services:echo",
"//garnet/public/lib/gtest",
"//sdk/fidl/fuchsia.sys.internal",
"//sdk/lib/sys/cpp",
"//sdk/lib/sys/cpp/testing:unit",
"//sdk/lib/vfs/cpp",
"//src/lib/fxl/test:gtest_main",
"//third_party/googletest:gmock",
"//zircon/public/lib/memfs",
]
# TODO(46530): Fix the leaks and remove this.
deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]
}
package("appmgr") {
deps = [ ":bin" ]
binaries = [
{
name = "appmgr"
},
]
meta = [
{
path = rebase_path("meta/appmgr.cml")
dest = "appmgr.cm"
},
]
}
config_data("appmgr_scheme_config") {
for_pkg = "appmgr"
sources = [ "scheme_map.config" ]
outputs = [ "scheme_map/default.config" ]
}
group("unittests") {
testonly = true
public_deps = [
":appmgr_unittests",
":system_data_file",
]
}
test_package("appmgr_unittests") {
deps = [ ":unittest_bin" ]
tests = [
{
name = "appmgr_unittests"
environments = basic_envs
},
]
}
package("system_data_file") {
__deprecated_system_image = true
resources = [
{
path = "test_file.txt"
dest = "test_file.txt"
},
{
path = "test_file.txt"
dest = "subdir/test_file.txt"
},
]
}
group("tests") {
testonly = true
deps = [
":appmgr_unittests",
":system_data_file",
"integration_tests",
]
}