Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Unified Diff: public.bzl

Issue 1577353002: Move BUILD.public to public.bzl. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « BUILD.public ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: public.bzl
diff --git a/BUILD.public b/public.bzl
similarity index 70%
rename from BUILD.public
rename to public.bzl
index 5816acd2d62b4c5ae0e38729733290e27fbe4ef4..33ba89b6fbe510b4eaa69ab3e0eace6928c9f8e5 100644
--- a/BUILD.public
+++ b/public.bzl
@@ -1,13 +1,63 @@
-# Description:
-# Skia graphics library.
-#
-# Definitions for Google BUILD file.
-
-exports_files(["BUILD.public"])
+################################################################################
+# Skylark macros
+################################################################################
+
+is_bazel = not hasattr(native, "genmpm")
+
+def portable_select(select_dict, bazel_condition, default_condition):
+ """Replaces select() with a Bazel-friendly wrapper.
+
+ Args:
+ select_dict: Dictionary in the same format as select().
+ Returns:
+ If Blaze platform, returns select() using select_dict.
+ If Bazel platform, returns dependencies for condition
+ bazel_condition, or empty list if none specified.
+ """
+ if is_bazel:
+ return select_dict.get(bazel_condition, select_dict[default_condition])
+ else:
+ return select(select_dict)
+
+def skia_select(conditions, results):
+ """Replaces select() for conditions [UNIX, ANDROID, IOS]
+
+ Args:
+ conditions: [CONDITION_UNIX, CONDITION_ANDROID, CONDITION_IOS]
+ results: [RESULT_UNIX, RESULT_ANDROID, RESULT_IOS]
+ Returns:
+ The result matching the platform condition.
+ """
+ if len(conditions) != 3 or len(results) != 3:
+ fail("Must provide exactly 3 conditions and 3 results")
+
+ selector = {}
+ for i in range(3):
+ selector[conditions[i]] = results[i]
+ return portable_select(selector, conditions[2], conditions[0])
+
+def skia_glob(srcs):
+ """Replaces glob() with a version that accepts a struct.
+
+ Args:
+ srcs: struct(include=[], exclude=[])
+ Returns:
+ Equivalent of glob(srcs.include, exclude=srcs.exclude)
+ """
+ if hasattr(srcs, 'include'):
+ if hasattr(srcs, 'exclude'):
+ return native.glob(srcs.include, exclude=srcs.exclude)
+ else:
+ return native.glob(srcs.include)
+ return []
+
+################################################################################
+## BASE_SRCS
+################################################################################
# All platform-independent SRCS.
-BASE_SRCS = glob(
- [
+BASE_SRCS_ALL = struct(
+ include = [
"include/private/*.h",
"src/**/*.h",
"src/**/*.cpp",
@@ -66,8 +116,8 @@ BASE_SRCS = glob(
)
# Platform-dependent SRCS for google3-default platform.
-BASE_SRCS_UNIX = glob(
- [
+BASE_SRCS_UNIX = struct(
+ include = [
"src/codec/*",
"src/fonts/SkFontMgr_fontconfig.cpp",
"src/images/*",
@@ -114,8 +164,8 @@ BASE_SRCS_UNIX = glob(
)
# Platform-dependent SRCS for google3-default Android.
-BASE_SRCS_ANDROID = glob(
- [
+BASE_SRCS_ANDROID = struct(
+ include = [
"src/codec/*",
"src/images/*",
# TODO(benjaminwagner): Figure out how to compile with EGL.
@@ -159,8 +209,8 @@ BASE_SRCS_ANDROID = glob(
)
# Platform-dependent SRCS for google3-default iOS.
-BASE_SRCS_IOS = glob(
- [
+BASE_SRCS_IOS = struct(
+ include = [
"src/opts/**/*.cpp",
"src/opts/**/*.h",
"src/ports/**/*.cpp",
@@ -203,40 +253,38 @@ BASE_SRCS_IOS = glob(
],
)
-BASE_SRCS_PLATFORM = select({
- CONDITION_ANDROID: BASE_SRCS_ANDROID,
- CONDITION_IOS: BASE_SRCS_IOS,
- "//conditions:default": BASE_SRCS_UNIX,
-})
+################################################################################
+## SSSE3/SSE4/AVX/AVX2 SRCS
+################################################################################
-SSSE3_SRCS = glob(
- [
+SSSE3_SRCS = struct(
+ include = [
"src/opts/*SSSE3*.cpp",
"src/opts/*ssse3*.cpp",
- ],
-)
+ ])
-SSE4_SRCS = glob(
- [
+SSE4_SRCS = struct(
+ include = [
"src/opts/*SSE4*.cpp",
"src/opts/*sse4*.cpp",
- ],
-)
+ ])
-AVX_SRCS = glob(
- [
+AVX_SRCS = struct(
+ include = [
"src/opts/*_avx.cpp",
- ],
-)
+ ])
-AVX2_SRCS = glob(
- [
+AVX2_SRCS = struct(
+ include = [
"src/opts/*_avx2.cpp",
- ],
-)
+ ])
+
+################################################################################
+## BASE_HDRS
+################################################################################
-BASE_HDRS = glob(
- [
+BASE_HDRS = struct(
+ include = [
"include/**/*.h",
],
exclude = [
@@ -247,26 +295,28 @@ BASE_HDRS = glob(
"include/views/**/*",
"include/xml/SkBML_WXMLParser.h",
"include/xml/SkBML_XMLParser.h",
- ],
-)
+ ])
+
+################################################################################
+## BASE_DEPS
+################################################################################
+
+BASE_DEPS_ALL = []
-# Dependencies.
BASE_DEPS_UNIX = [
- ":opts_avx2",
- ":opts_avx",
- ":opts_sse4",
":opts_ssse3",
+ ":opts_sse4",
+ ":opts_avx",
+ ":opts_avx2",
]
BASE_DEPS_ANDROID = []
BASE_DEPS_IOS = []
-BASE_DEPS = select({
- CONDITION_ANDROID: BASE_DEPS_ANDROID + BASE_EXTERNAL_DEPS_ANDROID,
- CONDITION_IOS: BASE_DEPS_IOS + BASE_EXTERNAL_DEPS_IOS,
- "//conditions:default": BASE_DEPS_UNIX + BASE_EXTERNAL_DEPS_UNIX,
-}) + EXTERNAL_DEPS_ALL
+################################################################################
+## INCLUDES
+################################################################################
# Includes needed by Skia implementation. Not public includes.
INCLUDES = [
@@ -299,13 +349,14 @@ INCLUDES = [
"src/utils",
"third_party/etc1",
"third_party/ktx",
-] + EXTERNAL_INCLUDES
+]
-## :dm
+################################################################################
+## DM_SRCS
+################################################################################
-# Platform-independent SRCS for DM.
-DM_SRCS = glob(
- [
+DM_SRCS_ALL = struct(
+ include = [
"dm/*.cpp",
"dm/*.h",
"gm/*.c",
@@ -348,20 +399,21 @@ DM_SRCS = glob(
],
)
-DM_SRCS_UNIX = []
+DM_SRCS_UNIX = struct()
-DM_SRCS_ANDROID = glob(
- [
+DM_SRCS_ANDROID = struct(
+ include = [
# 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_SRCS_IOS = struct()
+
+################################################################################
+## DM_INCLUDES
+################################################################################
DM_INCLUDES = [
"gm",
@@ -378,20 +430,44 @@ DM_INCLUDES = [
"tools/timer",
]
-COPTS_ANDROID = ["-mfpu=neon"]
+################################################################################
+## DM_ARGS
+################################################################################
-COPTS_IOS = []
+def DM_ARGS(base_dir):
+ return [
+ "--nogpu",
+ "--verbose",
+ # TODO(mtklein): maybe investigate why these fail?
+ "--match ~FontMgr ~Scalar ~Canvas ~Codec_stripes ~Codec_Dimensions ~Codec ~Stream ~skps ~RecordDraw_TextBounds",
+ "--resourcePath %s/resources" % base_dir,
+ "--images %s/resources" % base_dir,
+ ]
+
+################################################################################
+## COPTS
+################################################################################
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,
-})
+COPTS_ANDROID = ["-mfpu=neon"]
+
+COPTS_IOS = []
+
+COPTS_ALL = []
+
+################################################################################
+## DEFINES
+################################################################################
+
+DEFINES_UNIX = [
+ "SK_BUILD_FOR_UNIX",
+ "SK_SAMPLES_FOR_X",
+ "SK_SFNTLY_SUBSETTER",
+]
DEFINES_ANDROID = [
"SK_BUILD_FOR_ANDROID",
@@ -404,12 +480,6 @@ DEFINES_IOS = [
"SK_IGNORE_ETC1_SUPPORT",
]
-DEFINES_UNIX = [
- "SK_BUILD_FOR_UNIX",
- "SK_SAMPLES_FOR_X",
- "SK_SFNTLY_SUBSETTER",
-]
-
DEFINES_ALL = [
# Chrome DEFINES.
"SK_USE_FLOATBITS",
@@ -418,88 +488,19 @@ DEFINES_ALL = [
"GOOGLE3",
]
-DEFINES = select({
- CONDITION_ANDROID: DEFINES_ANDROID,
- CONDITION_IOS: DEFINES_IOS,
- "//conditions:default": DEFINES_UNIX,
-}) + DEFINES_ALL
+################################################################################
+## LINKOPTS
+################################################################################
-LINKOPTS = select({
- CONDITION_ANDROID: [
- "-ldl",
- "-lEGL",
- ],
- "//conditions:default": ["-ldl"],
-})
-
-cc_library(
- name = "opts_ssse3",
- srcs = SSSE3_SRCS,
- copts = COPTS + ["-mssse3"],
- defines = DEFINES,
- includes = INCLUDES,
- deps = EXTERNAL_DEPS_ALL,
-)
-
-cc_library(
- name = "opts_sse4",
- srcs = SSE4_SRCS,
- copts = COPTS + ["-msse4"],
- defines = DEFINES,
- includes = INCLUDES,
- deps = EXTERNAL_DEPS_ALL,
-)
+LINKOPTS_UNIX = []
-cc_library(
- name = "opts_avx",
- srcs = AVX_SRCS,
- copts = COPTS + ["-mavx"],
- defines = DEFINES,
- includes = INCLUDES,
- deps = EXTERNAL_DEPS_ALL,
-)
+LINKOPTS_ANDROID = [
+ "-lEGL",
+]
-cc_library(
- name = "opts_avx2",
- srcs = AVX2_SRCS,
- copts = COPTS + ["-mavx2"],
- defines = DEFINES,
- includes = INCLUDES,
- deps = EXTERNAL_DEPS_ALL,
-)
+LINKOPTS_IOS = []
-# If you need Ganesh (GPU) support in Skia, please contact skia-team@google.com
-# for help.
-cc_library(
- name = "skia",
- srcs = BASE_SRCS + BASE_SRCS_PLATFORM,
- hdrs = BASE_HDRS,
- copts = COPTS,
- defines = DEFINES,
- includes = INCLUDES,
- linkopts = LINKOPTS,
- visibility = [":skia_clients"],
- deps = BASE_DEPS,
- alwayslink = 1,
-)
+LINKOPTS_ALL = [
+ "-ldl",
+]
-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 ~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,
-)
« no previous file with comments | « BUILD.public ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698