Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 1 | # https://github.com/bazelbuild/bazel-skylib |
| 2 | load("@bazel_skylib//lib:selects.bzl", "selects") |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 3 | load("//bazel:macros.bzl", "select_multi") |
| 4 | |
| 5 | package(default_visibility = ["//:__subpackages__"]) |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 6 | |
Mike Klein | c1cc1d8 | 2020-09-11 11:11:33 -0500 | [diff] [blame] | 7 | cc_test( |
| 8 | name = "bazel_test", |
Mike Klein | c1cc1d8 | 2020-09-11 11:11:33 -0500 | [diff] [blame] | 9 | size = "small", |
Kevin Lubick | 4d41304 | 2021-10-20 16:20:42 -0400 | [diff] [blame] | 10 | srcs = [ |
| 11 | "//experimental/bazel_test:srcs", |
Kevin Lubick | 97284f2 | 2021-10-26 10:45:12 -0400 | [diff] [blame] | 12 | "//include/config:hdrs", |
| 13 | "//include/core:hdrs", |
| 14 | "//src/ports:skdebug", |
Kevin Lubick | 4d41304 | 2021-10-20 16:20:42 -0400 | [diff] [blame] | 15 | ], |
| 16 | deps = [ |
| 17 | "//third_party:libpng", |
| 18 | "//third_party:musl_compat", |
| 19 | ], |
Mike Klein | c1cc1d8 | 2020-09-11 11:11:33 -0500 | [diff] [blame] | 20 | ) |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 21 | |
| 22 | CORE_SRCS = [ |
| 23 | "//include/private:hdrs", |
| 24 | "//include/third_party:skcms-hdrs", |
Kevin Lubick | ef3d6af | 2021-11-12 11:04:17 -0500 | [diff] [blame] | 25 | "//src/android:srcs", |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 26 | "//src/codec:srcs", |
| 27 | "//src/core:srcs", |
| 28 | "//src/image:srcs", |
| 29 | "//src/images:srcs", |
| 30 | "//src/effects:srcs", |
| 31 | "//src/opts:srcs", |
| 32 | "//src/pathops:srcs", |
Kevin Lubick | 888d4ef | 2021-11-16 14:09:44 -0500 | [diff] [blame] | 33 | "//src/ports:srcs", |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 34 | "//src/sfnt:srcs", |
| 35 | "//src/shaders:srcs", |
| 36 | "//src/utils:srcs", |
| 37 | "//third_party:skcms", |
| 38 | ] + selects.with_or({ |
| 39 | # https://github.com/bazelbuild/bazel-skylib/blob/main/docs/selects_doc.md#selectswith_or |
| 40 | ("//bazel/common_config_settings:gl_backend", "//bazel/common_config_settings:vulkan_backend"): [ |
| 41 | "//src/gpu:srcs", |
| 42 | "//src/sksl:srcs", |
| 43 | # TODO(kjlubick) should mock be test only? |
| 44 | "//include/private:mock-hdrs", |
| 45 | "//src/gpu:mock-srcs", |
| 46 | ], |
| 47 | "//conditions:default": [], |
| 48 | }) |
| 49 | |
| 50 | CORE_HDRS = [ |
Kevin Lubick | ef3d6af | 2021-11-12 11:04:17 -0500 | [diff] [blame] | 51 | "//include/android:hdrs", |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 52 | "//include/codec:hdrs", |
| 53 | "//include/config:hdrs", |
| 54 | "//include/core:hdrs", |
| 55 | "//include/effects:hdrs", |
| 56 | "//include/encode:hdrs", |
| 57 | "//include/pathops:hdrs", |
| 58 | "//include/ports:hdrs", |
| 59 | "//include/utils:base-hdrs", |
| 60 | ] + selects.with_or({ |
| 61 | # https://github.com/bazelbuild/bazel-skylib/blob/main/docs/selects_doc.md#selectswith_or |
| 62 | ("//bazel/common_config_settings:gl_backend", "//bazel/common_config_settings:vulkan_backend"): [ |
| 63 | "//include/sksl:hdrs", |
| 64 | "//include/gpu:hdrs", |
| 65 | # TODO(kjlubick) should mock be test only? |
| 66 | "//include/gpu:mock-hdrs", |
| 67 | ], |
| 68 | "//conditions:default": [], |
| 69 | }) |
| 70 | |
| 71 | # Some of these are documented in SkUserConfig.h |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 72 | CORE_DEFINES = ["SK_HAS_ANDROID_CODEC"] + select({ |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 73 | "//bazel/common_config_settings:debug_build": [ |
| 74 | "SK_DEBUG", |
| 75 | ], |
| 76 | "//bazel/common_config_settings:release_build": [ |
| 77 | "SK_RELEASE", |
| 78 | ], |
| 79 | "//conditions:default": [ |
| 80 | "SK_RELEASE", |
| 81 | ], |
| 82 | }) + select({ |
| 83 | "//bazel/common_config_settings:gl_backend": [ |
| 84 | "SK_GL", |
| 85 | "SK_SUPPORT_GPU=1", |
| 86 | ], |
| 87 | "//bazel/common_config_settings:vulkan_backend": [ |
| 88 | "SK_VULKAN", |
| 89 | "SK_SUPPORT_GPU=1", |
| 90 | ], |
| 91 | "//conditions:default": [ |
| 92 | "SK_SUPPORT_GPU=0", |
| 93 | ], |
| 94 | }) + select({ |
| 95 | "//bazel/common_config_settings:gl_standard": [ |
| 96 | "SK_ASSUME_GL=1", |
| 97 | ], |
| 98 | "//bazel/common_config_settings:gles_standard": [ |
| 99 | "SK_ASSUME_GL_ES=1", |
| 100 | ], |
| 101 | "//bazel/common_config_settings:webgl_standard": [ |
| 102 | "SK_ASSUME_WEBGL=1", |
| 103 | "SK_USE_WEBGL", |
| 104 | ], |
| 105 | "//conditions:default": [], |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 106 | }) + select_multi( |
| 107 | { |
Kevin Lubick | cf1e959 | 2021-11-17 08:05:57 -0500 | [diff] [blame] | 108 | "//bazel/common_config_settings:gif_decode_codec": ["SK_HAS_WUFFS_LIBRARY"], |
| 109 | "//bazel/common_config_settings:jpeg_decode_codec": ["SK_CODEC_DECODES_JPEG"], |
| 110 | "//bazel/common_config_settings:jpeg_encode_codec": ["SK_ENCODE_JPEG"], |
| 111 | "//bazel/common_config_settings:png_decode_codec": ["SK_CODEC_DECODES_PNG"], |
| 112 | "//bazel/common_config_settings:png_encode_codec": ["SK_ENCODE_PNG"], |
| 113 | "//bazel/common_config_settings:raw_decode_codec": [ |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 114 | "SK_CODEC_DECODES_RAW", |
| 115 | "SK_CODEC_DECODES_JPEG", |
| 116 | ], |
Kevin Lubick | cf1e959 | 2021-11-17 08:05:57 -0500 | [diff] [blame] | 117 | "//bazel/common_config_settings:webp_decode_codec": ["SK_CODEC_DECODES_WEBP"], |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 118 | }, |
| 119 | default = [], |
Kevin Lubick | 888d4ef | 2021-11-16 14:09:44 -0500 | [diff] [blame] | 120 | ) + select({ |
| 121 | # working around https://github.com/emscripten-core/emscripten/issues/10072 |
| 122 | "//bazel/common_config_settings:cpu_wasm": ["SK_FORCE_8_BYTE_ALIGNMENT"], |
| 123 | "//conditions:default": [], |
| 124 | }) |
| 125 | |
Kevin Lubick | cf1e959 | 2021-11-17 08:05:57 -0500 | [diff] [blame] | 126 | freetype_fontmgrs = ( |
| 127 | "//bazel/common_config_settings:custom_directory_fontmgr", |
| 128 | "//bazel/common_config_settings:custom_embedded_fontmgr", |
| 129 | "//bazel/common_config_settings:custom_empty_fontmgr", |
| 130 | ) |
| 131 | |
| 132 | selects.config_setting_group( |
| 133 | name = "needs_jpeg", |
| 134 | match_any = [ |
| 135 | "//bazel/common_config_settings:raw_decode_codec", |
| 136 | "//bazel/common_config_settings:jpeg_decode_codec", |
| 137 | "//bazel/common_config_settings:jpeg_encode_codec", |
| 138 | ], |
| 139 | ) |
| 140 | |
| 141 | selects.config_setting_group( |
| 142 | name = "needs_png", |
| 143 | match_any = [ |
| 144 | "//bazel/common_config_settings:png_decode_codec", |
| 145 | "//bazel/common_config_settings:png_encode_codec", |
| 146 | ], |
| 147 | ) |
| 148 | |
| 149 | selects.config_setting_group( |
| 150 | name = "needs_webp", |
| 151 | match_any = [ |
| 152 | "//bazel/common_config_settings:webp_decode_codec", |
| 153 | "//bazel/common_config_settings:webp_encode_codec", |
| 154 | ], |
| 155 | ) |
| 156 | |
Kevin Lubick | 888d4ef | 2021-11-16 14:09:44 -0500 | [diff] [blame] | 157 | selects.config_setting_group( |
| 158 | name = "any_freetype_fontmgr", |
| 159 | match_any = [ |
| 160 | "//bazel/common_config_settings:custom_directory_fontmgr", |
| 161 | "//bazel/common_config_settings:custom_embedded_fontmgr", |
| 162 | "//bazel/common_config_settings:custom_empty_fontmgr", |
| 163 | ], |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 164 | ) |
| 165 | |
| 166 | CORE_DEPS = [] + select_multi( |
| 167 | { |
Kevin Lubick | cf1e959 | 2021-11-17 08:05:57 -0500 | [diff] [blame] | 168 | "//bazel/common_config_settings:gif_decode_codec": ["//third_party:wuffs"], |
| 169 | ":needs_png": ["//third_party:libpng"], |
| 170 | "//bazel/common_config_settings:raw_decode_codec": [ |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 171 | "//third_party:piex", |
| 172 | "//third_party:dng_sdk", |
| 173 | ], |
Kevin Lubick | cf1e959 | 2021-11-17 08:05:57 -0500 | [diff] [blame] | 174 | ":needs_webp": ["//third_party:libwebp"], |
| 175 | ":needs_jpeg": ["//third_party:libjpeg-turbo"], |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 176 | }, |
| 177 | default = [], |
Kevin Lubick | cf1e959 | 2021-11-17 08:05:57 -0500 | [diff] [blame] | 178 | ) + select({ |
Kevin Lubick | 888d4ef | 2021-11-16 14:09:44 -0500 | [diff] [blame] | 179 | ":any_freetype_fontmgr": [ |
| 180 | "//third_party:freetype2", |
| 181 | ], |
| 182 | "//conditions:default": [], |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 183 | }) |
| 184 | |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 185 | CORE_COPTS = [] |
| 186 | |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 187 | cc_library( |
| 188 | name = "skia-core", |
| 189 | srcs = CORE_SRCS, |
| 190 | hdrs = CORE_HDRS, |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 191 | copts = CORE_COPTS, |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 192 | local_defines = CORE_DEFINES, |
| 193 | textual_hdrs = ["//src/sksl:txts"], |
Kevin Lubick | 8ed49ea | 2021-11-11 12:50:02 -0500 | [diff] [blame] | 194 | deps = CORE_DEPS, |
Kevin Lubick | 1f8c31b | 2021-11-08 15:26:09 -0500 | [diff] [blame] | 195 | ) |
| 196 | |
| 197 | cc_library( |
| 198 | name = "hash_and_encode", |
| 199 | testonly = True, |
| 200 | srcs = [ |
| 201 | "//tools:cmdline", |
| 202 | "//tools:hash_and_encode", |
| 203 | ], |
| 204 | deps = [ |
| 205 | ":skia-core", |
| 206 | "//third_party:libpng", |
| 207 | ], |
| 208 | ) |
| 209 | |
| 210 | cc_library( |
| 211 | name = "gms", |
| 212 | testonly = True, |
| 213 | srcs = [ |
| 214 | "//gm:gms", |
| 215 | "//gm:srcs", |
| 216 | "//tools:srcs", |
| 217 | ], |
| 218 | hdrs = [ |
| 219 | "//gm:hdrs", |
| 220 | ], |
| 221 | textual_hdrs = ["//tools:txts"], |
| 222 | deps = [":skia-core"], |
| 223 | ) |
| 224 | |
| 225 | cc_library( |
| 226 | name = "tests", |
| 227 | testonly = True, |
| 228 | srcs = [ |
| 229 | "//tests:srcs", |
| 230 | "//tools:srcs", |
| 231 | ], |
| 232 | hdrs = [ |
| 233 | "//tests:hdrs", |
| 234 | ], |
| 235 | local_defines = [ |
| 236 | "GR_TEST_UTILS", |
| 237 | ], |
| 238 | textual_hdrs = ["//tools:txts"], |
| 239 | deps = [":skia-core"], |
| 240 | ) |