xref: /aosp_15_r20/external/skia/modules/skcms/BUILD.bazel (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1load("//bazel:skia_rules.bzl", "skia_cc_library", "skia_filegroup")
2load("@skia_user_config//:copts.bzl", "DEFAULT_COPTS")
3
4package(
5    default_applicable_licenses = ["//:license"],
6)
7
8licenses(["notice"])
9
10# A separate group duplicating :skcms.hdrs for
11# export to //modules/skcms/skcms.gni:skcms_public_headers.
12skia_filegroup(
13    name = "public_hdrs",
14    srcs = ["skcms.h"],
15)
16
17# A separate group duplicating :skcms.srcs for
18# export to //modules/skcms/skcms.gni:skcms_sources.
19skia_filegroup(
20    name = "srcs",
21    srcs = [
22        "skcms.cc",
23        "src/skcms_Transform.h",
24        "src/skcms_TransformBaseline.cc",
25        "src/skcms_TransformHsw.cc",
26        "src/skcms_TransformSkx.cc",
27        "src/skcms_internals.h",
28        "src/skcms_public.h",
29    ],
30)
31
32# A separate group duplicating :skcms.textual_hdrs for
33# export to //modules/skcms/skcms.gni:skcms_sources.
34skia_filegroup(
35    name = "textual_hdrs",
36    srcs = [
37        "src/Transform_inl.h",
38    ],
39)
40
41skia_cc_library(
42    name = "skcms",
43    hdrs = [
44        "skcms.h",
45    ],
46    visibility = ["//:__subpackages__"],
47    deps = [
48        ":skcms_TransformBaseline",
49        ":skcms_TransformHsw",
50        ":skcms_TransformSkx",
51        ":skcms_public",
52    ],
53)
54
55skia_cc_library(
56    name = "skcms_public",
57    srcs = [
58        "skcms.cc",
59        "src/skcms_internals.h",
60        "src/skcms_public.h",
61    ],
62    hdrs = [
63        "skcms.h",
64    ],
65    deps = [":skcms_TransformBaseline"] +
66           select({
67               "@platforms//cpu:x86_64": [
68                   ":skcms_TransformHsw",
69                   ":skcms_TransformSkx",
70               ],
71               "//conditions:default": [],
72           }),
73)
74
75skia_cc_library(
76    name = "skcms_TransformBaseline",
77    srcs = [
78        "src/skcms_Transform.h",
79        "src/skcms_TransformBaseline.cc",
80        "src/skcms_internals.h",
81        "src/skcms_public.h",
82    ],
83    # This header does not compile on its own and is meant to be included from skcms_Transform*.cc
84    textual_hdrs = [
85        "src/Transform_inl.h",
86    ],
87)
88
89skia_cc_library(
90    name = "skcms_TransformHsw",
91    srcs = [
92        "src/skcms_Transform.h",
93        "src/skcms_TransformHsw.cc",
94        "src/skcms_internals.h",
95        "src/skcms_public.h",
96    ],
97    copts = DEFAULT_COPTS + select({
98        "@platforms//cpu:x86_64": ["-march=haswell"],
99        "//conditions:default": [],
100    }),
101    # This header does not compile on its own and is meant to be included from skcms_Transform*.cc
102    textual_hdrs = [
103        "src/Transform_inl.h",
104    ],
105)
106
107skia_cc_library(
108    name = "skcms_TransformSkx",
109    srcs = [
110        "src/skcms_Transform.h",
111        "src/skcms_TransformSkx.cc",
112        "src/skcms_internals.h",
113        "src/skcms_public.h",
114    ],
115    copts = DEFAULT_COPTS + select({
116        "@platforms//cpu:x86_64": ["-march=skylake-avx512"],
117        "//conditions:default": [],
118    }),
119    # This header does not compile on its own and is meant to be included from skcms_Transform*.cc
120    textual_hdrs = [
121        "src/Transform_inl.h",
122    ],
123)
124