# Copyright 2016 The Fuchsia Authors
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

import("../../../mesa.gni")

config("nir_public_config") {
  include_dirs = [ "." ]
}

mesa_source_set("nir") {
  public_configs = [
    ":nir_public_config",
  ]

  public_deps = [
    ":gen",
  ]

  deps = [
    ":nir_compiler_workaround",
    "$mesa_build_root/include:c_compat",
    "$mesa_build_root/src/compiler/glsl:ir_expression_operation",
    "$mesa_build_root/src/util",
  ]

  include_dirs = [
    "..",
    "$mesa_build_root/src/mapi",
    "$mesa_build_root/src/mesa",
  ]

  sources = [
    "nir.c",
    "nir.h",
    "nir_builder.h",
    "nir_builtin_builder.c",
    "nir_clone.c",
    "nir_constant_expressions.h",
    "nir_control_flow.c",
    "nir_control_flow.h",
    "nir_control_flow_private.h",
    "nir_deref.c",
    "nir_dominance.c",
    "nir_from_ssa.c",
    "nir_gather_info.c",
    "nir_gather_xfb_info.c",
    "nir_gs_count_vertices.c",
    "nir_inline_functions.c",
    "nir_instr_set.c",
    "nir_instr_set.h",
    "nir_linking_helpers.c",
    "nir_liveness.c",
    "nir_loop_analyze.c",
    "nir_lower_alu_to_scalar.c",
    "nir_lower_array_deref_of_vec.c",
    "nir_lower_input_attachments.c",
    "nir_lower_bit_size.c",
    "nir_lower_bool_to_int32.c",
    "nir_lower_clip.c",
    "nir_lower_clip_cull_distance_arrays.c",
    "nir_lower_constant_initializers.c",
    "nir_lower_double_ops.c",
    "nir_lower_flrp.c",
    "nir_lower_frexp.c",
    "nir_lower_global_vars_to_local.c",
    "nir_lower_gs_intrinsics.c",
    "nir_lower_idiv.c",
    "nir_lower_indirect_derefs.c",
    "nir_lower_interpolation.c",
    "nir_lower_int64.c",
    "nir_lower_io.c",
    "nir_lower_io_to_scalar.c",
    "nir_lower_io_arrays_to_elements.c",
    "nir_lower_io_to_temporaries.c",
    "nir_lower_io_to_vector.c",
    "nir_lower_load_const_to_scalar.c",
    "nir_lower_locals_to_regs.c",
    "nir_lower_non_uniform_access.c",
    "nir_lower_packing.c",
    "nir_lower_patch_vertices.c",
    "nir_lower_phis_to_scalar.c",
    "nir_lower_regs_to_ssa.c",
    "nir_lower_returns.c",
    "nir_lower_subgroups.c",
    "nir_lower_system_values.c",
    "nir_lower_tex.c",
    "nir_lower_to_source_mods.c",
    "nir_lower_two_sided_color.c",
    "nir_lower_var_copies.c",
    "nir_lower_vars_to_ssa.c",
    "nir_lower_vec_to_movs.c",
    "nir_lower_wpos_center.c",
    "nir_metadata.c",
    "nir_move_vec_src_uses_to_dest.c",
    "nir_normalize_cubemap_coords.c",
    "nir_opt_combine_stores.c",
    "nir_opt_comparison_pre.c",
    "nir_opt_conditional_discard.c",
    "nir_opt_constant_folding.c",
    "nir_opt_copy_prop_vars.c",
    "nir_opt_copy_propagate.c",
    "nir_opt_cse.c",
    "nir_opt_dce.c",
    "nir_opt_dead_cf.c",
    "nir_opt_dead_write_vars.c",
    "nir_opt_find_array_copies.c",
    "nir_opt_gcm.c",
    "nir_opt_idiv_const.c",
    "nir_opt_if.c",
    "nir_opt_intrinsics.c",
    "nir_opt_large_constants.c",
    "nir_opt_move.c",
    "nir_opt_loop_unroll.c",
    "nir_opt_peephole_select.c",
    "nir_opt_rematerialize_compares.c",
    "nir_opt_remove_phis.c",
    "nir_opt_sink.c",
    "nir_opt_trivial_continues.c",
    "nir_opt_undef.c",
    "nir_phi_builder.c",
    "nir_print.c",
    "nir_propagate_invariant.c",
    "nir_range_analysis.c",
    "nir_remove_dead_variables.c",
    "nir_repair_ssa.c",
    "nir_search.c",
    "nir_search.h",
    "nir_serialize.c",
    "nir_split_vars.c",
    "nir_split_per_member_structs.c",
    "nir_split_var_copies.c",
    "nir_sweep.c",
    "nir_to_lcssa.c",
    "nir_validate.c",
    "nir_vla.h",
    "nir_worklist.c",
    "nir_worklist.h",
  ]
}

