# Copyright 2015 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.

{
  'targets': [
    {
      # Interfaces for interacting with a JavaScript engine and exposing objects
      # to bindings to JavaScript.
      'target_name': 'script',
      'type': 'static_library',
      'sources': [
        'array_buffer.h',
        'array_buffer_view.h',
        'call_frame.h',
        'callback_function.h',
        'callback_interface_traits.h',
        'data_view.h',
        'environment_settings.h',
        'error_report.h',
        'exception_message.cc',
        'exception_message.h',
        'execution_state.cc',
        'execution_state.h',
        'fake_global_environment.h',
        'fake_script_runner.h',
        'global_environment.h',
        'global_object_proxy.h',
        'javascript_engine.h',
        'logging_exception_state.h',
        'promise.h',
        'property_enumerator.h',
        'scope.h',
        'script_debugger.h',
        'script_exception.h',
        'script_runner.cc',
        'script_runner.h',
        'script_value.h',
        'script_value_factory.h',
        'script_value_factory_instantiations.h',
        'sequence.h',
        'source_code.h',
        'source_provider.h',
        'stack_frame.cc',
        'stack_frame.h',
        'tracer.h',
        'typed_arrays.h',
        'union_type.h',
        'union_type_internal.h',
        'util/stack_trace_helpers.h',
        'value_handle.h',
        'wrappable.h',
      ],
      'dependencies': [
        '<(DEPTH)/cobalt/base/base.gyp:base',
        '<(DEPTH)/nb/nb.gyp:nb',
      ]
    },
    {
      'target_name': 'standalone_javascript_runner',
      'type': 'static_library',
      'sources': [
        'standalone_javascript_runner.cc',
        'standalone_javascript_runner.h',
      ],
    },
  ],
}
