5cb4885b4c
We no longer need to worry about namespace conflicts SkBitmapRegionDecoder in Android (which we are replacing). Additionally, the static Create() function does not need to repeat the name BitmapRegionDecoder. BUG=skia: Review URL: https://codereview.chromium.org/1415243007
456 lines
12 KiB
Plaintext
456 lines
12 KiB
Plaintext
# Description:
|
|
# Skia graphics library.
|
|
#
|
|
# Definitions for Google BUILD file.
|
|
|
|
exports_files(["BUILD.public"])
|
|
|
|
# Platform-independent SRCS
|
|
SRCS = glob(
|
|
[
|
|
"include/private/*.h",
|
|
"src/**/*.h",
|
|
"src/**/*.cpp",
|
|
|
|
# Third Party
|
|
"third_party/etc1/*.cpp",
|
|
"third_party/etc1/*.h",
|
|
"third_party/ktx/*.cpp",
|
|
"third_party/ktx/*.h",
|
|
],
|
|
exclude = [
|
|
# Exclude platform-dependent files.
|
|
"src/device/xps/*", # Windows-only. Move to ports?
|
|
"src/doc/*_XPS.cpp", # Windows-only. Move to ports?
|
|
"src/gpu/gl/android/*",
|
|
"src/gpu/gl/egl/*",
|
|
"src/gpu/gl/glx/*",
|
|
"src/gpu/gl/nacl/*",
|
|
"src/gpu/gl/iOS/*",
|
|
"src/gpu/gl/mac/*",
|
|
"src/gpu/gl/win/*",
|
|
"src/opts/**/*",
|
|
"src/ports/**/*",
|
|
"src/utils/android/**/*",
|
|
"src/utils/mac/**/*",
|
|
"src/utils/SkThreadUtils_win.cpp", # Windows-only. Move to ports?
|
|
"src/utils/win/**/*",
|
|
"src/views/sdl/*",
|
|
"src/views/win/*",
|
|
"src/views/unix/*",
|
|
|
|
# Exclude multiple definitions.
|
|
# TODO(mtklein): Move to opts?
|
|
"src/doc/SkDocument_PDF_None.cpp", # We use SkDocument_PDF.cpp.
|
|
"src/fonts/*fontconfig*",
|
|
"src/gpu/gl/GrGLCreateNativeInterface_none.cpp",
|
|
"src/gpu/gl/GrGLDefaultInterface_native.cpp",
|
|
"src/gpu/gl/GrGLDefaultInterface_none.cpp",
|
|
|
|
# Exclude files that don't compile with the current DEFINES.
|
|
"src/codec/SkJpegCodec.cpp", # libjpeg_turbo version mismatch.
|
|
"src/gpu/gl/angle/*", # Requires SK_ANGLE define.
|
|
"src/gpu/gl/command_buffer/*", # unknown type name 'HMODULE'
|
|
"src/gpu/gl/mesa/*", # Requires SK_MESA define.
|
|
"src/svg/parser/*", # Missing SkSVG.h.
|
|
|
|
# Not used.
|
|
"src/animator/**/*",
|
|
"src/views/**/*",
|
|
"src/xml/SkBML_Verbs.h",
|
|
"src/xml/SkBML_XMLParser.cpp",
|
|
"src/xml/SkXMLPullParser.cpp",
|
|
],
|
|
)
|
|
|
|
# Platform-dependent SRCS for google3-default platform.
|
|
SRCS_UNIX = glob(
|
|
[
|
|
"src/gpu/gl/GrGLDefaultInterface_native.cpp",
|
|
"src/gpu/gl/glx/**/*.cpp",
|
|
"src/gpu/gl/glx/**/*.h",
|
|
"src/opts/**/*.cpp",
|
|
"src/opts/**/*.h",
|
|
"src/ports/**/*.cpp",
|
|
"src/ports/**/*.h",
|
|
],
|
|
exclude = [
|
|
"src/opts/*arm*",
|
|
"src/opts/*mips*",
|
|
"src/opts/*NEON*",
|
|
"src/opts/*neon*",
|
|
# Included in :opts_ssse3 library.
|
|
"src/opts/*SSSE3*",
|
|
"src/opts/*ssse3*",
|
|
# Included in :opts_sse4 library.
|
|
"src/opts/*SSE4*",
|
|
"src/opts/*sse4*",
|
|
"src/opts/SkBitmapProcState_opts_none.cpp",
|
|
"src/opts/SkBlitMask_opts_none.cpp",
|
|
"src/opts/SkBlitRow_opts_none.cpp",
|
|
"src/ports/*android*",
|
|
"src/ports/*chromium*",
|
|
"src/ports/*fontconfig*",
|
|
"src/ports/*FontConfig*",
|
|
"src/ports/*mac*",
|
|
"src/ports/*mozalloc*",
|
|
"src/ports/*nacl*",
|
|
"src/ports/*win*",
|
|
"src/ports/SkFontMgr_custom_embedded_factory.cpp",
|
|
"src/ports/SkFontMgr_empty_factory.cpp",
|
|
"src/ports/SkImageDecoder_CG.cpp",
|
|
"src/ports/SkImageDecoder_WIC.cpp",
|
|
"src/ports/SkImageDecoder_empty.cpp",
|
|
"src/ports/SkImageGenerator_none.cpp",
|
|
"src/ports/SkTLS_none.cpp",
|
|
],
|
|
)
|
|
|
|
# Platform-dependent SRCS for google3-default Android.
|
|
SRCS_ANDROID = glob(
|
|
[
|
|
# TODO(benjaminwagner): Figure out how to compile with EGL.
|
|
"src/gpu/gl/GrGLDefaultInterface_none.cpp",
|
|
"src/gpu/gl/nacl/SkCreatePlatformGLContext_nacl.cpp",
|
|
"src/opts/**/*.cpp",
|
|
"src/opts/**/*.h",
|
|
"src/ports/**/*.cpp",
|
|
"src/ports/**/*.h",
|
|
],
|
|
exclude = [
|
|
"src/opts/*mips*",
|
|
"src/opts/*SSE2*",
|
|
"src/opts/*SSSE3*",
|
|
"src/opts/*ssse3*",
|
|
"src/opts/*SSE4*",
|
|
"src/opts/*sse4*",
|
|
"src/opts/*x86*",
|
|
"src/opts/SkBitmapProcState_opts_none.cpp",
|
|
"src/opts/SkBlitMask_opts_none.cpp",
|
|
"src/opts/SkBlitRow_opts_none.cpp",
|
|
"src/ports/*chromium*",
|
|
"src/ports/*fontconfig*",
|
|
"src/ports/*FontConfig*",
|
|
"src/ports/*mac*",
|
|
"src/ports/*mozalloc*",
|
|
"src/ports/*nacl*",
|
|
"src/ports/*win*",
|
|
"src/ports/SkDebug_stdio.cpp",
|
|
"src/ports/SkFontMgr_custom_directory_factory.cpp",
|
|
"src/ports/SkFontMgr_custom_embedded_factory.cpp",
|
|
"src/ports/SkFontMgr_empty_factory.cpp",
|
|
"src/ports/SkImageDecoder_CG.cpp",
|
|
"src/ports/SkImageDecoder_WIC.cpp",
|
|
"src/ports/SkImageDecoder_empty.cpp",
|
|
"src/ports/SkImageGenerator_none.cpp",
|
|
"src/ports/SkTLS_none.cpp",
|
|
],
|
|
)
|
|
|
|
# Platform-dependent SRCS for google3-default iOS.
|
|
SRCS_IOS = glob(
|
|
[
|
|
"src/gpu/gl/iOS/GrGLCreateNativeInterface_iOS.cpp",
|
|
"src/opts/**/*.cpp",
|
|
"src/opts/**/*.h",
|
|
"src/ports/**/*.cpp",
|
|
"src/ports/**/*.h",
|
|
],
|
|
exclude = [
|
|
"src/opts/*mips*",
|
|
"src/opts/*NEON*",
|
|
"src/opts/*neon*",
|
|
"src/opts/*SSE2*",
|
|
"src/opts/*SSSE3*",
|
|
"src/opts/*ssse3*",
|
|
"src/opts/*SSE4*",
|
|
"src/opts/*sse4*",
|
|
"src/opts/*x86*",
|
|
"src/opts/SkBitmapProcState_opts_none.cpp",
|
|
"src/opts/SkBlitMask_opts_none.cpp",
|
|
"src/opts/SkBlitRow_opts_none.cpp",
|
|
"src/ports/*android*",
|
|
"src/ports/*chromium*",
|
|
"src/ports/*fontconfig*",
|
|
"src/ports/*FontConfig*",
|
|
"src/ports/*FreeType*",
|
|
"src/ports/*mozalloc*",
|
|
"src/ports/*nacl*",
|
|
"src/ports/*win*",
|
|
"src/ports/SkDebug_stdio.cpp",
|
|
"src/ports/SkFontMgr_custom.cpp",
|
|
"src/ports/SkFontMgr_custom_directory_factory.cpp",
|
|
"src/ports/SkFontMgr_custom_embedded_factory.cpp",
|
|
"src/ports/SkFontMgr_empty_factory.cpp",
|
|
"src/ports/SkImageDecoder_CG.cpp",
|
|
"src/ports/SkImageDecoder_WIC.cpp",
|
|
"src/ports/SkImageDecoder_empty.cpp",
|
|
"src/ports/SkImageGenerator_none.cpp",
|
|
"src/ports/SkTLS_none.cpp",
|
|
],
|
|
)
|
|
|
|
PLATFORM_SRCS = select({
|
|
CONDITION_ANDROID: SRCS_ANDROID,
|
|
CONDITION_IOS: SRCS_IOS,
|
|
"//conditions:default": SRCS_UNIX,
|
|
})
|
|
|
|
SRCS_SSSE3 = glob(
|
|
[
|
|
"src/opts/*SSSE3*.cpp",
|
|
"src/opts/*ssse3*.cpp",
|
|
],
|
|
)
|
|
|
|
SRCS_SSE4 = glob(
|
|
[
|
|
"src/opts/*SSE4*.cpp",
|
|
"src/opts/*sse4*.cpp",
|
|
],
|
|
)
|
|
|
|
HDRS = glob(
|
|
[
|
|
"include/**/*.h",
|
|
],
|
|
exclude = [
|
|
"include/private/**/*",
|
|
|
|
# Not used.
|
|
"include/animator/**/*",
|
|
"include/views/**/*",
|
|
"include/xml/SkBML_WXMLParser.h",
|
|
"include/xml/SkBML_XMLParser.h",
|
|
],
|
|
)
|
|
|
|
# Includes needed by Skia implementation. Not public includes.
|
|
INCLUDES = [
|
|
"include/c",
|
|
"include/codec",
|
|
"include/config",
|
|
"include/core",
|
|
"include/effects",
|
|
"include/gpu",
|
|
"include/images",
|
|
"include/pathops",
|
|
"include/pipe",
|
|
"include/ports",
|
|
"include/private",
|
|
"include/utils",
|
|
"include/utils/mac",
|
|
"include/utils/win",
|
|
"include/svg",
|
|
"include/xml",
|
|
"src/core",
|
|
"src/gpu",
|
|
"src/image",
|
|
"src/lazy",
|
|
"src/opts",
|
|
"src/pdf",
|
|
"src/sfnt",
|
|
"src/utils",
|
|
"third_party/etc1",
|
|
"third_party/ktx",
|
|
]
|
|
|
|
# Dependencies.
|
|
DEPS_UNIX = [
|
|
":opts_sse4",
|
|
":opts_ssse3",
|
|
]
|
|
|
|
DEPS_ANDROID = []
|
|
|
|
DEPS_IOS = []
|
|
|
|
DEPS = select({
|
|
CONDITION_ANDROID: DEPS_ANDROID + EXTERNAL_DEPS_ANDROID,
|
|
CONDITION_IOS: DEPS_IOS + EXTERNAL_DEPS_IOS,
|
|
"//conditions:default": DEPS_UNIX + EXTERNAL_DEPS_UNIX,
|
|
}) + EXTERNAL_DEPS_ALL
|
|
|
|
# Platform-independent SRCS for DM.
|
|
DM_SRCS = glob(
|
|
[
|
|
"dm/*.cpp",
|
|
"dm/*.h",
|
|
"gm/*.c",
|
|
"gm/*.cpp",
|
|
"gm/*.h",
|
|
"tests/*.cpp",
|
|
"tests/*.h",
|
|
"tools/CrashHandler.cpp",
|
|
"tools/CrashHandler.h",
|
|
"tools/LazyDecodeBitmap.cpp",
|
|
"tools/LazyDecodeBitmap.h",
|
|
"tools/ProcStats.cpp",
|
|
"tools/ProcStats.h",
|
|
"tools/Resources.cpp",
|
|
"tools/Resources.h",
|
|
"tools/SkBitmapRegionCanvas.cpp",
|
|
"tools/SkBitmapRegionCanvas.h",
|
|
"tools/SkBitmapRegionCodec.cpp",
|
|
"tools/SkBitmapRegionCodec.h",
|
|
"tools/SkBitmapRegionDecoder.cpp",
|
|
"tools/SkBitmapRegionDecoder.h",
|
|
"tools/SkBitmapRegionSampler.cpp",
|
|
"tools/SkBitmapRegionSampler.h",
|
|
"tools/flags/*.cpp",
|
|
"tools/flags/*.h",
|
|
"tools/sk_tool_utils.cpp",
|
|
"tools/sk_tool_utils.h",
|
|
"tools/sk_tool_utils_font.cpp",
|
|
"tools/timer/*.cpp",
|
|
"tools/timer/*.h",
|
|
],
|
|
exclude = [
|
|
"dm/DMSrcSinkAndroid.cpp", # Android-only.
|
|
"tests/FontMgrAndroidParserTest.cpp", # Android-only.
|
|
"tests/PathOpsSkpClipTest.cpp", # Alternate main.
|
|
"tests/skia_test.cpp", # Old main.
|
|
"tests/SkpSkGrTest.cpp", # Alternate main.
|
|
"tools/timer/SysTimer_mach.cpp",
|
|
"tools/timer/SysTimer_windows.cpp",
|
|
],
|
|
)
|
|
|
|
DM_SRCS_UNIX = []
|
|
|
|
DM_SRCS_ANDROID = glob(
|
|
[
|
|
# Depends on Android HWUI library that is not available in google3.
|
|
#"dm/DMSrcSinkAndroid.cpp",
|
|
"tests/FontMgrAndroidParserTest.cpp",
|
|
],
|
|
)
|
|
|
|
DM_PLATFORM_SRCS = select({
|
|
CONDITION_ANDROID: DM_SRCS_ANDROID,
|
|
"//conditions:default": DM_SRCS_UNIX,
|
|
})
|
|
|
|
DM_INCLUDES = [
|
|
"gm",
|
|
"src/codec",
|
|
"src/effects",
|
|
"src/fonts",
|
|
"src/pathops",
|
|
"src/pipe/utils",
|
|
"src/ports",
|
|
"src/utils/debugger",
|
|
"tests",
|
|
"tools",
|
|
"tools/flags",
|
|
"tools/timer",
|
|
]
|
|
|
|
COPTS_ANDROID = [
|
|
"-mfpu=neon",
|
|
]
|
|
|
|
COPTS_IOS = [
|
|
]
|
|
|
|
COPTS_UNIX = [
|
|
"-Wno-implicit-fallthrough", # Some intentional fallthrough.
|
|
"-Wno-deprecated-declarations", # Internal use of deprecated methods. :(
|
|
]
|
|
|
|
COPTS = select({
|
|
CONDITION_ANDROID: COPTS_ANDROID,
|
|
CONDITION_IOS: COPTS_IOS,
|
|
"//conditions:default": COPTS_UNIX,
|
|
})
|
|
|
|
DEFINES_ANDROID = [
|
|
"SK_BUILD_FOR_ANDROID",
|
|
# TODO(benjaminwagner): Try to get png library updated?
|
|
"SK_PNG_NO_INDEX_SUPPORTED",
|
|
]
|
|
|
|
DEFINES_IOS = [
|
|
"SK_BUILD_FOR_IOS",
|
|
"SK_IGNORE_ETC1_SUPPORT",
|
|
]
|
|
|
|
DEFINES_UNIX = [
|
|
"SK_BUILD_FOR_UNIX",
|
|
"SK_SAMPLES_FOR_X",
|
|
]
|
|
|
|
DEFINES_ALL = [
|
|
# Chrome DEFINES.
|
|
"SK_USE_FLOATBITS",
|
|
"SK_USE_FREETYPE_EMBOLDEN",
|
|
# Turn on a few Google3-specific build fixes.
|
|
"GOOGLE3",
|
|
]
|
|
|
|
DEFINES = select({
|
|
CONDITION_ANDROID: DEFINES_ANDROID,
|
|
CONDITION_IOS: DEFINES_IOS,
|
|
"//conditions:default": DEFINES_UNIX,
|
|
}) + DEFINES_ALL
|
|
|
|
LINKOPTS = select({
|
|
CONDITION_ANDROID: [
|
|
"-ldl",
|
|
"-lEGL",
|
|
],
|
|
"//conditions:default": ["-ldl"],
|
|
})
|
|
|
|
cc_library(
|
|
name = "opts_ssse3",
|
|
srcs = SRCS_SSSE3,
|
|
copts = COPTS + ["-mssse3"],
|
|
defines = DEFINES,
|
|
includes = INCLUDES,
|
|
deps = EXTERNAL_DEPS_ALL,
|
|
)
|
|
|
|
cc_library(
|
|
name = "opts_sse4",
|
|
srcs = SRCS_SSE4,
|
|
copts = COPTS + ["-msse4"],
|
|
defines = DEFINES,
|
|
includes = INCLUDES,
|
|
deps = EXTERNAL_DEPS_ALL,
|
|
)
|
|
|
|
cc_library(
|
|
name = "skia",
|
|
srcs = SRCS + PLATFORM_SRCS,
|
|
hdrs = HDRS,
|
|
copts = COPTS,
|
|
defines = DEFINES,
|
|
includes = INCLUDES,
|
|
linkopts = LINKOPTS,
|
|
visibility = [":skia_clients"],
|
|
deps = DEPS,
|
|
alwayslink = 1,
|
|
)
|
|
|
|
cc_test(
|
|
name = "dm",
|
|
size = "large",
|
|
srcs = DM_SRCS + DM_PLATFORM_SRCS,
|
|
args = [
|
|
"--nogpu",
|
|
"--verbose",
|
|
# TODO(mtklein): maybe investigate why these fail?
|
|
"--match ~FontMgr ~Scalar ~Canvas ~Codec_stripes ~Codec_Dimensions ~Codec ~Stream ~skps ~Math ~RecordDraw_TextBounds",
|
|
"--resourcePath %s/resources" % BASE_DIR,
|
|
"--images %s/resources" % BASE_DIR,
|
|
],
|
|
copts = COPTS,
|
|
data = glob(["resources/**/*"]),
|
|
defines = DEFINES,
|
|
includes = DM_INCLUDES,
|
|
deps = DM_EXTERNAL_DEPS + [
|
|
":skia",
|
|
] + EXTERNAL_DEPS_ALL,
|
|
)
|