blob: d21717e7c7ae12328085583ba5f770f8598ee8d3 [file] [log] [blame]
# 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/build/zip_bundle.gni")
import("//flutter/impeller/tools/impeller.gni")
embed_blob("embedded_icu_data") {
symbol_name = "embedded_icu_data"
blob = "//flutter/third_party/icu/flutter/icudtl.dat"
hdr = "$target_gen_dir/embedded_icu_data.h"
cc = "$target_gen_dir/embedded_icu_data.cc"
deps = []
}
# The public C/C++ Impeller API.
impeller_component("interop_api") {
public = [
"impeller.h",
"impeller.hpp",
]
sources = [
"impeller_c.c",
"impeller_cc.cc",
]
}
# The common base used by all interop backends.
impeller_component("interop_base") {
sources = [
"color_filter.cc",
"color_filter.h",
"color_source.cc",
"color_source.h",
"context.cc",
"context.h",
"dl.cc",
"dl.h",
"dl_builder.cc",
"dl_builder.h",
"formats.cc",
"formats.h",
"fragment_program.cc",
"fragment_program.h",
"glyph_info.cc",
"glyph_info.h",
"image_filter.cc",
"image_filter.h",
"line_metrics.cc",
"line_metrics.h",
"mask_filter.cc",
"mask_filter.h",
"object.cc",
"object.h",
"paint.cc",
"paint.h",
"paragraph.cc",
"paragraph.h",
"paragraph_builder.cc",
"paragraph_builder.h",
"paragraph_style.cc",
"paragraph_style.h",
"path.cc",
"path.h",
"path_builder.cc",
"path_builder.h",
"surface.cc",
"surface.h",
"texture.cc",
"texture.h",
"typography_context.cc",
"typography_context.h",
]
public_deps = [
":embedded_icu_data",
":interop_api",
"../../base",
"../../display_list",
"../../entity",
"../../renderer/backend",
"//flutter/display_list",
"//flutter/fml",
"//flutter/txt",
]
}
# Wires up the public API entrypoints to the appropriate backends.
impeller_component("interop") {
sources = [ "impeller.cc" ]
public_deps = [
":interop_base",
"backend",
]
}
impeller_component("library") {
target_type = "shared_library"
output_name = "impeller"
deps = [ ":interop" ]
}
impeller_component("example_gl") {
target_type = "executable"
output_name = "impeller_interop_example_gl"
sources = [ "example_gl.c" ]
deps = [
":interop",
"//flutter/third_party/glfw",
]
}
impeller_component("example_mtl") {
target_type = "executable"
output_name = "impeller_interop_example_mtl"
sources = [ "example_mtl.m" ]
deps = [
":interop",
"//flutter/third_party/glfw",
]
frameworks = [ "QuartzCore.framework" ]
}
impeller_component("example_vk") {
target_type = "executable"
output_name = "impeller_interop_example_vk"
sources = [ "example_vk.c" ]
deps = [
":interop",
"//flutter/third_party/glfw",
]
}
group("example") {
deps = []
if (impeller_enable_opengles) {
deps += [ ":example_gl" ]
}
if (impeller_enable_metal) {
deps += [ ":example_mtl" ]
}
if (impeller_enable_vulkan) {
deps += [ ":example_vk" ]
}
}
impeller_component("interop_unittests") {
testonly = true
sources = [
"impeller_unittests.cc",
"object_unittests.cc",
"playground_test.cc",
"playground_test.h",
]
deps = [
":interop",
"../../fixtures",
"../../playground:playground_test",
"//flutter/testing:testing_lib",
]
}
zip_bundle("sdk") {
if (is_mac) {
zip_out_dir = "darwin-${target_cpu}"
} else {
zip_out_dir = "${full_target_platform_name}"
}
output = "${zip_out_dir}/impeller_sdk.zip"
deps = [ ":library" ]
files = [
{
source = "README.md"
destination = "README.md"
},
{
source = "impeller.h"
destination = "include/impeller.h"
},
{
source = "impeller.hpp"
destination = "include/impeller.hpp"
},
{
source = "example_gl.c"
destination = "examples/example_gl.c"
},
{
source = "example_vk.c"
destination = "examples/example_vk.c"
},
{
source = "example_mtl.m"
destination = "examples/example_mtl.m"
},
]
if (is_mac) {
files += [
{
source = "$root_build_dir/libimpeller.dylib"
destination = "lib/libimpeller.dylib"
},
]
} else if (is_linux || is_android || is_qnx) {
files += [
{
source = "$root_build_dir/libimpeller.so"
destination = "lib/libimpeller.so"
},
]
} else if (is_win) {
files += [
{
source = "$root_build_dir/impeller.dll"
destination = "lib/impeller.dll"
},
{
source = "$root_build_dir/impeller.dll.lib"
destination = "lib/impeller.dll.lib"
},
]
}
}