# With -O2 this file causes an infinite loop with clang 3.9.0
mesa_source_set("nir_compiler_workaround") {
  sources = [
    "nir_lower_wpos_ytransform.c",
  ]

  cflags_c = [ "-O1" ]

  include_dirs = [ "$mesa_build_root/src/mesa" ]

  deps = [
    ":gen",
    "$mesa_build_root/src/util",
  ]
}

group("nir_headers") {
  public_configs = [ ":nir_public_config" ]

  public_deps = [
    ":gen",
  ]
}

action("nir_opcodes") {
  output_name = "nir_opcodes.h"
  script_name = "nir_opcodes_h.py"

  script = "$mesa_build_root/scripts/gn_script_wrapper.py"

  outputs = [
    "$target_gen_dir/$output_name",
  ]

  inputs = [
    "nir_opcodes.py",
    script_name,
  ]

  args = [
    "$magma_python_path",
    rebase_path(target_gen_dir) + "/$output_name",
    rebase_path(".") + "/$script_name",
  ]
}

action("nir_builder_opcodes") {
  output_name = "nir_builder_opcodes.h"
  script_name = "nir_builder_opcodes_h.py"

  script = "$mesa_build_root/scripts/gn_script_wrapper.py"

  outputs = [
    "$target_gen_dir/$output_name",
  ]

  inputs = [
    "nir_opcodes.py",
    script_name,
  ]

  args = [
    "$magma_python_path",
    rebase_path(target_gen_dir) + "/$output_name",
    rebase_path(".") + "/$script_name",
  ]
}

action("nir_constant_expressions") {
  output_name = "nir_constant_expressions.c"
  script_name = "nir_constant_expressions.py"

  script = "$mesa_build_root/scripts/gn_script_wrapper.py"

  outputs = [
    "$target_gen_dir/$output_name",
  ]

  inputs = [
    "nir_opcodes.py",
    script_name,
  ]

  args = [
    "$magma_python_path",
    rebase_path(target_gen_dir) + "/$output_name",
    rebase_path(".") + "/$script_name",
  ]
}

action("nir_opcodes_c") {
  output_name = "nir_opcodes.c"
  script_name = "nir_opcodes_c.py"

  script = "$mesa_build_root/scripts/gn_script_wrapper.py"

  outputs = [
    "$target_gen_dir/$output_name",
  ]

  inputs = [
    "nir_opcodes.py",
    script_name,
  ]

  args = [
    "$magma_python_path",
    rebase_path(target_gen_dir) + "/$output_name",
    rebase_path(".") + "/$script_name",
  ]
}

action("nir_opt_algebraic") {
  output_name = "nir_opt_algebraic.c"
  script_name = "nir_opt_algebraic.py"

  script = "$mesa_build_root/scripts/gn_script_wrapper.py"

  outputs = [
    "$target_gen_dir/$output_name",
  ]

  inputs = [
    "nir_algebraic.py",
    script_name,
  ]

  args = [
    "$magma_python_path",
    rebase_path(target_gen_dir) + "/$output_name",
    rebase_path(".") + "/$script_name",
  ]
}

action("nir_intrinsics_h") {
  output_name = "nir_intrinsics.h"
  script = "$mesa_build_root/scripts/python_exec.py"

  outputs = [
    "$target_gen_dir/$output_name",
  ]

  inputs = [
    "nir_intrinsics_h.py",
    "nir_intrinsics.py",
  ]

  args = [
    rebase_path("$magma_python_path"),
    rebase_path("nir_intrinsics_h.py"),
    "--outdir",
    rebase_path(target_gen_dir),
  ]
}

action("nir_intrinsics_c") {
  output_name = "nir_intrinsics.c"
  script = "$mesa_build_root/scripts/python_exec.py"

  outputs = [
    "$target_gen_dir/$output_name",
  ]

  inputs = [
    "nir_intrinsics_c.py",
    "nir_intrinsics.py",
  ]

  args = [
    rebase_path("$magma_python_path"),
    rebase_path("nir_intrinsics_c.py"),
    "--outdir",
    rebase_path(target_gen_dir),
  ]
}

config("gen_public_config") {
  include_dirs = [ target_gen_dir ]
}

mesa_source_set("gen") {
  public_configs = [ ":gen_public_config" ]

  public_deps = [
    ":nir_builder_opcodes",
    ":nir_constant_expressions",
    ":nir_intrinsics_c",
    ":nir_intrinsics_h",
    ":nir_opcodes",
    ":nir_opcodes_c",
    ":nir_opt_algebraic",
    "$mesa_build_root/src/util",
  ]

  include_dirs = [
    "$mesa_build_root/src/mesa",
    "$mesa_build_root/src/mapi",
    ".",
  ]

  sources = [
    "$target_gen_dir/nir_constant_expressions.c",
    "$target_gen_dir/nir_intrinsics.c",
    "$target_gen_dir/nir_opcodes.c",
    "$target_gen_dir/nir_opt_algebraic.c",
  ]
}
