blob: 42664ff387f908d82433b003feacd89419ee5156 [file] [log] [blame]
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
# This first example only needs the core Skia functionality and the pathops
# module. Thus, the client defines a cc_library (skia_core_and_pathops) with
# those components and then depending on that library.
cc_binary(
name = "path_combiner",
srcs = ["src/path_main.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-fuse-ld=lld",
"-lpthread",
],
deps = [":skia_core_and_pathops"],
)
cc_library(
name = "skia_core_and_pathops",
deps = [
"@skia//:core",
"@skia//:pathops",
],
)
cc_binary(
name = "png_decoder",
srcs = ["src/decode_png_main.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-fuse-ld=lld",
"-lpthread",
],
deps = [
"@skia//:core",
"@skia//:png_decode_codec",
],
)
cc_binary(
name = "decode_everything",
srcs = ["src/decode_everything.cpp"],
copts = ["-std=c++17"],
linkopts = select({
"@platforms//os:linux": [
"-fuse-ld=lld",
"-lpthread",
],
"//conditions:default": [],
}),
deps = [
"@skia//:bmp_decode_codec",
"@skia//:core",
"@skia//:gif_decode_codec",
"@skia//:ico_decode_codec",
"@skia//:jpeg_decode_codec",
"@skia//:jpegxl_decode_codec",
"@skia//:png_decode_codec",
"@skia//:wbmp_decode_codec",
"@skia//:webp_decode_codec",
],
)
cc_binary(
name = "write_text_to_png",
srcs = ["src/write_text_to_png.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-fuse-ld=lld",
"-lpthread",
],
deps = [
"@skia//:core",
"@skia//:png_encode_codec",
] + select({
"@platforms//os:linux": ["@skia//:fontmgr_fontconfig_freetype"],
"@platforms//os:macos": ["@skia//:fontmgr_coretext"],
}),
)
cc_binary(
name = "shape_text",
srcs = ["src/shape_text.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-fuse-ld=lld",
"-lpthread",
],
deps = [
"@skia//:core",
"@skia//:fontmgr_empty_freetype",
"@skia//:jpeg_encode_codec",
"@skia//:skparagraph_harfbuzz_unicode",
"@skia//:skunicode_icu",
],
)
cc_binary(
name = "use_ganesh_gl",
srcs = ["src/ganesh_gl.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-lpthread",
] + select(
{
"@platforms//os:linux": [
"-lGL",
"-lX11",
],
"//conditions:default": [],
},
),
deps = [
"@skia//:core",
"@skia//:ganesh_gl",
"@skia//:webp_encode_codec",
] + select({
"@platforms//os:linux": ["@skia//:ganesh_glx_factory"],
"@platforms//os:macos": [
":gl_context_helper",
"@skia//:ganesh_gl_mac_factory",
],
"//conditions:default": ["@platforms//:incompatible"],
}),
)
objc_library(
name = "gl_context_helper",
srcs = ["src/gl_context_helper.mm"],
hdrs = ["src/gl_context_helper.h"],
copts = ["-DGL_SILENCE_DEPRECATION"],
includes = ["src"],
sdk_frameworks = [
"OpenGL",
],
)
cc_binary(
name = "use_ganesh_vulkan",
srcs = ["src/ganesh_vulkan.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-lpthread",
],
deps = [
"@skia//:core",
"@skia//:ganesh_vulkan",
],
)
cc_binary(
name = "use_ganesh_metal",
srcs = ["src/ganesh_metal.cpp"],
copts = ["-std=c++17"],
target_compatible_with = select({
"@platforms//os:macos": [],
"@platforms//os:ios": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
deps = [
":metal_context_helper",
"@skia//:core",
"@skia//:ganesh_metal",
],
)
objc_library(
name = "metal_context_helper",
srcs = ["src/metal_context_helper.mm"],
hdrs = ["src/metal_context_helper.h"],
copts = ["-std=c++17"],
includes = ["src"],
sdk_frameworks = [
# Without MetalKit added as a dependency, `[*device newCommandQueue]` fails
"MetalKit",
"Metal",
],
target_compatible_with = select({
"@platforms//os:macos": [],
"@platforms//os:ios": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
deps = [
"@skia//:core",
"@skia//:ganesh_metal",
"@skia//:jpeg_encode_codec",
],
)
cc_binary(
name = "use_skresources",
srcs = ["src/use_skresources.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-lpthread",
],
deps = [
"@skia//:core",
"@skia//:jpeg_decode_codec",
"@skia//:png_decode_codec",
"@skia//:skresources",
],
)
cc_binary(
name = "svg_with_primitive",
srcs = ["src/svg_renderer.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-lpthread",
],
deps = [
"@skia//:core",
"@skia//:png_encode_codec",
"@skia//:skshaper_core",
"@skia//:svg_renderer",
] + select({
"@platforms//os:linux": ["@skia//:fontmgr_fontconfig_freetype"],
"@platforms//os:macos": ["@skia//:fontmgr_coretext"],
"//conditions:default": [],
}),
)
cc_binary(
name = "svg_with_harfbuzz",
srcs = ["src/svg_renderer.cpp"],
copts = ["-std=c++17"],
linkopts = [
"-lpthread",
],
deps = [
"@skia//:core",
"@skia//:png_encode_codec",
"@skia//:skshaper_harfbuzz",
"@skia//:skshaper_unicode",
"@skia//:skunicode_icu",
"@skia//:svg_renderer",
] + select({
"@platforms//os:linux": ["@skia//:fontmgr_fontconfig_freetype"],
"@platforms//os:macos": ["@skia//:fontmgr_coretext"],
"//conditions:default": [],
}),
)