blob: 74add0b0acb2808722ac31361afbdca1546bf5d4 [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.
config("embed_v8c_resources_as_header_files_public_config") {
include_dirs = [ target_gen_dir ]
}
action("embed_v8c_resources_as_header_files_action") {
script = "//cobalt/build/generate_data_header.py"
sources = [
"//cobalt/fetch/embedded_scripts/fetch.js",
"//cobalt/streams/embedded_scripts/byte_length_queuing_strategy.js",
"//cobalt/streams/embedded_scripts/count_queuing_strategy.js",
"//cobalt/streams/embedded_scripts/readable_stream.js",
]
outputs = [ "$target_gen_dir/cobalt/script/v8c/embedded_resources.h" ]
args = [ "V8cEmbeddedResources" ] + rebase_path(outputs, root_build_dir) +
rebase_path(sources, root_build_dir)
}
group("embed_v8c_resources_as_header_files") {
public_configs = [ ":embed_v8c_resources_as_header_files_public_config" ]
deps = [ ":embed_v8c_resources_as_header_files_action" ]
}
config("common_public_config") {
if ((current_cpu == "arm64" || current_cpu == "x64") &&
v8_enable_pointer_compression_override) {
defines = [
# enables pointer compression on 64 bit platforms for Cobalt.
"V8_COMPRESS_POINTERS",
"V8_31BIT_SMIS_ON_64BIT_ARCH",
]
}
}
config("engine_all_dependent_config") {
defines = [
"ENGINE_SUPPORTS_INDEXED_DELETERS",
"ENGINE_SUPPORTS_INT64",
]
}
static_library("engine") {
check_includes = false
sources = [
"algorithm_helpers.cc",
"algorithm_helpers.h",
"callback_function_conversion.h",
"cobalt_platform.cc",
"cobalt_platform.h",
"common_v8c_bindings_code.cc",
"common_v8c_bindings_code.h",
"conversion_helpers.cc",
"conversion_helpers.h",
"entry_scope.h",
"interface_data.h",
"isolate_fellowship.cc",
"isolate_fellowship.h",
"native_promise.h",
"scoped_persistent.h",
"stack_trace_helpers.cc",
"switches.cc",
"switches.h",
"type_traits.h",
"union_type_conversion_forward.h",
"union_type_conversion_impl.h",
"v8c_array_buffer.cc",
"v8c_array_buffer.h",
"v8c_array_buffer_view.cc",
"v8c_array_buffer_view.h",
"v8c_callback_function.h",
"v8c_callback_interface.cc",
"v8c_callback_interface.h",
"v8c_callback_interface_holder.h",
"v8c_data_view.cc",
"v8c_data_view.h",
"v8c_engine.cc",
"v8c_engine.h",
"v8c_exception_state.cc",
"v8c_exception_state.h",
"v8c_global_environment.cc",
"v8c_global_environment.h",
"v8c_heap_tracer.cc",
"v8c_heap_tracer.h",
"v8c_property_enumerator.h",
"v8c_script_debugger.cc",
"v8c_script_debugger.h",
"v8c_script_value_factory.cc",
"v8c_script_value_factory.h",
"v8c_source_code.cc",
"v8c_source_code.h",
"v8c_tracing_controller.cc",
"v8c_tracing_controller.h",
"v8c_typed_arrays.cc",
"v8c_typed_arrays.h",
"v8c_user_object_holder.h",
"v8c_value_handle.cc",
"v8c_value_handle.h",
"v8c_wrapper_handle.h",
"wrapper_factory.cc",
"wrapper_factory.h",
"wrapper_private.cc",
"wrapper_private.h",
]
public_configs = [
":common_public_config",
":engine_all_dependent_config",
]
deps = [
":embed_v8c_resources_as_header_files",
"//cobalt/cache",
"//cobalt/configuration",
"//cobalt/script",
"//nb",
"//third_party/v8",
"//third_party/v8:v8_libplatform",
"//third_party/v8/third_party/inspector_protocol:crdtp",
]
}
target(final_executable_type, "v8c") {
sources = [ "v8c.cc" ]
public_configs = [ ":common_public_config" ]
deps = [
":engine",
"//cobalt/base",
"//cobalt/script:script",
"//cobalt/script:standalone_javascript_runner",
"//third_party/v8",
"//third_party/v8:v8_libplatform",
]
}