# Copyright 2017 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. config("txt_config") { visibility = [ ":*" ] include_dirs = [ "src" ] } source_set("txt") { if (current_toolchain == host_toolchain && !is_mac) { defines = [ "DIRECTORY_FONT_MANAGER_AVAILABLE" ] } if (is_android) { defines = [ "ANDROID_FONT_MANAGER_AVAILABLE" ] } sources = [ "src/log/log.cc", "src/log/log.h", "src/minikin/CmapCoverage.cpp", "src/minikin/CmapCoverage.h", "src/minikin/Emoji.cpp", "src/minikin/Emoji.h", "src/minikin/FontCollection.cpp", "src/minikin/FontCollection.h", "src/minikin/FontFamily.cpp", "src/minikin/FontFamily.h", "src/minikin/FontLanguage.cpp", "src/minikin/FontLanguage.h", "src/minikin/FontLanguageListCache.cpp", "src/minikin/FontLanguageListCache.h", "src/minikin/FontUtils.cpp", "src/minikin/FontUtils.h", "src/minikin/GraphemeBreak.cpp", "src/minikin/GraphemeBreak.h", "src/minikin/HbFontCache.cpp", "src/minikin/HbFontCache.h", "src/minikin/Hyphenator.cpp", "src/minikin/Hyphenator.h", "src/minikin/Layout.cpp", "src/minikin/Layout.h", "src/minikin/LayoutUtils.cpp", "src/minikin/LayoutUtils.h", "src/minikin/LineBreaker.cpp", "src/minikin/LineBreaker.h", "src/minikin/Measurement.cpp", "src/minikin/Measurement.h", "src/minikin/MinikinFont.cpp", "src/minikin/MinikinFont.h", "src/minikin/MinikinInternal.cpp", "src/minikin/MinikinInternal.h", "src/minikin/SparseBitSet.cpp", "src/minikin/SparseBitSet.h", "src/minikin/WordBreaker.cpp", "src/minikin/WordBreaker.h", "src/txt/asset_font_manager.cc", "src/txt/asset_font_manager.h", "src/txt/font_asset_provider.cc", "src/txt/font_asset_provider.h", "src/txt/font_collection.cc", "src/txt/font_collection.h", "src/txt/font_skia.cc", "src/txt/font_skia.h", "src/txt/font_style.h", "src/txt/font_weight.h", "src/txt/paint_record.cc", "src/txt/paint_record.h", "src/txt/paragraph.cc", "src/txt/paragraph.h", "src/txt/paragraph_builder.cc", "src/txt/paragraph_builder.h", "src/txt/paragraph_style.cc", "src/txt/paragraph_style.h", "src/txt/platform.h", "src/txt/styled_runs.cc", "src/txt/styled_runs.h", "src/txt/test_font_manager.cc", "src/txt/test_font_manager.h", "src/txt/text_baseline.h", "src/txt/text_decoration.cc", "src/txt/text_decoration.h", "src/txt/text_shadow.cc", "src/txt/text_shadow.h", "src/txt/text_style.cc", "src/txt/text_style.h", "src/txt/typeface_font_asset_provider.cc", "src/txt/typeface_font_asset_provider.h", "src/utils/JenkinsHash.cpp", "src/utils/JenkinsHash.h", "src/utils/LruCache.h", "src/utils/TypeHelpers.h", "src/utils/WindowsUtils.h", ] public_configs = [ ":txt_config" ] public_deps = [ "$flutter_root/fml", "//third_party/harfbuzz", "//third_party/icu", "//third_party/skia", ] deps = [ "//third_party/skia", ] if (is_mac || is_ios) { set_sources_assignment_filter([]) sources += [ "src/txt/platform_mac.mm" ] set_sources_assignment_filter(sources_assignment_filter) deps += [ "$flutter_root/fml" ] } else if (is_android) { sources += [ "src/txt/platform_android.cc" ] } else { sources += [ "src/txt/platform.cc" ] } } txt_common_executable_deps = [ "//third_party/dart/runtime:libdart_jit", # For logging. "$flutter_root/fml", # For ICU initialization. ] source_set("txt_test_utils") { sources = [ "tests/txt_test_utils.cc", "tests/txt_test_utils.h", ] deps = [ ":txt", "$flutter_root/fml", "//third_party/skia", ] } executable("txt_unittests") { testonly = true sources = [ "tests/CmapCoverageTest.cpp", "tests/EmojiTest.cpp", "tests/FileUtils.cpp", "tests/FileUtils.h", "tests/FontTestUtils.h", "tests/GraphemeBreakTests.cpp", "tests/ICUTestBase.h", "tests/LayoutUtilsTest.cpp", "tests/MeasurementTests.cpp", "tests/SparseBitSetTest.cpp", "tests/UnicodeUtils.cpp", "tests/UnicodeUtils.h", "tests/UnicodeUtilsTest.cpp", "tests/font_collection_unittests.cc", "tests/paragraph_unittests.cc", "tests/render_test.cc", "tests/render_test.h", "tests/txt_run_all_unittests.cc", # These tests require static fixtures. # "tests/FontCollectionItemizeTest.cpp", # "tests/FontCollectionTest.cpp", # "tests/FontFamilyTest.cpp", # "tests/FontLanguageListCacheTest.cpp", # "tests/FontTestUtils.cpp", # "tests/HbFontCacheTest.cpp", # "tests/HyphenatorTest.cpp", # "tests/LayoutTest.cpp", ] if (!is_win) { sources += [ "tests/MinikinFontForTest.cpp", "tests/MinikinFontForTest.h", ] } deps = [ ":txt", ":txt_test_utils", "//third_party/googletest:gtest", ] + txt_common_executable_deps } executable("txt_benchmarks") { testonly = true sources = [ "benchmarks/paint_record_benchmarks.cc", "benchmarks/paragraph_benchmarks.cc", "benchmarks/paragraph_builder_benchmarks.cc", "benchmarks/styled_runs_benchmarks.cc", "benchmarks/txt_run_all_benchmarks.cc", ] deps = [ ":txt", ":txt_test_utils", "//third_party/benchmark", ] + txt_common_executable_deps }