1load("//bazel:flags.bzl", "selects") 2load( 3 "//bazel:skia_rules.bzl", 4 "exports_files_legacy", 5 "select_multi", 6 "skia_cc_deps", 7 "skia_cc_library", 8 "skia_filegroup", 9 "skia_objc_library", 10) 11 12package( 13 default_applicable_licenses = ["//:license"], 14) 15 16licenses(["notice"]) 17 18exports_files_legacy() 19 20skia_filegroup( 21 name = "discardable_memory_pool", 22 srcs = select({ 23 "//src/lazy:use_default_global_memory_pool_true": ["SkDiscardableMemory_none.cpp"], 24 "//conditions:default": [], 25 }), 26) 27 28# Any setting that causes this skia_filegroup to be included also needs to have a dependency on freetype. 29# See "deps" and "uses_freetype" at the bottom of this file. 30skia_filegroup( 31 name = "typeface_freetype", 32 srcs = [ 33 "SkFontHost_FreeType.cpp", 34 "SkFontHost_FreeType_common.cpp", 35 ], 36) 37 38skia_filegroup( 39 name = "typeface_freetype_hdrs", 40 srcs = [ 41 "SkFontHost_FreeType_common.h", 42 "SkTypeface_FreeType.h", 43 ], 44) 45 46skia_filegroup( 47 name = "typeface_fontations", 48 srcs = select({ 49 "//bazel/common_config_settings:use_fontations_true": [ 50 ":typeface_fontations_hdrs", 51 ":typeface_fontations_srcs", 52 ], 53 "//conditions:default": [], 54 }), 55) 56 57skia_filegroup( 58 name = "fontmgr", 59 srcs = select_multi( 60 { 61 "//bazel/common_config_settings:android_fontmgr": [ 62 ":fontmgr_android_srcs", 63 ":typeface_freetype", 64 ], 65 "//bazel/common_config_settings:custom_directory_fontmgr": [":fontmgr_custom_directory"], 66 "//bazel/common_config_settings:custom_embedded_fontmgr": [":fontmgr_custom_embedded"], 67 "//bazel/common_config_settings:custom_empty_fontmgr": [":fontmgr_custom_empty"], 68 "//bazel/common_config_settings:fci_fontmgr": [":fontmgr_fci"], 69 }, 70 ) + select({ 71 "@platforms//os:linux": [":legacy_fontmgr_fontconfig"], 72 "//conditions:default": [], 73 }), 74) 75 76skia_filegroup( 77 name = "fontmgr_android_srcs", 78 srcs = [ 79 "SkFontMgr_android.cpp", 80 "SkFontMgr_android_parser.cpp", 81 ], 82) 83 84skia_filegroup( 85 name = "fontmgr_android_hdrs", 86 srcs = [ 87 "SkFontMgr_android_parser.h", 88 ], 89) 90 91skia_filegroup( 92 name = "legacy_fontmgr_custom", 93 srcs = [ 94 "SkFontMgr_custom.cpp", 95 ":typeface_freetype", 96 ], 97) 98 99skia_filegroup( 100 name = "fontmgr_custom_directory", 101 srcs = [ 102 "SkFontMgr_custom_directory.cpp", 103 ":legacy_fontmgr_custom", 104 ], 105) 106 107skia_filegroup( 108 name = "fontmgr_custom_embedded", 109 srcs = [ 110 "SkFontMgr_custom_embedded.cpp", 111 ":legacy_fontmgr_custom", 112 ], 113) 114 115skia_filegroup( 116 name = "fontmgr_custom_empty", 117 srcs = [ 118 "SkFontMgr_custom_empty.cpp", 119 ":legacy_fontmgr_custom", 120 ], 121) 122 123# Any setting that causes this skia_filegroup to be included also needs to have a dependency on 124# fontconfig. See "deps" and "uses_fontconfig" at the bottom of this file. 125skia_filegroup( 126 name = "legacy_fontmgr_fontconfig", 127 srcs = [ 128 "SkFontMgr_fontconfig.cpp", 129 ":typeface_freetype", 130 ], 131) 132 133# TODO(bungeman, kjlubick) break this up into the direct and Interface part. 134# Alternatively, delete it. 135# Any setting that causes this skia_filegroup to be included also needs to have a dependency on 136# fontconfig. See "deps" and "uses_fontconfig" at the bottom of this file. 137skia_filegroup( 138 name = "fontmgr_fci", 139 srcs = [ 140 ":fontconfig_interface_srcs", 141 ":typeface_freetype", 142 ], 143) 144 145skia_filegroup( 146 name = "fontconfig_interface_srcs", 147 srcs = [ 148 "SkFontConfigInterface.cpp", 149 "SkFontConfigInterface_direct.cpp", 150 "SkFontConfigInterface_direct_factory.cpp", 151 "SkFontConfigTypeface.h", 152 "SkFontMgr_FontConfigInterface.cpp", 153 ], 154) 155 156skia_filegroup( 157 name = "global_init", 158 srcs = ["SkGlobalInitialization_default.cpp"], 159) 160 161# In own group to prevent exporting to *.gni files. 162skia_filegroup( 163 name = "osfile_platform", 164 srcs = select({ 165 "@platforms//os:windows": [":osfile_win"], 166 "@platforms//os:ios": [ 167 "SkOSFile_ios.h", 168 ":osfile_posix", 169 "//include/ports:core_foundation_hdrs", 170 ], 171 "//conditions:default": [":osfile_posix"], 172 }), 173) 174 175skia_filegroup( 176 name = "osfile", 177 srcs = [ 178 "SkOSFile_stdio.cpp", 179 ":osfile_platform", 180 ], 181 visibility = ["//tools/skslc:__pkg__"], 182) 183 184skia_filegroup( 185 name = "osfile_posix", 186 srcs = ["SkOSFile_posix.cpp"], 187) 188 189skia_filegroup( 190 name = "osfile_win", 191 srcs = ["SkOSFile_win.cpp"], 192) 193 194skia_filegroup( 195 name = "malloc", 196 srcs = ["SkMemory_malloc.cpp"], # TODO(kjlubick) add select() if necessary 197) 198 199skia_filegroup( 200 name = "load_dynamic_library", 201 srcs = ["SkOSLibrary.h"] + select({ 202 "@platforms//os:windows": ["SkOSLibrary_win.cpp"], 203 "//conditions:default": ["SkOSLibrary_posix.cpp"], 204 }), 205 visibility = ["//tools/gpu:__pkg__"], 206) 207 208skia_filegroup( 209 name = "skdebug", 210 srcs = select({ 211 "@platforms//os:windows": ["SkDebug_win.cpp"], 212 "@platforms//os:android": ["SkDebug_android.cpp"], 213 "//conditions:default": ["SkDebug_stdio.cpp"], 214 }), 215) 216 217skia_filegroup( 218 name = "srcs", 219 srcs = [ 220 ":discardable_memory_pool", 221 ":fontmgr", 222 ":global_init", 223 ":load_dynamic_library", 224 ":malloc", 225 ":osfile", 226 ":skdebug", 227 ":typeface_fontations", 228 ], 229 visibility = ["//src:__pkg__"], 230) 231 232skia_filegroup( 233 name = "private_hdrs", 234 srcs = [ 235 "SkOSLibrary.h", 236 ] + select({ 237 ":uses_freetype": [ 238 "SkFontHost_FreeType_common.h", 239 "SkFontMgr_custom.h", 240 "SkTypeface_FreeType.h", 241 ], 242 "//conditions:default": [], 243 }) + select({ 244 "@platforms//os:ios": ["SkOSFile_ios.h"], 245 "//conditions:default": [], 246 }) + select({ 247 "//bazel/common_config_settings:android_fontmgr": [":fontmgr_android_hdrs"], 248 "//conditions:default": [], 249 }) + select({ 250 "//bazel/common_config_settings:fci_fontmgr": [ 251 "SkFontConfigInterface_direct.h", 252 "SkFontConfigTypeface.h", 253 ], 254 "//conditions:default": [], 255 }) + select({ 256 "//bazel/common_config_settings:use_fontations_true": [ 257 "SkFontScanner_fontations.h", 258 ":typeface_fontations_hdrs", 259 ], 260 "//conditions:default": [], 261 }), 262 visibility = ["//src:__pkg__"], 263) 264 265selects.config_setting_group( 266 name = "uses_freetype", 267 match_any = [ 268 "//bazel/common_config_settings:android_fontmgr", 269 "//bazel/common_config_settings:custom_directory_fontmgr", 270 "//bazel/common_config_settings:custom_embedded_fontmgr", 271 "//bazel/common_config_settings:custom_empty_fontmgr", 272 "//bazel/common_config_settings:fontconfig_fontmgr", 273 "//bazel/common_config_settings:fci_fontmgr", 274 "@platforms//os:linux", 275 ], 276) 277 278selects.config_setting_group( 279 name = "uses_fontconfig", 280 match_any = [ 281 "//bazel/common_config_settings:fontconfig_fontmgr", 282 "//bazel/common_config_settings:fci_fontmgr", 283 "@platforms//os:linux", 284 ], 285) 286 287selects.config_setting_group( 288 name = "uses_fontations", 289 match_any = [ 290 "//bazel/common_config_settings:use_fontations_true", 291 ], 292) 293 294skia_cc_deps( 295 name = "deps", 296 linkopts = select({ 297 "@platforms//os:linux": ["-ldl"], 298 "@platforms//os:android": [ 299 "-llog", # Provides __android_log_vprint, needed by //src/ports/SkDebug_android.cpp. 300 ], 301 "//conditions:default": [], 302 }), 303 visibility = ["//src:__pkg__"], 304 deps = select({ 305 ":uses_freetype": ["@freetype"], 306 "//conditions:default": [], 307 }) + select({ 308 ":uses_fontconfig": ["//bazel/external/fontconfig"], 309 "//conditions:default": [], 310 }) + select({ 311 "//bazel/common_config_settings:android_fontmgr": ["@expat"], 312 "//conditions:default": [], 313 }) + select({ 314 "//bazel/common_config_settings:use_fontations_true": [ 315 ":fontmgr_fontations_empty", 316 "//src/ports/fontations:deps", 317 ], 318 "//conditions:default": [], 319 }), 320) 321 322skia_filegroup( 323 name = "base_srcs", 324 srcs = [ 325 ":skdebug", 326 # TODO(kjlubick) Chromium will need a way to overwrite the malloc impls. Having malloc 327 # be a module doesn't quite work because ld complains "backward reference detected" 328 # when something in a module like pathops uses malloc without depending on it. 329 ":malloc", 330 ], 331 visibility = ["//src/base:__pkg__"], 332) 333 334skia_filegroup( 335 name = "core_srcs", 336 srcs = [ 337 ":global_init", 338 ":osfile", 339 ], 340 visibility = ["//src/core:__pkg__"], 341) 342 343skia_filegroup( 344 name = "fontmgr_custom_srcs", 345 srcs = [ 346 "SkFontMgr_custom.cpp", 347 ], 348) 349 350skia_filegroup( 351 name = "fontmgr_custom_hdrs", 352 srcs = [ 353 "SkFontMgr_custom.h", 354 ], 355) 356 357skia_cc_library( 358 name = "fontmgr_custom", 359 srcs = [":fontmgr_custom_srcs"], 360 hdrs = [":fontmgr_custom_hdrs"], 361 deps = [ 362 ":freetype_support", 363 "//src/base", 364 "//src/core", 365 "//src/core:core_priv", 366 ], 367) 368 369skia_cc_library( 370 name = "freetype_support", 371 srcs = [ 372 ":typeface_freetype", 373 "//src/utils:char_to_glyphcache", 374 ], 375 hdrs = [":typeface_freetype_hdrs"], 376 deps = [ 377 "//:core", 378 "//:pathops", 379 "@freetype", 380 ], 381) 382 383skia_cc_library( 384 name = "fontmgr_android_freetype", 385 srcs = [ 386 ":fontmgr_android_srcs", 387 ], 388 hdrs = [ 389 ":fontmgr_android_hdrs", 390 "//include/ports:android_fontmgr_hdrs", 391 ], 392 defines = ["SK_FONTMGR_ANDROID_AVAILABLE"], 393 visibility = ["//:__pkg__"], 394 deps = [ 395 ":freetype_support", 396 "//:core", 397 "//src/base", 398 "//src/core:core_priv", 399 "@expat", 400 ], 401) 402 403skia_filegroup( 404 name = "fontmgr_coretext_srcs", 405 srcs = ["SkFontMgr_mac_ct.cpp"], 406) 407 408skia_objc_library( 409 name = "fontmgr_coretext", 410 srcs = [ 411 ":fontmgr_coretext_srcs", 412 ], 413 hdrs = [ 414 "//include/ports:coretext_fontmgr_hdrs", 415 ], 416 defines = ["SK_FONTMGR_CORETEXT_AVAILABLE"], 417 features = ["layering_check"], 418 ios_frameworks = [ 419 "CoreText", 420 "CoreGraphics", 421 "CoreFoundation", 422 ], 423 mac_frameworks = [ 424 "ApplicationServices", 425 "CoreFoundation", 426 "CoreText", 427 ], 428 visibility = ["//:__pkg__"], 429 deps = [ 430 ":coretext_typeface", 431 "//:core", 432 "//src/base", 433 "//src/core:core_priv", 434 ], 435) 436 437skia_cc_library( 438 name = "fontmgr_data_freetype", 439 srcs = [ 440 "SkFontMgr_custom_embedded.cpp", 441 ], 442 hdrs = [ 443 "//include/ports:data_fontmgr_hdrs", 444 ], 445 defines = ["SK_FONTMGR_FREETYPE_DATA_AVAILABLE"], 446 features = ["layering_check"], 447 visibility = ["//:__pkg__"], 448 deps = [ 449 ":fontmgr_custom", 450 ":freetype_support", 451 "//:core", 452 "//src/base", 453 "//src/core:core_priv", 454 ], 455) 456 457skia_cc_library( 458 name = "fontmgr_directory_freetype", 459 srcs = [ 460 "SkFontMgr_custom_directory.cpp", 461 ], 462 hdrs = [ 463 "//include/ports:directory_fontmgr_hdrs", 464 ], 465 defines = ["SK_FONTMGR_FREETYPE_DIRECTORY_AVAILABLE"], 466 features = ["layering_check"], 467 visibility = ["//:__pkg__"], 468 deps = [ 469 ":fontmgr_custom", 470 ":freetype_support", 471 "//:core", 472 "//src/base", 473 "//src/core:core_priv", 474 ], 475) 476 477skia_cc_library( 478 name = "fontmgr_empty_freetype", 479 srcs = [ 480 "SkFontMgr_custom_empty.cpp", 481 ], 482 hdrs = [ 483 "//include/ports:empty_fontmgr_hdrs", 484 ], 485 defines = ["SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE"], 486 features = ["layering_check"], 487 visibility = ["//:__pkg__"], 488 deps = [ 489 ":fontmgr_custom", 490 ":freetype_support", 491 "//:core", 492 "//src/base", 493 "//src/core:core_priv", 494 ], 495) 496 497skia_filegroup( 498 name = "typeface_fontations_hdrs", 499 srcs = ["SkTypeface_fontations_priv.h"], 500) 501 502skia_filegroup( 503 name = "typeface_fontations_srcs", 504 srcs = ["SkTypeface_fontations.cpp"], 505) 506 507skia_filegroup( 508 name = "fontmgr_fontations_empty_srcs", 509 srcs = ["SkFontMgr_fontations_empty.cpp"], 510) 511 512skia_cc_library( 513 name = "fontmgr_fontations_empty", 514 srcs = [ 515 ":fontmgr_fontations_empty_srcs", 516 ":typeface_fontations", 517 "//include/ports:typeface_fontations_hdrs", 518 ], 519 hdrs = [ 520 "//include/ports:fontmgr_fontations_hdrs", 521 ], 522 defines = ["SK_FONTMGR_FONTATIONS_AVAILABLE"], 523 visibility = [ 524 "//:__pkg__", 525 "//tools/fonts:__pkg__", 526 ], 527 deps = [ 528 "//:core", 529 "//:pathops", 530 "//src/ports/fontations:deps", 531 ], 532) 533 534skia_cc_library( 535 name = "fontmgr_fontconfig_freetype", 536 srcs = [ 537 "SkFontMgr_fontconfig.cpp", 538 ], 539 hdrs = [ 540 "//include/ports:fontconfig_fontmgr_hdrs", 541 ], 542 defines = ["SK_FONTMGR_FONTCONFIG_AVAILABLE"], 543 visibility = ["//:__pkg__"], 544 deps = [ 545 ":freetype_support", 546 "//:core", 547 "//bazel/external/fontconfig", 548 "//src/base", 549 "//src/core:core_priv", 550 ], 551) 552 553skia_filegroup( 554 name = "typeface_mac_hdrs", 555 srcs = ["SkTypeface_mac_ct.h"], 556 visibility = ["//src/utils/mac:__pkg__"], 557) 558 559skia_filegroup( 560 name = "typeface_mac_srcs", 561 srcs = [ 562 "SkScalerContext_mac_ct.cpp", 563 "SkScalerContext_mac_ct.h", 564 "SkTypeface_mac_ct.cpp", 565 ], 566) 567 568skia_objc_library( 569 name = "coretext_typeface", 570 srcs = [ 571 ":typeface_mac_srcs", 572 ], 573 hdrs = [ 574 ":typeface_mac_hdrs", 575 "//include/ports:mac_typeface", 576 ], 577 features = ["layering_check"], 578 ios_frameworks = [ 579 "CoreFoundation", 580 "CoreGraphics", 581 "CoreText", 582 ], 583 mac_frameworks = ["ApplicationServices"], 584 visibility = [ 585 "//:__pkg__", 586 "//modules/skshaper:__pkg__", 587 ], 588 deps = [ 589 "//:core", 590 "//src/base", 591 "//src/core:core_priv", 592 "//src/utils/mac:mac_utils_priv", 593 ], 594) 595 596skia_objc_library( 597 name = "imagegenerator_coregraphics", 598 srcs = [ 599 "SkImageGeneratorCG.cpp", 600 ], 601 hdrs = [ 602 "//include/ports:imagegenerator_cg_hdrs", 603 ], 604 features = ["layering_check"], 605 ios_frameworks = [ 606 "CoreGraphics", 607 "ImageIO", 608 "MobileCoreServices", 609 ], 610 mac_frameworks = ["ApplicationServices"], 611 visibility = ["//:__pkg__"], 612 deps = [ 613 "//:core", 614 "//src/base", 615 "//src/codec:any_decoder", 616 "//src/core:core_priv", 617 "//src/utils/mac:mac_utils_priv", 618 ], 619) 620 621skia_filegroup( 622 name = "windows_fonts_srcs", 623 srcs = [ 624 "SkFontMgr_win_dw.cpp", 625 "SkScalerContext_win_dw.cpp", 626 "SkScalerContext_win_dw.h", 627 "SkTypeface_win_dw.cpp", 628 "SkTypeface_win_dw.h", 629 ], 630) 631 632skia_filegroup( 633 name = "fontmgr_fuchsia_srcs", 634 srcs = ["SkFontMgr_fuchsia.cpp"], 635) 636 637skia_filegroup( 638 name = "fonthost_win_srcs", 639 srcs = ["SkFontHost_win.cpp"], 640) 641