| # Copyright 2013 The Flutter 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("//flutter/impeller/tools/impeller.gni") |
| import("//flutter/shell/version/version.gni") |
| |
| impeller_component("compiler_lib") { |
| include_dirs = [ "//third_party/vulkan-deps/spirv-cross/src/" ] |
| |
| # Current versions of libcxx have deprecated some of the UTF-16 string |
| # conversion APIs. |
| defines = [ "_LIBCPP_DISABLE_DEPRECATION_WARNINGS" ] |
| |
| sources = [ |
| "code_gen_template.h", |
| "compiler.cc", |
| "compiler.h", |
| "compiler_backend.cc", |
| "compiler_backend.h", |
| "include_dir.h", |
| "includer.cc", |
| "includer.h", |
| "logger.h", |
| "reflector.cc", |
| "reflector.h", |
| "runtime_stage_data.cc", |
| "runtime_stage_data.h", |
| "source_options.cc", |
| "source_options.h", |
| "spirv_sksl.cc", |
| "spirv_sksl.h", |
| "switches.cc", |
| "switches.h", |
| "types.cc", |
| "types.h", |
| "utilities.cc", |
| "utilities.h", |
| ] |
| |
| public_deps = [ |
| "../base", |
| "../geometry", |
| "../runtime_stage", |
| "//flutter/fml", |
| |
| # All third_party deps must be reflected below in the impellerc_license |
| # target. |
| "//third_party/inja", |
| "//third_party/shaderc_flutter", |
| "//third_party/spirv_cross_flutter", |
| ] |
| } |
| |
| generated_file("impellerc_license") { |
| source_path = rebase_path(".", "//flutter") |
| git_url = "https://github.com/flutter/engine/tree/$engine_version" |
| outputs = [ "$target_gen_dir/LICENSE.impellerc.md" ] |
| contents = [ |
| "# impellerc", |
| "", |
| "This tool is used by the Flutter SDK to compile shaders.", |
| "", |
| "Source code for this tool: [flutter/engine/$source_path]($git_url/$source_path).", |
| "", |
| "## Licenses", |
| "", |
| "### impellerc", |
| "", |
| read_file("//flutter/sky/packages/sky_engine/LICENSE", "string"), |
| "", |
| |
| # These licenses are ignored by the main license checker, since they are not |
| # shipped to end-application binaries and only shipped as part of developer |
| # tooling in impellerc. Add them here. |
| "## Additional open source licenses", |
| "", |
| "### inja", |
| "", |
| read_file("//third_party/inja/LICENSE", "string"), |
| "", |
| "### shaderc", |
| "", |
| read_file("//third_party/shaderc/LICENSE", "string"), |
| "", |
| "### spirv_cross", |
| "", |
| read_file("//third_party/vulkan-deps/spirv-cross/src/LICENSE", "string"), |
| ] |
| } |
| |
| impeller_component("impellerc") { |
| target_type = "executable" |
| |
| sources = [ "impellerc_main.cc" ] |
| |
| deps = [ ":compiler_lib" ] |
| |
| metadata = { |
| entitlement_file_path = [ "impellerc" ] |
| } |
| } |
| |
| group("compiler") { |
| deps = [ |
| ":impellerc", |
| ":impellerc_license", |
| ] |
| } |
| |
| impeller_component("compiler_unittests") { |
| testonly = true |
| |
| output_name = "impellerc_unittests" |
| |
| sources = [ |
| "compiler_test.cc", |
| "compiler_test.h", |
| "compiler_unittests.cc", |
| ] |
| |
| deps = [ |
| ":compiler_lib", |
| "//flutter/testing:testing_lib", |
| ] |
| } |