blob: 516cb321e68a2ee62a713de3e60ae4fb9743ee5f [file] [log] [blame]
# Copyright 2021 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This file handles the removal of platform-specific files from the
# Skia build.
template("skia_common") {
# This list will contain all defines that also need to be exported to
# dependent components.
skia_export_defines = [
"SK_DISABLE_EFFECT_DESERIALIZATION=1",
"SK_SUPPORT_GPU=1",
"SK_USER_CONFIG_HEADER=\"cobalt/renderer/rasterizer/skia/skia/config/SkUserConfig.h\"",
]
if (target_os == "win") {
skia_export_defines += [
# Required define by Skia to take certain code paths, such
# as including windows.h in various places.
"SK_BUILD_FOR_WIN32",
]
}
# The |default_font_cache_limit| specifies the max size of the glyph cache,
# which contains path and metrics information for glyphs, before it will
# start purging entries. The current value matches the limit used by
# Android. Set the value to 1*1024*1024.
default_font_cache_limit = 1048576
config("skia_common_config_$target_name") {
if (is_clang) {
cflags = [ "-Wno-tautological-compare" ]
}
}
config("skia_common_config_public_$target_name") {
defines = skia_export_defines
# We would prefer this to be direct_dependent_settings,
# however we currently have no means to enforce that direct dependents
# re-export if they include Skia headers in their public headers.
include_dirs = [ "config" ]
}
static_library(target_name) {
forward_variables_from(invoker, "*", [ "configs" ])
if (defined(include_dirs)) {
include_dirs += [ "//third_party/skia" ]
} else {
include_dirs = [ "//third_party/skia" ]
}
defines = [
# skia uses static initializers to initialize the serialization logic
# of its "pictures" library. This is currently not used in Cobalt; if
# it ever gets used the processes that use it need to call
# SkGraphics::Init().
"SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=0",
# ETC1 texture encoding is not supported in Cobalt by default.
"SK_IGNORE_ETC1_SUPPORT",
"SK_DEFAULT_FONT_CACHE_LIMIT=$default_font_cache_limit",
# Use scalar portable implementations instead of Clang/GCC vector extensions
# in SkVx.h, as this causes an internal compiler error for raspi-2.
"SKNX_NO_SIMD",
]
configs += [ ":skia_common_config_$target_name" ]
if (defined(invoker.configs)) {
configs += invoker.configs
}
if (defined(public_configs)) {
public_configs += [ ":skia_common_config_public_$target_name" ]
} else {
public_configs = [ ":skia_common_config_public_$target_name" ]
}
if (defined(deps)) {
deps += [ "//starboard:starboard_headers_only" ]
} else {
deps = [ "//starboard:starboard_headers_only" ]
}
}
}