diff --git a/cmake/fml.cmake b/cmake/fml.cmake index 34bdf0c..00e8ba5 100644 --- a/cmake/fml.cmake +++ b/cmake/fml.cmake @@ -57,5 +57,6 @@ target_include_directories(fml PUBLIC $ # For includes starting with "third_party/" (abseil-cpp) $/abseil-cpp # For includes starting with "absl/" (in the abseil headers) + $/flutter_third_party # For includes beginning with "flutter/third_party" $) # For includes starting with "flutter/" target_link_libraries(fml PRIVATE absl_symbolize) diff --git a/cmake/impeller_entity.cmake b/cmake/impeller_entity.cmake index 085ead0..5d73b55 100644 --- a/cmake/impeller_entity.cmake +++ b/cmake/impeller_entity.cmake @@ -10,107 +10,83 @@ set(IMPELLER_ENTITY_DIR ${FLUTTER_ENGINE_DIR}/impeller/entity add_gles_shader_library( NAME entity SHADERS - "${IMPELLER_ENTITY_DIR}/shaders/debug/checkerboard.vert" - "${IMPELLER_ENTITY_DIR}/shaders/debug/checkerboard.frag" "${IMPELLER_ENTITY_DIR}/shaders/blending/advanced_blend.vert" "${IMPELLER_ENTITY_DIR}/shaders/blending/advanced_blend.frag" - "${IMPELLER_ENTITY_DIR}/shaders/blending/blend.frag" - "${IMPELLER_ENTITY_DIR}/shaders/blending/blend.vert" - "${IMPELLER_ENTITY_DIR}/shaders/border_mask_blur.frag" - "${IMPELLER_ENTITY_DIR}/shaders/border_mask_blur.vert" "${IMPELLER_ENTITY_DIR}/shaders/clip.frag" "${IMPELLER_ENTITY_DIR}/shaders/clip.vert" - "${IMPELLER_ENTITY_DIR}/shaders/color_matrix_color_filter.frag" - "${IMPELLER_ENTITY_DIR}/shaders/color_matrix_color_filter.vert" - "${IMPELLER_ENTITY_DIR}/shaders/conical_gradient_fill.frag" - "${IMPELLER_ENTITY_DIR}/shaders/gaussian_blur/gaussian_blur.vert" - "${IMPELLER_ENTITY_DIR}/shaders/gaussian_blur/gaussian_blur_noalpha_decal.frag" - "${IMPELLER_ENTITY_DIR}/shaders/gaussian_blur/gaussian_blur_noalpha_nodecal.frag" - "${IMPELLER_ENTITY_DIR}/shaders/gaussian_blur/kernel_decal.frag" - "${IMPELLER_ENTITY_DIR}/shaders/gaussian_blur/kernel_nodecal.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/conical_gradient_fill.frag" "${IMPELLER_ENTITY_DIR}/shaders/glyph_atlas.frag" - "${IMPELLER_ENTITY_DIR}/shaders/glyph_atlas_color.frag" "${IMPELLER_ENTITY_DIR}/shaders/glyph_atlas.vert" - "${IMPELLER_ENTITY_DIR}/shaders/gradient_fill.vert" - "${IMPELLER_ENTITY_DIR}/shaders/linear_to_srgb_filter.frag" - "${IMPELLER_ENTITY_DIR}/shaders/linear_to_srgb_filter.vert" - "${IMPELLER_ENTITY_DIR}/shaders/linear_gradient_fill.frag" - "${IMPELLER_ENTITY_DIR}/shaders/morphology_filter.frag" - "${IMPELLER_ENTITY_DIR}/shaders/morphology_filter.vert" - "${IMPELLER_ENTITY_DIR}/shaders/position_color.vert" - "${IMPELLER_ENTITY_DIR}/shaders/radial_gradient_fill.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/gradient_fill.vert" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/linear_gradient_fill.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/radial_gradient_fill.frag" "${IMPELLER_ENTITY_DIR}/shaders/rrect_blur.vert" "${IMPELLER_ENTITY_DIR}/shaders/rrect_blur.frag" "${IMPELLER_ENTITY_DIR}/shaders/runtime_effect.vert" "${IMPELLER_ENTITY_DIR}/shaders/solid_fill.frag" "${IMPELLER_ENTITY_DIR}/shaders/solid_fill.vert" - "${IMPELLER_ENTITY_DIR}/shaders/srgb_to_linear_filter.frag" - "${IMPELLER_ENTITY_DIR}/shaders/srgb_to_linear_filter.vert" - "${IMPELLER_ENTITY_DIR}/shaders/sweep_gradient_fill.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/sweep_gradient_fill.frag" "${IMPELLER_ENTITY_DIR}/shaders/texture_fill.frag" "${IMPELLER_ENTITY_DIR}/shaders/texture_fill.vert" - "${IMPELLER_ENTITY_DIR}/shaders/texture_fill_external.frag" - "${IMPELLER_ENTITY_DIR}/shaders/texture_fill_strict_src.frag" + "${IMPELLER_ENTITY_DIR}/shaders/texture_uv_fill.vert" "${IMPELLER_ENTITY_DIR}/shaders/tiled_texture_fill.frag" "${IMPELLER_ENTITY_DIR}/shaders/tiled_texture_fill_external.frag" - "${IMPELLER_ENTITY_DIR}/shaders/vertices.frag" - "${IMPELLER_ENTITY_DIR}/shaders/yuv_to_rgb_filter.frag" - "${IMPELLER_ENTITY_DIR}/shaders/yuv_to_rgb_filter.vert" + "${IMPELLER_ENTITY_DIR}/shaders/texture_fill_strict_src.frag" "${IMPELLER_ENTITY_DIR}/shaders/blending/porter_duff_blend.frag" "${IMPELLER_ENTITY_DIR}/shaders/blending/porter_duff_blend.vert" + "${IMPELLER_ENTITY_DIR}/shaders/filters/border_mask_blur.frag" + "${IMPELLER_ENTITY_DIR}/shaders/filters/color_matrix_color_filter.frag" + "${IMPELLER_ENTITY_DIR}/shaders/filters/filter_position.vert" + "${IMPELLER_ENTITY_DIR}/shaders/filters/filter_position_uv.vert" + "${IMPELLER_ENTITY_DIR}/shaders/filters/gaussian.frag" + "${IMPELLER_ENTITY_DIR}/shaders/filters/yuv_to_rgb_filter.frag" + "${IMPELLER_ENTITY_DIR}/shaders/filters/srgb_to_linear_filter.frag" + "${IMPELLER_ENTITY_DIR}/shaders/filters/linear_to_srgb_filter.frag" + "${IMPELLER_ENTITY_DIR}/shaders/filters/morphology_filter.frag" + "${IMPELLER_ENTITY_DIR}/shaders/blending/vertices_uber.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/fast_gradient.vert" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/fast_gradient.frag" OUTPUT_DIR ${IMPELLER_GENERATED_DIR}/impeller/entity) add_library(entity_shaders_lib STATIC "${IMPELLER_GENERATED_DIR}/impeller/entity/gles/entity_shaders_gles.cc" - "${IMPELLER_GENERATED_DIR}/impeller/entity/checkerboard.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/checkerboard.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/advanced_blend.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/advanced_blend.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/blend.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/blend.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/border_mask_blur.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/border_mask_blur.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/clip.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/clip.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/color_matrix_color_filter.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/color_matrix_color_filter.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/conical_gradient_fill.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/gaussian_blur.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/gaussian_blur_noalpha_decal.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/gaussian_blur_noalpha_nodecal.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/kernel_decal.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/kernel_nodecal.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/glyph_atlas.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/glyph_atlas_color.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/glyph_atlas.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/gradient_fill.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/linear_to_srgb_filter.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/linear_to_srgb_filter.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/linear_gradient_fill.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/morphology_filter.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/morphology_filter.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/position_color.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/radial_gradient_fill.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/rrect_blur.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/rrect_blur.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/runtime_effect.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/solid_fill.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/solid_fill.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/srgb_to_linear_filter.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/srgb_to_linear_filter.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/sweep_gradient_fill.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/texture_fill.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/texture_fill.vert" - "${IMPELLER_GENERATED_DIR}/impeller/entity/texture_fill_external.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/texture_fill_strict_src.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/texture_uv_fill.vert" "${IMPELLER_GENERATED_DIR}/impeller/entity/tiled_texture_fill.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/tiled_texture_fill_external.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/vertices.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/yuv_to_rgb_filter.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/yuv_to_rgb_filter.vert" + "${IMPELLER_GENERATED_DIR}/impeller/entity/texture_fill_strict_src.frag" "${IMPELLER_GENERATED_DIR}/impeller/entity/porter_duff_blend.frag" - "${IMPELLER_GENERATED_DIR}/impeller/entity/porter_duff_blend.vert") + "${IMPELLER_GENERATED_DIR}/impeller/entity/porter_duff_blend.vert" + "${IMPELLER_GENERATED_DIR}/impeller/entity/border_mask_blur.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/color_matrix_color_filter.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/filter_position.vert" + "${IMPELLER_GENERATED_DIR}/impeller/entity/filter_position_uv.vert" + "${IMPELLER_GENERATED_DIR}/impeller/entity/gaussian.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/yuv_to_rgb_filter.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/srgb_to_linear_filter.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/linear_to_srgb_filter.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/morphology_filter.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/vertices_uber.frag" + "${IMPELLER_GENERATED_DIR}/impeller/entity/fast_gradient.vert" + "${IMPELLER_GENERATED_DIR}/impeller/entity/fast_gradient.frag") target_include_directories(entity_shaders_lib PUBLIC @@ -124,12 +100,10 @@ add_gles_shader_library( NAME modern GLES_LANGUAGE_VERSION 460 SHADERS - "${IMPELLER_ENTITY_DIR}/shaders/conical_gradient_ssbo_fill.frag" - "${IMPELLER_ENTITY_DIR}/shaders/linear_gradient_ssbo_fill.frag" - "${IMPELLER_ENTITY_DIR}/shaders/radial_gradient_ssbo_fill.frag" - "${IMPELLER_ENTITY_DIR}/shaders/sweep_gradient_ssbo_fill.frag" - "${IMPELLER_ENTITY_DIR}/shaders/geometry/points.comp" - "${IMPELLER_ENTITY_DIR}/shaders/geometry/uv.comp" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/conical_gradient_ssbo_fill.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/linear_gradient_ssbo_fill.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/radial_gradient_ssbo_fill.frag" + "${IMPELLER_ENTITY_DIR}/shaders/gradients/sweep_gradient_ssbo_fill.frag" OUTPUT_DIR ${IMPELLER_GENERATED_DIR}/impeller/entity) add_library(modern_shaders_lib @@ -137,9 +111,7 @@ add_library(modern_shaders_lib "${IMPELLER_GENERATED_DIR}/impeller/entity/conical_gradient_ssbo_fill.frag.cc" "${IMPELLER_GENERATED_DIR}/impeller/entity/linear_gradient_ssbo_fill.frag.cc" "${IMPELLER_GENERATED_DIR}/impeller/entity/radial_gradient_ssbo_fill.frag.cc" - "${IMPELLER_GENERATED_DIR}/impeller/entity/sweep_gradient_ssbo_fill.frag.cc" - "${IMPELLER_GENERATED_DIR}/impeller/entity/points.comp" - "${IMPELLER_GENERATED_DIR}/impeller/entity/uv.comp") + "${IMPELLER_GENERATED_DIR}/impeller/entity/sweep_gradient_ssbo_fill.frag.cc") target_include_directories(modern_shaders_lib PUBLIC diff --git a/cmake/impeller_shader_archive.cmake b/cmake/impeller_shader_archive.cmake index 6ade5d1..f3242cc 100644 --- a/cmake/impeller_shader_archive.cmake +++ b/cmake/impeller_shader_archive.cmake @@ -16,11 +16,6 @@ flatbuffers_schema( INPUT ${IMPELLER_SHADER_ARCHIVE_DIR}/shader_archive.fbs OUTPUT_DIR ${IMPELLER_GENERATED_DIR}/impeller/shader_archive) -flatbuffers_schema( - TARGET impeller_shader_archive - INPUT ${IMPELLER_SHADER_ARCHIVE_DIR}/multi_arch_shader_archive.fbs - OUTPUT_DIR ${IMPELLER_GENERATED_DIR}/impeller/shader_archive) - target_include_directories(impeller_shader_archive PUBLIC $ # For includes starting with "flutter/" diff --git a/third_party/flutter b/third_party/flutter index dd530f1..3e4bc10 160000 --- a/third_party/flutter +++ b/third_party/flutter @@ -1 +1 @@ -Subproject commit dd530f1556dfe22c6fc3549a1e8342fadde7302c +Subproject commit 3e4bc10afc4caccf9d50166f91a5eb3ffb57032e diff --git a/third_party/flutter_third_party/README.md b/third_party/flutter_third_party/README.md new file mode 100644 index 0000000..4473165 --- /dev/null +++ b/third_party/flutter_third_party/README.md @@ -0,0 +1,19 @@ +# flutter_third_party + +This directory exists for the sole purpose of supporting includes that begin +with `flutter/third_party`. + +`third_party/flutter_third_party/flutter/third_party` is a symlink that +redirects to `third_party/flutter_third_party`. + +And so CMake libraries can simply add +`${CMAKE_CURRENT_SOURCE_DIR}/third_party/flutter_third_party` to the includes +list alongside `${CMAKE_CURRENT_SOURCE_DIR}` to support both includes starting +with `flutter/third_party/` and `third_party/` respectively. + +## Why? + +When building Flutter Engine via the GN build, gclient clones many +dependencies into the `flutter/third_party` directory. And source files in +Flutter Engine may begin includes with either `flutter/third_party/` or +`third_party/` to access the headers in this directory. diff --git a/third_party/flutter_third_party/flutter/third_party b/third_party/flutter_third_party/flutter/third_party new file mode 120000 index 0000000..6bfa480 --- /dev/null +++ b/third_party/flutter_third_party/flutter/third_party @@ -0,0 +1 @@ +../../../third_party \ No newline at end of file