# 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("//third_party/WebKit/Source/bindings/core/idl.gni")
import("//third_party/WebKit/Source/bindings/modules/modules.gni")
import("//third_party/WebKit/Source/modules/modules.gni")

# IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces

modules_definition_idl_files =
  modules_dictionary_idl_files +
  modules_idl_files

# Static IDL files
modules_static_interface_idl_files =
  modules_definition_idl_files
modules_static_dependency_idl_files =
  modules_dependency_idl_files +
  modules_testing_dependency_idl_files

# 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 limitation and we can combine the lists.
# Currently we keep the GYP/GN builds in sync for simplicity, but this can be
# cleaned up once GYP is not used.
modules_static_idl_files =
  modules_static_interface_idl_files +
  modules_static_dependency_idl_files

modules_generated_dependency_idl_files =
  modules_core_global_constructors_generated_idl_files +
  modules_global_constructors_generated_idl_files

# 'modules_dependency_idl_files' is already used in Source/modules, so avoid
# collision
modules_all_dependency_idl_files =
  modules_static_dependency_idl_files +
  modules_generated_dependency_idl_files

# Dependency IDL files: don't generate individual bindings, but do process
# in IDL dependency computation, and count as build dependencies
all_dependency_idl_files =
  core_all_dependency_idl_files +
  modules_all_dependency_idl_files
