| # 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/component/component_id_index.gni") |
| import("//build/config.gni") |
| import("//build/package.gni") |
| import("//build/test/test_package.gni") |
| import("//src/sys/build/components.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", |
| "component_id_index.cc", |
| "component_id_index.h", |
| "constants.h", |
| "cpu_watcher.cc", |
| "cpu_watcher.h", |
| "crash_introspector.cc", |
| "crash_introspector.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", |
| "moniker.cc", |
| "moniker.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_diagnostics_directory.cc", |
| "system_diagnostics_directory.h", |
| "util.cc", |
| "util.h", |
| ] |
| |
| public_deps = [ |
| "//garnet/lib/loader", |
| "//garnet/public/lib/json", |
| "//sdk/fidl/fuchsia.hardware.power.statecontrol", |
| "//sdk/fidl/fuchsia.process", |
| "//sdk/fidl/fuchsia.sys", |
| "//sdk/fidl/fuchsia.sys.internal", |
| "//sdk/fidl/fuchsia.sys.test", |
| "//sdk/fidl/fuchsia.sys2", |
| "//sdk/lib/sys/cpp", |
| "//sdk/lib/sys/inspect/cpp", |
| "//src/lib/cmx", |
| "//src/lib/fsl", |
| "//src/lib/fxl", |
| "//src/lib/loader_service", |
| "//src/lib/pkg_url", |
| "//third_party/googletest:gtest_prod", |
| "//zircon/public/lib/fit", |
| "//zircon/public/lib/zx", |
| "//zircon/public/lib/zxc", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| "//zircon/system/ulib/fdio-caller", |
| "//zircon/system/ulib/fs", |
| "//zircon/system/ulib/inspector", |
| "//zircon/system/ulib/syslog", |
| "//zircon/system/ulib/task-utils", |
| "//zircon/system/ulib/trace", |
| "//zircon/system/ulib/trace-provider:trace-provider-with-fdio", |
| |
| # TODO(fxbug.dev/57392): Move it back to //third_party once unification completes. |
| "//zircon/third_party/rapidjson", |
| ] |
| |
| configs += [ "//build/config:all_source" ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| source_set("appmgr_for_test") { |
| testonly = true |
| |
| sources = [ |
| "appmgr.cc", |
| "appmgr.h", |
| "lifecycle.cc", |
| "lifecycle.h", |
| "startup_service.cc", |
| "startup_service.h", |
| ] |
| |
| public_deps = [ |
| ":lib", |
| "fidl/fuchsia.appmgr", |
| "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle", |
| "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_llcpp", |
| "//sdk/fidl/fuchsia.sys", |
| "//sdk/fidl/fuchsia.sys.test", |
| "//sdk/lib/sys/cpp", |
| "//src/lib/fxl", |
| "//src/sys/lib/stdout-to-debuglog/cpp", |
| "//zircon/public/lib/zx", |
| "//zircon/system/ulib/fidl-async:fidl-async-cpp", |
| "//zircon/system/ulib/fs", |
| ] |
| } |
| |
| executable("bin") { |
| output_name = "appmgr" |
| |
| sources = [ |
| "appmgr.cc", |
| "appmgr.h", |
| "lifecycle.cc", |
| "lifecycle.h", |
| "main.cc", |
| "startup_service.cc", |
| "startup_service.h", |
| ] |
| |
| deps = [ |
| ":lib", |
| "fidl/fuchsia.appmgr", |
| "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle", |
| "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_llcpp", |
| "//sdk/lib/sys/cpp", |
| "//src/sys/lib/stdout-to-debuglog/cpp", |
| "//zircon/system/ulib/fidl-async:fidl-async-cpp", |
| ] |
| |
| # 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", |
| "component_id_index_unittest.cc", |
| "cpu_watcher_unittest.cc", |
| "hub/hub_holder_unittest.cc", |
| "log_connector_impl_unittest.cc", |
| "moniker_unittest.cc", |
| "namespace_builder_unittest.cc", |
| "namespace_unittest.cc", |
| "policy_checker_unittest.cc", |
| "scheme_map_unittest.cc", |
| "service_provider_dir_unittest.cc", |
| "storage_unittest.cc", |
| "storage_watchdog_unittest.cc", |
| "util_unittest.cc", |
| ] |
| |
| deps = [ |
| ":appmgr_for_test", |
| ":lib", |
| "//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", |
| "//src/testing/fidl:placeholders", |
| "//third_party/googletest:gmock", |
| "//zircon/system/ulib/memfs", |
| ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| fuchsia_package_with_single_component("appmgr") { |
| manifest = "meta/appmgr.cml" |
| deps = [ ":bin" ] |
| } |
| |
| config_data("appmgr_scheme_config") { |
| for_pkg = "appmgr" |
| sources = [ "scheme_map.config" ] |
| outputs = [ "scheme_map/default.config" ] |
| } |
| |
| # Supply a component ID index to appmgr. This index contains component ID |
| # entries for components whose source-code lives in this repository |
| # (fuchsia.git). |
| component_id_index("core_component_id_index") { |
| source = "config/core_component_id_index.json" |
| } |
| |
| # If this target is included in the build, all components are allowed to use |
| # isolated-persistent-storage, even if they are not in the component ID index. |
| component_id_index("component_id_index_no_restrict_storage") { |
| source = "config/component_id_index_no_restrict_storage.json" |
| } |
| |
| executable("test_component_using_storage_bin") { |
| output_name = "test_component_using_storage" |
| sources = [ "test/test_component_using_storage.cc" ] |
| } |
| |
| fuchsia_component("test_component_using_storage") { |
| deps = [ ":test_component_using_storage_bin" ] |
| manifest = "meta/test_component_using_storage.cmx" |
| } |
| |
| fuchsia_unittest_package("appmgr_unittests") { |
| deps = [ |
| ":test_component_using_storage", |
| ":unittest_bin", |
| ] |
| |
| manifest = "meta/appmgr_unittests.cmx" |
| |
| test_specs = { |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| ":appmgr_unittests", |
| "integration_tests", |
| ] |
| } |