blob: 3ef98fd639b3a270ac8e570dfeb2512f5ca17c67 [file] [log] [blame]
# Copyright 2021 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
_common_loader_app_sources = [
"loader_app.cc",
"loader_app_switches.cc",
"loader_app_switches.h",
"system_get_extension_shim.cc",
"system_get_extension_shim.h",
]
group("common_loader_app_dependencies") {
public_deps = [
":app_key",
":installation_manager",
":memory_tracker_thread",
":slot_management",
"//starboard",
"//starboard/elf_loader:evergreen_info",
"//starboard/elf_loader:sabi_string",
]
if (sb_is_evergreen_compatible) {
public_deps += [ "//third_party/crashpad/wrapper" ]
} else {
public_deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
}
}
target(final_executable_type, "loader_app") {
if (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm" ||
target_cpu == "arm64") {
sources = _common_loader_app_sources
deps = [
":common_loader_app_dependencies",
"//cobalt/content/fonts:copy_font_data",
"//starboard/elf_loader",
]
}
}
if (sb_is_evergreen_compatible) {
target(final_executable_type, "loader_app_sys") {
if (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm" ||
target_cpu == "arm64") {
sources = _common_loader_app_sources
starboard_syms_path =
rebase_path("//starboard/starboard.syms", root_build_dir)
ldflags = [
"-Wl,--dynamic-list=$starboard_syms_path",
"-ldl",
]
deps = [
":common_loader_app_dependencies",
"//cobalt/content/fonts:copy_font_data",
"//starboard/elf_loader:elf_loader_sys",
]
}
}
}
static_library("app_key_files") {
sources = [
"app_key_files.cc",
"app_key_files.h",
]
deps = [ "//starboard" ]
}
target(gtest_target_type, "app_key_files_test") {
testonly = true
sources = [
"//starboard/common/test_main.cc",
"app_key_files_test.cc",
]
deps = [
":app_key_files",
"//testing/gmock",
"//testing/gtest",
]
}
static_library("app_key") {
sources = [
"app_key.cc",
"app_key.h",
"app_key_internal.cc",
"app_key_internal.h",
]
deps = [
"//starboard",
"//third_party/modp_b64",
]
}
target(gtest_target_type, "app_key_test") {
testonly = true
sources = [
"//starboard/common/test_main.cc",
"app_key_test.cc",
]
deps = [
":app_key",
"//testing/gmock",
"//testing/gtest",
]
}
static_library("drain_file") {
sources = [
"drain_file.cc",
"drain_file.h",
]
deps = [ "//starboard/common" ]
}
target(gtest_target_type, "drain_file_test") {
testonly = true
sources = [
"//starboard/common/test_main.cc",
"drain_file_helper.cc",
"drain_file_helper.h",
"drain_file_test.cc",
]
deps = [
":drain_file",
"//testing/gmock",
"//testing/gtest",
]
}
static_library("installation_store_proto") {
sources = [
"installation_store.pb.cc",
"installation_store.pb.h",
]
public_deps = [ "//third_party/protobuf:protobuf_lite" ]
}
static_library("installation_manager") {
sources = [
"installation_manager.cc",
"installation_manager.h",
]
include_dirs = [
# Get protobuf headers from the chromium tree.
"//third_party/protobuf/src",
]
deps = [
":installation_store_proto",
"//starboard",
]
if (!sb_evergreen_compatible_enable_lite) {
deps += [ ":pending_restart" ]
}
}
target(gtest_target_type, "installation_manager_test") {
testonly = true
sources = [
"//starboard/common/test_main.cc",
"installation_manager_test.cc",
]
if (sb_evergreen_compatible_enable_lite) {
sources += [ "pending_restart_test.cc" ]
}
deps = [
":installation_manager",
":installation_store_proto",
"//testing/gmock",
"//testing/gtest",
]
}
static_library("slot_management") {
sources = [
"slot_management.cc",
"slot_management.h",
]
deps = [
":app_key_files",
":drain_file",
":installation_manager",
"//starboard",
"//starboard/elf_loader",
"//starboard/elf_loader:sabi_string",
]
if (sb_is_evergreen_compatible) {
deps += [ "//third_party/crashpad/wrapper" ]
} else {
deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
}
}
target(gtest_target_type, "slot_management_test") {
testonly = true
sources = [
"//starboard/common/test_main.cc",
"slot_management_test.cc",
]
deps = [
":app_key_files",
":drain_file",
":installation_manager",
":installation_store_proto",
":slot_management",
"//starboard/elf_loader:sabi_string",
"//testing/gmock",
"//testing/gtest",
]
}
static_library("pending_restart") {
sources = [
"pending_restart.cc",
"pending_restart.h",
]
public_deps = [ "//starboard:starboard_headers_only" ]
}
static_library("memory_tracker_thread") {
sources = [
"memory_tracker_thread.cc",
"memory_tracker_thread.h",
]
deps = [
"//starboard:starboard_headers_only",
"//starboard/common",
]
}