1################################################################################ 2# Skylark macros 3################################################################################ 4 5is_bazel = not hasattr(native, "genmpm") 6 7def portable_select(select_dict, bazel_condition, default_condition): 8 """Replaces select() with a Bazel-friendly wrapper. 9 10 Args: 11 select_dict: Dictionary in the same format as select(). 12 Returns: 13 If Blaze platform, returns select() using select_dict. 14 If Bazel platform, returns dependencies for condition 15 bazel_condition, or empty list if none specified. 16 """ 17 if is_bazel: 18 return select_dict.get(bazel_condition, select_dict[default_condition]) 19 else: 20 return select(select_dict) 21 22def skia_select(conditions, results): 23 """Replaces select() for conditions [UNIX, ANDROID, IOS] 24 25 Args: 26 conditions: [CONDITION_UNIX, CONDITION_ANDROID, CONDITION_IOS] 27 results: [RESULT_UNIX, RESULT_ANDROID, RESULT_IOS] 28 Returns: 29 The result matching the platform condition. 30 """ 31 if len(conditions) != 3 or len(results) != 3: 32 fail("Must provide exactly 3 conditions and 3 results") 33 34 selector = {} 35 for i in range(3): 36 selector[conditions[i]] = results[i] 37 return portable_select(selector, conditions[2], conditions[0]) 38 39def skia_glob(srcs): 40 """Replaces glob() with a version that accepts a struct. 41 42 Args: 43 srcs: struct(include=[], exclude=[]) 44 Returns: 45 Equivalent of glob(srcs.include, exclude=srcs.exclude) 46 """ 47 if hasattr(srcs, "include"): 48 if hasattr(srcs, "exclude"): 49 return native.glob(srcs.include, exclude = srcs.exclude) 50 else: 51 return native.glob(srcs.include) 52 return [] 53 54################################################################################ 55## skia_{all,public}_hdrs() 56################################################################################ 57def skia_all_hdrs(): 58 return native.glob([ 59 "src/**/*.h", 60 "include/**/*.h", 61 "third_party/**/*.h", 62 ]) 63 64def skia_public_hdrs(): 65 return native.glob( 66 ["include/**/*.h"], 67 exclude = [ 68 "include/private/**/*", 69 ], 70 ) 71 72################################################################################ 73## skia_opts_srcs() 74################################################################################ 75# Intel 76SKIA_OPTS_SSE2 = "SSE2" 77 78SKIA_OPTS_SSSE3 = "SSSE3" 79 80SKIA_OPTS_SSE41 = "SSE41" 81 82SKIA_OPTS_SSE42 = "SSE42" 83 84SKIA_OPTS_AVX = "AVX" 85 86SKIA_OPTS_HSW = "HSW" 87 88# Arm 89SKIA_OPTS_NEON = "NEON" 90 91SKIA_OPTS_CRC32 = "CRC32" # arm64 92 93def opts_srcs(opts): 94 if opts == SKIA_OPTS_SSE2: 95 return native.glob([ 96 "src/opts/*_SSE2.cpp", 97 "src/opts/*_sse2.cpp", # No matches currently. 98 ]) 99 elif opts == SKIA_OPTS_SSSE3: 100 return native.glob([ 101 "src/opts/*_SSSE3.cpp", 102 "src/opts/*_ssse3.cpp", 103 ]) 104 elif opts == SKIA_OPTS_SSE41: 105 return native.glob([ 106 "src/opts/*_sse41.cpp", 107 ]) 108 elif opts == SKIA_OPTS_SSE42: 109 return native.glob([ 110 "src/opts/*_sse42.cpp", 111 ]) 112 elif opts == SKIA_OPTS_AVX: 113 return native.glob([ 114 "src/opts/*_avx.cpp", 115 ]) 116 elif opts == SKIA_OPTS_HSW: 117 return native.glob([ 118 "src/opts/*_hsw.cpp", 119 ]) 120 elif opts == SKIA_OPTS_NEON: 121 return native.glob([ 122 "src/opts/*_neon.cpp", 123 ]) 124 elif opts == SKIA_OPTS_CRC32: 125 return native.glob([ 126 "src/opts/*_crc32.cpp", 127 ]) 128 else: 129 fail("skia_opts_srcs parameter 'opts' must be one of SKIA_OPTS_*.") 130 131def opts_cflags(opts): 132 if opts == SKIA_OPTS_SSE2: 133 return ["-msse2"] 134 elif opts == SKIA_OPTS_SSSE3: 135 return ["-mssse3"] 136 elif opts == SKIA_OPTS_SSE41: 137 return ["-msse4.1"] 138 elif opts == SKIA_OPTS_SSE42: 139 return ["-msse4.2"] 140 elif opts == SKIA_OPTS_AVX: 141 return ["-mavx"] 142 elif opts == SKIA_OPTS_HSW: 143 return ["-mavx2", "-mf16c", "-mfma"] 144 elif opts == SKIA_OPTS_NEON: 145 return ["-mfpu=neon"] 146 elif opts == SKIA_OPTS_CRC32: 147 # NDK r11's Clang (3.8) doesn't pass along this -march setting correctly to an external 148 # assembler, so we do it manually with -Wa. This is just a bug, fixed in later Clangs. 149 return ["-march=armv8-a+crc", "-Wa,-march=armv8-a+crc"] 150 else: 151 return [] 152 153SKIA_CPU_ARM = "ARM" 154 155SKIA_CPU_ARM64 = "ARM64" 156 157SKIA_CPU_X86 = "X86" 158 159SKIA_CPU_OTHER = "OTHER" 160 161def opts_rest_srcs(cpu): 162 srcs = [] 163 if cpu == SKIA_CPU_ARM or cpu == SKIA_CPU_ARM64: 164 srcs += native.glob([ 165 "src/opts/*_arm.cpp", 166 "src/opts/SkBitmapProcState_opts_none.cpp", 167 ]) 168 if cpu == SKIA_CPU_ARM64: 169 # NEON doesn't need special flags to compile on ARM64. 170 srcs += native.glob([ 171 "src/opts/*_neon.cpp", 172 ]) 173 elif cpu == SKIA_CPU_X86: 174 srcs += native.glob([ 175 "src/opts/*_x86.cpp", 176 ]) 177 elif cpu == SKIA_CPU_OTHER: 178 srcs += native.glob([ 179 "src/opts/*_none.cpp", 180 ]) 181 else: 182 fail("opts_rest_srcs parameter 'cpu' must be one of " + 183 "SKIA_CPU_{ARM,ARM64,X86,OTHER}.") 184 return srcs 185 186def skia_opts_deps(cpu): 187 res = [":opts_rest"] 188 189 if cpu == SKIA_CPU_ARM: 190 res += [":opts_neon"] 191 192 if cpu == SKIA_CPU_ARM64: 193 res += [":opts_crc32"] 194 195 if cpu == SKIA_CPU_X86: 196 res += [ 197 ":opts_sse2", 198 ":opts_ssse3", 199 ":opts_sse41", 200 ":opts_sse42", 201 ":opts_avx", 202 ":opts_hsw", 203 ] 204 205 return res 206 207################################################################################ 208## BASE_SRCS 209################################################################################ 210 211# All platform-independent SRCS. 212BASE_SRCS_ALL = struct( 213 include = [ 214 "include/private/**/*.h", 215 "src/**/*.h", 216 "src/**/*.cpp", 217 "src/**/*.inc", 218 ], 219 exclude = [ 220 # Exclude platform-dependent files. 221 "src/codec/*", 222 "src/device/xps/*", # Windows-only. Move to ports? 223 "src/doc/*_XPS.cpp", # Windows-only. Move to ports? 224 "src/gpu/gl/android/*", 225 "src/gpu/gl/egl/*", 226 "src/gpu/gl/glfw/*", 227 "src/gpu/gl/glx/*", 228 "src/gpu/gl/iOS/*", 229 "src/gpu/gl/mac/*", 230 "src/gpu/gl/win/*", 231 "src/opts/**/*", 232 "src/ports/**/*", 233 "src/utils/android/**/*", 234 "src/utils/mac/**/*", 235 "src/utils/win/**/*", 236 237 # Exclude multiple definitions. 238 "src/gpu/GrPathRendering_none.cpp", 239 "src/gpu/ccpr/GrCoverageCountingPathRenderer_none.cpp", 240 "src/gpu/gl/GrGLMakeNativeInterface_none.cpp", 241 "src/pdf/SkDocument_PDF_None.cpp", # We use src/pdf/SkPDFDocument.cpp. 242 243 # Exclude files that don't compile everywhere. 244 "src/svg/**/*", # Depends on xml, SkJpegCodec, and SkPngCodec. 245 "src/xml/**/*", # Avoid dragging in expat when not needed. 246 247 # Conflicting dependencies among Lua versions. See cl/107087297. 248 "src/utils/SkLua*", 249 250 # Currently exclude all vulkan specific files 251 "src/gpu/vk/*", 252 253 # Currently exclude all Dawn-specific files 254 "src/gpu/dawn/*", 255 256 # Defines main. 257 "src/sksl/SkSLMain.cpp", 258 259 # Only used to regenerate the lexer 260 "src/sksl/lex/*", 261 262 # Atlas text 263 "src/atlastext/*", 264 ], 265) 266 267def codec_srcs(limited): 268 """Sources for the codecs. Excludes Raw, and Ico, Webp, and Png if limited.""" 269 270 # TODO: Enable wuffs in Google3 271 exclude = ["src/codec/SkWuffsCodec.cpp", "src/codec/*Raw*.cpp"] 272 if limited: 273 exclude += [ 274 "src/codec/*Ico*.cpp", 275 "src/codec/*Webp*.cpp", 276 "src/codec/*Png*", 277 ] 278 return native.glob(["src/codec/*.cpp", "third_party/gif/*.cpp"], exclude = exclude) 279 280GL_SRCS_UNIX = struct( 281 include = [ 282 "src/gpu/gl/GrGLMakeNativeInterface_none.cpp", 283 ], 284 exclude = [], 285) 286PORTS_SRCS_UNIX = struct( 287 include = [ 288 "src/ports/**/*.cpp", 289 "src/ports/**/*.h", 290 ], 291 exclude = [ 292 "src/ports/*CG*", 293 "src/ports/*WIC*", 294 "src/ports/*android*", 295 "src/ports/*chromium*", 296 "src/ports/*mac*", 297 "src/ports/*mozalloc*", 298 "src/ports/*nacl*", 299 "src/ports/*win*", 300 "src/ports/SkFontMgr_custom_directory_factory.cpp", 301 "src/ports/SkFontMgr_custom_embedded_factory.cpp", 302 "src/ports/SkFontMgr_custom_empty_factory.cpp", 303 "src/ports/SkFontMgr_empty_factory.cpp", 304 "src/ports/SkFontMgr_fontconfig_factory.cpp", 305 "src/ports/SkFontMgr_fuchsia.cpp", 306 "src/ports/SkImageGenerator_none.cpp", 307 "src/ports/SkTLS_none.cpp", 308 ], 309) 310 311GL_SRCS_ANDROID = struct( 312 include = [ 313 "src/gpu/gl/android/*.cpp", 314 ], 315 exclude = [], 316) 317PORTS_SRCS_ANDROID = struct( 318 include = [ 319 "src/ports/**/*.cpp", 320 "src/ports/**/*.h", 321 ], 322 exclude = [ 323 "src/ports/*CG*", 324 "src/ports/*FontConfig*", 325 "src/ports/*WIC*", 326 "src/ports/*chromium*", 327 "src/ports/*fontconfig*", 328 "src/ports/*mac*", 329 "src/ports/*mozalloc*", 330 "src/ports/*nacl*", 331 "src/ports/*win*", 332 "src/ports/SkDebug_stdio.cpp", 333 "src/ports/SkFontMgr_custom_directory_factory.cpp", 334 "src/ports/SkFontMgr_custom_embedded_factory.cpp", 335 "src/ports/SkFontMgr_custom_empty_factory.cpp", 336 "src/ports/SkFontMgr_empty_factory.cpp", 337 "src/ports/SkFontMgr_fuchsia.cpp", 338 "src/ports/SkImageGenerator_none.cpp", 339 "src/ports/SkTLS_none.cpp", 340 ], 341) 342 343GL_SRCS_IOS = struct( 344 include = [ 345 "src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp", 346 ], 347 exclude = [], 348) 349PORTS_SRCS_IOS = struct( 350 include = [ 351 "src/ports/**/*.cpp", 352 "src/ports/**/*.h", 353 "src/utils/mac/*.cpp", 354 ], 355 exclude = [ 356 "src/ports/*FontConfig*", 357 "src/ports/*FreeType*", 358 "src/ports/*WIC*", 359 "src/ports/*android*", 360 "src/ports/*chromium*", 361 "src/ports/*fontconfig*", 362 "src/ports/*mozalloc*", 363 "src/ports/*nacl*", 364 "src/ports/*win*", 365 "src/ports/SkFontMgr_custom.cpp", 366 "src/ports/SkFontMgr_custom_directory.cpp", 367 "src/ports/SkFontMgr_custom_embedded.cpp", 368 "src/ports/SkFontMgr_custom_empty.cpp", 369 "src/ports/SkFontMgr_custom_directory_factory.cpp", 370 "src/ports/SkFontMgr_custom_embedded_factory.cpp", 371 "src/ports/SkFontMgr_custom_empty_factory.cpp", 372 "src/ports/SkFontMgr_empty_factory.cpp", 373 "src/ports/SkFontMgr_fuchsia.cpp", 374 "src/ports/SkImageGenerator_none.cpp", 375 "src/ports/SkTLS_none.cpp", 376 ], 377) 378 379def base_srcs(): 380 return skia_glob(BASE_SRCS_ALL) 381 382def ports_srcs(os_conditions): 383 return skia_select( 384 os_conditions, 385 [ 386 skia_glob(PORTS_SRCS_UNIX), 387 skia_glob(PORTS_SRCS_ANDROID), 388 skia_glob(PORTS_SRCS_IOS), 389 ], 390 ) 391 392def gl_srcs(os_conditions): 393 return skia_select( 394 os_conditions, 395 [ 396 skia_glob(GL_SRCS_UNIX), 397 skia_glob(GL_SRCS_ANDROID), 398 skia_glob(GL_SRCS_IOS), 399 ], 400 ) 401 402def skia_srcs(os_conditions): 403 return base_srcs() + ports_srcs(os_conditions) + gl_srcs(os_conditions) 404 405################################################################################ 406## INCLUDES 407################################################################################ 408 409# Includes needed by Skia implementation. Not public includes. 410INCLUDES = [ 411 ".", 412 "include/android", 413 "include/c", 414 "include/codec", 415 "include/config", 416 "include/core", 417 "include/docs", 418 "include/effects", 419 "include/encode", 420 "include/gpu", 421 "include/pathops", 422 "include/ports", 423 "include/private", 424 "include/third_party/skcms", 425 "include/utils", 426 "include/utils/mac", 427 "src/codec", 428 "src/core", 429 "src/gpu", 430 "src/image", 431 "src/images", 432 "src/lazy", 433 "src/opts", 434 "src/pdf", 435 "src/ports", 436 "src/sfnt", 437 "src/shaders", 438 "src/shaders/gradients", 439 "src/sksl", 440 "src/utils", 441 "third_party/gif", 442] 443 444################################################################################ 445## DM_SRCS 446################################################################################ 447 448DM_SRCS_ALL = struct( 449 include = [ 450 "dm/*.cpp", 451 "dm/*.h", 452 "experimental/pipe/*.cpp", 453 "experimental/pipe/*.h", 454 "experimental/svg/model/*.cpp", 455 "experimental/svg/model/*.h", 456 "gm/*.cpp", 457 "gm/*.h", 458 "src/utils/SkMultiPictureDocument.cpp", 459 "src/xml/*.cpp", 460 "tests/*.cpp", 461 "tests/*.h", 462 "tools/AutoreleasePool.h", 463 "tools/BigPathBench.inc", 464 "tools/BinaryAsset.h", 465 "tools/CrashHandler.cpp", 466 "tools/CrashHandler.h", 467 "tools/DDLPromiseImageHelper.cpp", 468 "tools/DDLPromiseImageHelper.h", 469 "tools/DDLTileHelper.cpp", 470 "tools/DDLTileHelper.h", 471 "tools/HashAndEncode.cpp", 472 "tools/HashAndEncode.h", 473 "tools/ProcStats.cpp", 474 "tools/ProcStats.h", 475 "tools/Registry.h", 476 "tools/ResourceFactory.h", 477 "tools/Resources.cpp", 478 "tools/Resources.h", 479 "tools/SkMetaData.cpp", 480 "tools/SkMetaData.h", 481 "tools/SkSharingProc.cpp", 482 "tools/SkVMBuilders.cpp", 483 "tools/SkVMBuilders.h", 484 "tools/ToolUtils.cpp", 485 "tools/ToolUtils.h", 486 "tools/UrlDataManager.cpp", 487 "tools/UrlDataManager.h", 488 "tools/debugger/*.cpp", 489 "tools/debugger/*.h", 490 "tools/flags/*.cpp", 491 "tools/flags/*.h", 492 "tools/fonts/RandomScalerContext.cpp", 493 "tools/fonts/RandomScalerContext.h", 494 "tools/fonts/TestFontMgr.cpp", 495 "tools/fonts/TestFontMgr.h", 496 "tools/fonts/TestSVGTypeface.cpp", 497 "tools/fonts/TestSVGTypeface.h", 498 "tools/fonts/TestTypeface.cpp", 499 "tools/fonts/TestTypeface.h", 500 "tools/fonts/ToolUtilsFont.cpp", 501 "tools/fonts/test_font_index.inc", 502 "tools/fonts/test_font_monospace.inc", 503 "tools/fonts/test_font_sans_serif.inc", 504 "tools/fonts/test_font_serif.inc", 505 "tools/gpu/**/*.cpp", 506 "tools/gpu/**/*.h", 507 "tools/ios_utils.h", 508 "tools/random_parse_path.cpp", 509 "tools/random_parse_path.h", 510 "tools/timer/*.cpp", 511 "tools/timer/*.h", 512 "tools/trace/*.cpp", 513 "tools/trace/*.h", 514 ], 515 exclude = [ 516 "gm/cgms.cpp", 517 "gm/fiddle.cpp", 518 "gm/video_decoder.cpp", 519 "tests/FontMgrAndroidParserTest.cpp", # Android-only. 520 "tests/FontMgrFontConfigTest.cpp", # FontConfig-only. 521 "tests/skia_test.cpp", # Old main. 522 "tools/gpu/atlastext/*", 523 "tools/gpu/dawn/*", 524 "tools/gpu/gl/angle/*", 525 "tools/gpu/gl/egl/*", 526 "tools/gpu/gl/glx/*", 527 "tools/gpu/gl/iOS/*", 528 "tools/gpu/gl/mac/*", 529 "tools/gpu/gl/win/*", 530 "tools/timer/SysTimer_mach.cpp", 531 "tools/timer/SysTimer_windows.cpp", 532 ], 533) 534 535################################################################################ 536## dm_srcs() 537################################################################################ 538 539def dm_srcs(os_conditions): 540 """Sources for the dm binary for the specified os.""" 541 return skia_glob(DM_SRCS_ALL) + skia_select( 542 os_conditions, 543 [ 544 ["tests/FontMgrFontConfigTest.cpp"], 545 ["tests/FontMgrAndroidParserTest.cpp"], 546 [], 547 ], 548 ) 549 550################################################################################ 551## DM_ARGS 552################################################################################ 553 554def DM_ARGS(asan): 555 source = ["gm", "image", "lottie"] 556 557 # TODO(benjaminwagner): f16, pic-8888, serialize-8888, and tiles_rt-8888 fail. 558 config = ["565", "8888", "pdf"] 559 match = ["~Codec_78329453"] 560 return (["--src"] + source + ["--config"] + config + ["--nonativeFonts"] + 561 ["--match"] + match) 562 563################################################################################ 564## COPTS 565################################################################################ 566 567def base_copts(os_conditions): 568 return skia_select( 569 os_conditions, 570 [ 571 # UNIX 572 [ 573 "-Wno-implicit-fallthrough", # Some intentional fallthrough. 574 # Internal use of deprecated methods. :( 575 "-Wno-deprecated-declarations", 576 # TODO(kjlubick) 577 "-Wno-self-assign", # Spurious warning in tests/PathOpsDVectorTest.cpp? 578 ], 579 # ANDROID 580 [ 581 "-Wno-implicit-fallthrough", # Some intentional fallthrough. 582 # 'GrResourceCache' declared with greater visibility than the 583 # type of its field 'GrResourceCache::fPurgeableQueue'... bogus. 584 "-Wno-error=attributes", 585 ], 586 # IOS 587 [ 588 "-Wno-implicit-fallthrough", # Some intentional fallthrough. 589 ], 590 ], 591 ) 592 593################################################################################ 594## DEFINES 595################################################################################ 596 597def base_defines(os_conditions): 598 return [ 599 # Chrome DEFINES. 600 "SK_USE_FREETYPE_EMBOLDEN", 601 # Turn on a few Google3-specific build fixes. 602 "SK_BUILD_FOR_GOOGLE3", 603 # Required for building dm. 604 "GR_TEST_UTILS", 605 # Google3 probably doesn't want this feature yet 606 "SK_DISABLE_REDUCE_OPLIST_SPLITTING", 607 # Staging flags for API changes 608 # Should remove after we update golden images 609 "SK_WEBP_ENCODER_USE_DEFAULT_METHOD", 610 # Experiment to diagnose image diffs in Google3 611 "SK_DISABLE_LOWP_RASTER_PIPELINE", 612 # JPEG is in codec_limited 613 "SK_HAS_JPEG_LIBRARY", 614 # Needed for some tests in dm 615 "SK_ENABLE_SKSL_INTERPRETER", 616 ] + skia_select( 617 os_conditions, 618 [ 619 # UNIX 620 [ 621 "PNG_SKIP_SETJMP_CHECK", 622 "SK_BUILD_FOR_UNIX", 623 "SK_R32_SHIFT=16", 624 "SK_PDF_USE_SFNTLY", 625 "SK_HAS_PNG_LIBRARY", 626 "SK_HAS_WEBP_LIBRARY", 627 ], 628 # ANDROID 629 [ 630 "SK_BUILD_FOR_ANDROID", 631 "SK_HAS_PNG_LIBRARY", 632 "SK_HAS_WEBP_LIBRARY", 633 ], 634 # IOS 635 [ 636 "SK_BUILD_FOR_IOS", 637 "SK_BUILD_NO_OPTS", 638 "SKNX_NO_SIMD", 639 ], 640 ], 641 ) 642 643################################################################################ 644## LINKOPTS 645################################################################################ 646 647def base_linkopts(os_conditions): 648 return [ 649 "-ldl", 650 ] + skia_select( 651 os_conditions, 652 [ 653 # UNIX 654 [], 655 # ANDROID 656 [ 657 "-lEGL", 658 "-lGLESv2", 659 ], 660 # IOS 661 [ 662 "-framework CoreFoundation", 663 "-framework CoreGraphics", 664 "-framework CoreText", 665 "-framework ImageIO", 666 "-framework MobileCoreServices", 667 ], 668 ], 669 ) 670 671################################################################################ 672## sksg_lib 673################################################################################ 674 675def sksg_lib_hdrs(): 676 return native.glob(["modules/sksg/include/*.h"]) 677 678def sksg_lib_srcs(): 679 return native.glob([ 680 "modules/sksg/src/*.cpp", 681 "modules/sksg/src/*.h", 682 ]) 683 684################################################################################ 685## skparagraph_lib 686################################################################################ 687 688def skparagraph_lib_hdrs(): 689 return native.glob(["modules/skparagraph/include/*.h"]) 690 691def skparagraph_lib_srcs(): 692 return native.glob(["modules/skparagraph/src/*.cpp"]) 693 694################################################################################ 695## experimental xform 696################################################################################ 697 698def exp_xform_lib_hdrs(): 699 return native.glob(["experimental/xform/*.h"]) 700 701def exp_xform_lib_srcs(): 702 return native.glob(["experimental/xform/*.cpp"]) 703 704################################################################################ 705## skottie_lib 706################################################################################ 707 708def skottie_lib_hdrs(): 709 return native.glob(["modules/skottie/include/*.h"]) 710 711def skottie_lib_srcs(): 712 return native.glob( 713 [ 714 "modules/skottie/src/*.cpp", 715 "modules/skottie/src/*.h", 716 "modules/skottie/src/effects/*.cpp", 717 "modules/skottie/src/effects/*.h", 718 "modules/skottie/src/layers/*.cpp", 719 "modules/skottie/src/layers/*.h", 720 "modules/skottie/src/text/*.cpp", 721 "modules/skottie/src/text/*.h", 722 ], 723 exclude = [ 724 "modules/skottie/src/SkottieTest.cpp", 725 "modules/skottie/src/SkottieTool.cpp", 726 ], 727 ) 728 729################################################################################ 730## skottie_shaper 731################################################################################ 732 733SKOTTIE_SHAPER_HDRS = [ 734 "modules/skottie/src/text/SkottieShaper.h", 735] 736 737SKOTTIE_SHAPER_SRCS = [ 738 "modules/skottie/src/text/SkottieShaper.cpp", 739] 740 741################################################################################ 742## skottie_tool 743################################################################################ 744 745SKOTTIE_TOOL_SRCS = [ 746 "modules/skottie/src/SkottieTool.cpp", 747 "modules/skottie/utils/SkottieUtils.cpp", 748 "modules/skottie/utils/SkottieUtils.h", 749 # TODO(benjaminwagner): Add "flags" target. 750 "tools/flags/CommandLineFlags.cpp", 751 "tools/flags/CommandLineFlags.h", 752] 753 754################################################################################ 755## SkShaper 756################################################################################ 757 758SKSHAPER_HARFBUZZ_SRCS = [ 759 "modules/skshaper/include/SkShaper.h", 760 "modules/skshaper/src/SkShaper.cpp", 761 "modules/skshaper/src/SkShaper_harfbuzz.cpp", 762 "modules/skshaper/src/SkShaper_primitive.cpp", 763] 764 765SKSHAPER_PRIMITIVE_SRCS = [ 766 "modules/skshaper/include/SkShaper.h", 767 "modules/skshaper/src/SkShaper.cpp", 768 "modules/skshaper/src/SkShaper_primitive.cpp", 769] 770