# Copyright 2014 The Chromium 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("//sky/engine/bindings/idl.gni")
import("//sky/engine/core/core.gni")

# Don't actually read idl.gypi since that just defines variables in terms of
# others, which gypi_to_gn doesn't handle.

# IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces
# Interface IDL files: generate individual bindings (includes testing)
core_interface_idl_files =
  core_idl_files

# Static IDL files
core_static_interface_idl_files =
  core_idl_files

core_static_dependency_idl_files =
  core_dependency_idl_files

# Generated IDL files
core_generated_dependency_idl_files =
  # FIXME: Generate separate core_global_constructors_idls
  # http://crbug.com/358074
  generated_global_constructors_idl_files  # partial interfaces

# Static IDL files / Generated IDL files
#
# In GYP, paths need to be passed separately for static and generated files, as
# static files are listed in a temporary file (b/c too long for command line),
# but generated files must be passed at the command line, as their paths are
# not fixed at GYP time, when the temporary file is generated, because their
# paths depend on the build directory, which varies.
#
# FIXME: GN does not have this restriction and we can combine them. While GYP
# is still supported, we match its behavior for easier maintenance but this can
# be simplified.
core_static_idl_files =
  core_static_interface_idl_files +
  core_static_dependency_idl_files
core_generated_idl_files =
  core_generated_dependency_idl_files

# Dependency IDL files: don't generate individual bindings, but do process
# in IDL dependency computation, and count as build dependencies
# 'core_dependency_idl_files' is already used in engine/core, so avoid
# collision
core_all_dependency_idl_files =
  core_static_dependency_idl_files +
  core_generated_dependency_idl_files
