1*c8dee2aaSAndroid Build Coastguard Worker""" 2*c8dee2aaSAndroid Build Coastguard WorkerSkOpts is built differently than the rest of our source files. See //src/core/SkOpts.h for 3*c8dee2aaSAndroid Build Coastguard Workera bit more background about what SkOpts is for and how it works. 4*c8dee2aaSAndroid Build Coastguard Worker 5*c8dee2aaSAndroid Build Coastguard WorkerInstead of bubbling all the headers and sources up to the top level where they are compiled in 6*c8dee2aaSAndroid Build Coastguard Workerone large library, we only bubble up the headers, so the default implementations in those files 7*c8dee2aaSAndroid Build Coastguard Workercan be built against the minimum version of Skia (which the whole library is compiled with). 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard WorkerWe create several libraries that contain a single source file and may need to access any of 10*c8dee2aaSAndroid Build Coastguard WorkerSkia's headers. These libraries are each compiled with a different set of compiler flags 11*c8dee2aaSAndroid Build Coastguard Worker(e.g. architecture options) and linked into the final library or binary. 12*c8dee2aaSAndroid Build Coastguard Worker""" 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard Workerload("@skia_user_config//:copts.bzl", "DEFAULT_COPTS") 15*c8dee2aaSAndroid Build Coastguard Workerload("//bazel:flags.bzl", "selects") 16*c8dee2aaSAndroid Build Coastguard Workerload("//bazel:skia_rules.bzl", "skia_cc_library", "skia_filegroup") 17*c8dee2aaSAndroid Build Coastguard Worker 18*c8dee2aaSAndroid Build Coastguard Workerpackage( 19*c8dee2aaSAndroid Build Coastguard Worker default_applicable_licenses = ["//:license"], 20*c8dee2aaSAndroid Build Coastguard Worker features = [ 21*c8dee2aaSAndroid Build Coastguard Worker # While the OPTS_HDRS are already pulled in as textual_headers, 22*c8dee2aaSAndroid Build Coastguard Worker # any implicit dependency on the system headers also needs to be textual. 23*c8dee2aaSAndroid Build Coastguard Worker "-use_header_modules", 24*c8dee2aaSAndroid Build Coastguard Worker ], 25*c8dee2aaSAndroid Build Coastguard Worker) 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Workerlicenses(["notice"]) 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Workerskia_cc_library( 30*c8dee2aaSAndroid Build Coastguard Worker name = "hsw", # https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2 31*c8dee2aaSAndroid Build Coastguard Worker srcs = [ 32*c8dee2aaSAndroid Build Coastguard Worker "SkOpts_hsw.cpp", 33*c8dee2aaSAndroid Build Coastguard Worker "//include/core:opts_srcs", 34*c8dee2aaSAndroid Build Coastguard Worker "//include/private:opts_srcs", 35*c8dee2aaSAndroid Build Coastguard Worker "//src/core:opts_srcs", 36*c8dee2aaSAndroid Build Coastguard Worker "//src/shaders:opts_srcs", 37*c8dee2aaSAndroid Build Coastguard Worker "//src/sksl/tracing:opts_srcs", 38*c8dee2aaSAndroid Build Coastguard Worker ], 39*c8dee2aaSAndroid Build Coastguard Worker copts = DEFAULT_COPTS + ["-march=haswell"], 40*c8dee2aaSAndroid Build Coastguard Worker textual_hdrs = [ 41*c8dee2aaSAndroid Build Coastguard Worker "SkRasterPipeline_opts.h", 42*c8dee2aaSAndroid Build Coastguard Worker ":textual_hdrs", 43*c8dee2aaSAndroid Build Coastguard Worker ], 44*c8dee2aaSAndroid Build Coastguard Worker deps = [ 45*c8dee2aaSAndroid Build Coastguard Worker "//modules/skcms", # Needed to implement SkRasterPipeline_opts.h 46*c8dee2aaSAndroid Build Coastguard Worker "//src/base", 47*c8dee2aaSAndroid Build Coastguard Worker "@skia_user_config//:user_config", 48*c8dee2aaSAndroid Build Coastguard Worker ], 49*c8dee2aaSAndroid Build Coastguard Worker) 50*c8dee2aaSAndroid Build Coastguard Worker 51*c8dee2aaSAndroid Build Coastguard Workerskia_cc_library( 52*c8dee2aaSAndroid Build Coastguard Worker name = "skx", 53*c8dee2aaSAndroid Build Coastguard Worker srcs = [ 54*c8dee2aaSAndroid Build Coastguard Worker "SkOpts_skx.cpp", 55*c8dee2aaSAndroid Build Coastguard Worker "//include/core:opts_srcs", 56*c8dee2aaSAndroid Build Coastguard Worker "//include/private:opts_srcs", 57*c8dee2aaSAndroid Build Coastguard Worker "//src/core:opts_srcs", 58*c8dee2aaSAndroid Build Coastguard Worker "//src/shaders:opts_srcs", 59*c8dee2aaSAndroid Build Coastguard Worker "//src/sksl/tracing:opts_srcs", 60*c8dee2aaSAndroid Build Coastguard Worker ], 61*c8dee2aaSAndroid Build Coastguard Worker copts = DEFAULT_COPTS + ["-march=skylake-avx512"], 62*c8dee2aaSAndroid Build Coastguard Worker textual_hdrs = [ 63*c8dee2aaSAndroid Build Coastguard Worker "SkRasterPipeline_opts.h", 64*c8dee2aaSAndroid Build Coastguard Worker ":textual_hdrs", 65*c8dee2aaSAndroid Build Coastguard Worker ], 66*c8dee2aaSAndroid Build Coastguard Worker deps = [ 67*c8dee2aaSAndroid Build Coastguard Worker "//modules/skcms", # Needed to implement SkRasterPipeline_opts.h 68*c8dee2aaSAndroid Build Coastguard Worker "//src/base", 69*c8dee2aaSAndroid Build Coastguard Worker "@skia_user_config//:user_config", 70*c8dee2aaSAndroid Build Coastguard Worker ], 71*c8dee2aaSAndroid Build Coastguard Worker) 72*c8dee2aaSAndroid Build Coastguard Worker 73*c8dee2aaSAndroid Build Coastguard Workerskia_cc_library( 74*c8dee2aaSAndroid Build Coastguard Worker name = "opts", 75*c8dee2aaSAndroid Build Coastguard Worker visibility = ["//src/core:__pkg__"], 76*c8dee2aaSAndroid Build Coastguard Worker deps = selects.with_or({ 77*c8dee2aaSAndroid Build Coastguard Worker ("@platforms//cpu:x86_64", "@platforms//cpu:x86_32"): [ 78*c8dee2aaSAndroid Build Coastguard Worker ":hsw", 79*c8dee2aaSAndroid Build Coastguard Worker ":skx", 80*c8dee2aaSAndroid Build Coastguard Worker ], 81*c8dee2aaSAndroid Build Coastguard Worker "//bazel/common_config_settings:cpu_wasm": [], 82*c8dee2aaSAndroid Build Coastguard Worker "//conditions:default": [], 83*c8dee2aaSAndroid Build Coastguard Worker }), 84*c8dee2aaSAndroid Build Coastguard Worker) 85*c8dee2aaSAndroid Build Coastguard Worker 86*c8dee2aaSAndroid Build Coastguard Workerskia_filegroup( 87*c8dee2aaSAndroid Build Coastguard Worker name = "textual_hdrs", 88*c8dee2aaSAndroid Build Coastguard Worker srcs = [ 89*c8dee2aaSAndroid Build Coastguard Worker "SkBitmapProcState_opts.h", 90*c8dee2aaSAndroid Build Coastguard Worker "SkBlitMask_opts.h", 91*c8dee2aaSAndroid Build Coastguard Worker "SkBlitRow_opts.h", 92*c8dee2aaSAndroid Build Coastguard Worker "SkMemset_opts.h", 93*c8dee2aaSAndroid Build Coastguard Worker "SkOpts_RestoreTarget.h", 94*c8dee2aaSAndroid Build Coastguard Worker "SkOpts_SetTarget.h", 95*c8dee2aaSAndroid Build Coastguard Worker "SkRasterPipeline_opts.h", 96*c8dee2aaSAndroid Build Coastguard Worker "SkSwizzler_opts.inc", 97*c8dee2aaSAndroid Build Coastguard Worker ], 98*c8dee2aaSAndroid Build Coastguard Worker visibility = [ 99*c8dee2aaSAndroid Build Coastguard Worker "//src/core:__pkg__", 100*c8dee2aaSAndroid Build Coastguard Worker ], 101*c8dee2aaSAndroid Build Coastguard Worker) 102