aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--BUILD.gn10
-rw-r--r--site/user/quick/gn.md20
-rw-r--r--third_party/expat/BUILD.gn25
-rw-r--r--third_party/freetype2/BUILD.gn18
-rw-r--r--third_party/icu/BUILD.gn393
-rw-r--r--third_party/libjpeg-turbo/BUILD.gn103
-rw-r--r--third_party/libpng/BUILD.gn61
-rw-r--r--third_party/libwebp/BUILD.gn232
-rw-r--r--third_party/third_party.gni9
-rw-r--r--third_party/zlib/BUILD.gn47
10 files changed, 496 insertions, 422 deletions
diff --git a/BUILD.gn b/BUILD.gn
index f5ad42f865..224453047e 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -16,12 +16,12 @@ declare_args() {
skia_use_fontconfig = is_linux
skia_use_freetype = is_android || is_fuchsia || is_linux
skia_use_gdi = false
+ skia_use_icu = !is_fuchsia && !is_win # TODO: Windows
skia_use_libjpeg_turbo = true
skia_use_libpng = true
skia_use_libwebp = !is_fuchsia
skia_use_mesa = false
- skia_use_raw = !is_win
- skia_use_sfntly = !is_fuchsia && !is_win # TODO: icu on Windows, re-enable this.
+ skia_use_piex = !is_win
skia_use_zlib = true
skia_enable_android_framework_defines = false
@@ -30,8 +30,10 @@ declare_args() {
skia_enable_vulkan_debug_layers = is_skia_standalone && is_debug
skia_vulkan_sdk = getenv("VULKAN_SDK")
}
-
declare_args() {
+ skia_use_dng_sdk = !is_win && skia_use_libjpeg_turbo && skia_use_zlib
+ skia_use_sfntly = skia_use_icu
+
if (is_android) {
skia_use_vulkan = defined(ndk_api) && ndk_api >= 24
} else {
@@ -452,7 +454,7 @@ optional("png") {
}
optional("raw") {
- enabled = skia_use_raw && skia_use_libjpeg_turbo && skia_use_zlib
+ enabled = skia_use_dng_sdk && skia_use_libjpeg_turbo && skia_use_piex
public_defines = [ "SK_CODEC_DECODES_RAW" ]
deps = [
diff --git a/site/user/quick/gn.md b/site/user/quick/gn.md
index c35b519b7b..b9483323c1 100644
--- a/site/user/quick/gn.md
+++ b/site/user/quick/gn.md
@@ -123,3 +123,23 @@ project descriptions. This is not meant for any purpose beyond development.
<!--?prettify lang=sh?-->
gn gen out/config --ide=json --json-ide-script=../../gn/gn_to_cmake.py
+
+Third-party Dependencies
+------------------------
+
+Skia offers several features that make use of third-party libraries, like
+libpng, libwebp, or libjpeg-turbo to decode images, or ICU and sftnly to subset
+fonts. All these third-party dependencies are optional, and can be controlled
+by a GN argument that looks something like `skia_use_foo` for appropriate
+`foo`.
+
+Most of these third-party dependencies can also be satisfied by pre-built
+system libraries. If `skia_use_foo` is enabled, turn on `skia_use_system_foo`
+to build and link Skia against the headers and libaries found on the normal
+system paths. Remember, you can use `extra_cflags` and `extra_ldflags` to add
+include or library paths if needed.
+
+By default Skia will attempt to build and embed its own copies of these
+third-party libraries. This configuration is for development and testing only.
+We do not recommend shipping Skia this way. Note however, this is the only
+configuration of Skia that receives significant testing.
diff --git a/third_party/expat/BUILD.gn b/third_party/expat/BUILD.gn
index b493a210ef..3277389e08 100644
--- a/third_party/expat/BUILD.gn
+++ b/third_party/expat/BUILD.gn
@@ -4,19 +4,26 @@
# found in the LICENSE file.
declare_args() {
+ skia_use_system_expat = false
}
import("../third_party.gni")
-third_party("expat") {
- public_defines = [ "XML_STATIC" ]
- public_include_dirs = [ "../externals/expat/lib" ]
+if (skia_use_system_expat) {
+ system("expat") {
+ libs = [ "expat" ]
+ }
+} else {
+ third_party("expat") {
+ public_defines = [ "XML_STATIC" ]
+ public_include_dirs = [ "../externals/expat/lib" ]
- defines = [ "HAVE_MEMMOVE" ]
+ defines = [ "HAVE_MEMMOVE" ]
- sources = [
- "../externals/expat/lib/xmlparse.c",
- "../externals/expat/lib/xmlrole.c",
- "../externals/expat/lib/xmltok.c",
- ]
+ sources = [
+ "../externals/expat/lib/xmlparse.c",
+ "../externals/expat/lib/xmlrole.c",
+ "../externals/expat/lib/xmltok.c",
+ ]
+ }
}
diff --git a/third_party/freetype2/BUILD.gn b/third_party/freetype2/BUILD.gn
index 3ac5dd242c..89b64e4ed9 100644
--- a/third_party/freetype2/BUILD.gn
+++ b/third_party/freetype2/BUILD.gn
@@ -4,12 +4,18 @@
# found in the LICENSE file.
declare_args() {
+ # TODO: false? i.e. build from source all the time for testing?
+ skia_use_system_freetype2 = !(is_android || sanitize == "MSAN")
}
import("../third_party.gni")
-# TODO: build from source all the time?
-if (is_android || sanitize == "MSAN") {
+if (skia_use_system_freetype2) {
+ system("freetype2") {
+ include_dirs = [ "/usr/include/freetype2" ]
+ libs = [ "freetype" ]
+ }
+} else {
third_party("freetype2") {
public_include_dirs = [ "../externals/freetype/include" ]
@@ -53,12 +59,4 @@ if (is_android || sanitize == "MSAN") {
"../externals/freetype/src/truetype/truetype.c",
]
}
-} else {
- config("system_freetype2") {
- include_dirs = [ "/usr/include/freetype2" ]
- libs = [ "freetype" ]
- }
- group("freetype2") {
- public_configs = [ ":system_freetype2" ]
- }
}
diff --git a/third_party/icu/BUILD.gn b/third_party/icu/BUILD.gn
index 9342c8f7dd..e3815ee64f 100644
--- a/third_party/icu/BUILD.gn
+++ b/third_party/icu/BUILD.gn
@@ -4,202 +4,209 @@
# found in the LICENSE file.
declare_args() {
+ skia_use_system_icu = false
}
import("../third_party.gni")
-third_party("icu") {
- public_include_dirs = [ "../externals/icu/source/common" ]
- configs -= [ "//gn:no_rtti" ]
- if (!is_win) {
- libs = [ "dl" ]
+if (skia_use_system_icu) {
+ system("icu") {
+ libs = [ "icuuc" ]
+ }
+} else {
+ third_party("icu") {
+ public_include_dirs = [ "../externals/icu/source/common" ]
+ configs -= [ "//gn:no_rtti" ]
+ if (!is_win) {
+ libs = [ "dl" ]
+ }
+ defines = [
+ # http://userguide.icu-project.org/howtouseicu
+ "U_COMMON_IMPLEMENTATION",
+ "U_STATIC_IMPLEMENTATION",
+ ]
+ sources = [
+ "../externals/icu/source/common/appendable.cpp",
+ "../externals/icu/source/common/bmpset.cpp",
+ "../externals/icu/source/common/brkeng.cpp",
+ "../externals/icu/source/common/brkiter.cpp",
+ "../externals/icu/source/common/bytestream.cpp",
+ "../externals/icu/source/common/bytestrie.cpp",
+ "../externals/icu/source/common/bytestriebuilder.cpp",
+ "../externals/icu/source/common/bytestrieiterator.cpp",
+ "../externals/icu/source/common/caniter.cpp",
+ "../externals/icu/source/common/chariter.cpp",
+ "../externals/icu/source/common/charstr.cpp",
+ "../externals/icu/source/common/cmemory.c",
+ "../externals/icu/source/common/cstring.c",
+ "../externals/icu/source/common/cwchar.c",
+ "../externals/icu/source/common/dictbe.cpp",
+ "../externals/icu/source/common/dictionarydata.cpp",
+ "../externals/icu/source/common/dtintrv.cpp",
+ "../externals/icu/source/common/errorcode.cpp",
+ "../externals/icu/source/common/filteredbrk.cpp",
+ "../externals/icu/source/common/filterednormalizer2.cpp",
+ "../externals/icu/source/common/icudataver.c",
+ "../externals/icu/source/common/icuplug.cpp",
+ "../externals/icu/source/common/listformatter.cpp",
+ "../externals/icu/source/common/loadednormalizer2impl.cpp",
+ "../externals/icu/source/common/locavailable.cpp",
+ "../externals/icu/source/common/locbased.cpp",
+ "../externals/icu/source/common/locdispnames.cpp",
+ "../externals/icu/source/common/locid.cpp",
+ "../externals/icu/source/common/loclikely.cpp",
+ "../externals/icu/source/common/locmap.c",
+ "../externals/icu/source/common/locresdata.cpp",
+ "../externals/icu/source/common/locutil.cpp",
+ "../externals/icu/source/common/messagepattern.cpp",
+ "../externals/icu/source/common/normalizer2.cpp",
+ "../externals/icu/source/common/normalizer2impl.cpp",
+ "../externals/icu/source/common/normlzr.cpp",
+ "../externals/icu/source/common/parsepos.cpp",
+ "../externals/icu/source/common/patternprops.cpp",
+ "../externals/icu/source/common/pluralmap.cpp",
+ "../externals/icu/source/common/propname.cpp",
+ "../externals/icu/source/common/propsvec.c",
+ "../externals/icu/source/common/punycode.cpp",
+ "../externals/icu/source/common/putil.cpp",
+ "../externals/icu/source/common/rbbi.cpp",
+ "../externals/icu/source/common/rbbidata.cpp",
+ "../externals/icu/source/common/rbbinode.cpp",
+ "../externals/icu/source/common/rbbirb.cpp",
+ "../externals/icu/source/common/rbbiscan.cpp",
+ "../externals/icu/source/common/rbbisetb.cpp",
+ "../externals/icu/source/common/rbbistbl.cpp",
+ "../externals/icu/source/common/rbbitblb.cpp",
+ "../externals/icu/source/common/resbund.cpp",
+ "../externals/icu/source/common/resbund_cnv.cpp",
+ "../externals/icu/source/common/resource.cpp",
+ "../externals/icu/source/common/ruleiter.cpp",
+ "../externals/icu/source/common/schriter.cpp",
+ "../externals/icu/source/common/serv.cpp",
+ "../externals/icu/source/common/servlk.cpp",
+ "../externals/icu/source/common/servlkf.cpp",
+ "../externals/icu/source/common/servls.cpp",
+ "../externals/icu/source/common/servnotf.cpp",
+ "../externals/icu/source/common/servrbf.cpp",
+ "../externals/icu/source/common/servslkf.cpp",
+ "../externals/icu/source/common/sharedobject.cpp",
+ "../externals/icu/source/common/simplepatternformatter.cpp",
+ "../externals/icu/source/common/stringpiece.cpp",
+ "../externals/icu/source/common/stringtriebuilder.cpp",
+ "../externals/icu/source/common/uarrsort.c",
+ "../externals/icu/source/common/ubidi.c",
+ "../externals/icu/source/common/ubidi_props.c",
+ "../externals/icu/source/common/ubidiln.c",
+ "../externals/icu/source/common/ubidiwrt.c",
+ "../externals/icu/source/common/ubrk.cpp",
+ "../externals/icu/source/common/ucase.cpp",
+ "../externals/icu/source/common/ucasemap.cpp",
+ "../externals/icu/source/common/ucasemap_titlecase_brkiter.cpp",
+ "../externals/icu/source/common/ucat.c",
+ "../externals/icu/source/common/uchar.c",
+ "../externals/icu/source/common/ucharstrie.cpp",
+ "../externals/icu/source/common/ucharstriebuilder.cpp",
+ "../externals/icu/source/common/ucharstrieiterator.cpp",
+ "../externals/icu/source/common/uchriter.cpp",
+ "../externals/icu/source/common/ucln_cmn.cpp",
+ "../externals/icu/source/common/ucmndata.c",
+ "../externals/icu/source/common/ucnv.c",
+ "../externals/icu/source/common/ucnv2022.cpp",
+ "../externals/icu/source/common/ucnv_bld.cpp",
+ "../externals/icu/source/common/ucnv_cb.c",
+ "../externals/icu/source/common/ucnv_cnv.c",
+ "../externals/icu/source/common/ucnv_ct.c",
+ "../externals/icu/source/common/ucnv_err.c",
+ "../externals/icu/source/common/ucnv_ext.cpp",
+ "../externals/icu/source/common/ucnv_io.cpp",
+ "../externals/icu/source/common/ucnv_lmb.c",
+ "../externals/icu/source/common/ucnv_set.c",
+ "../externals/icu/source/common/ucnv_u16.c",
+ "../externals/icu/source/common/ucnv_u32.c",
+ "../externals/icu/source/common/ucnv_u7.c",
+ "../externals/icu/source/common/ucnv_u8.c",
+ "../externals/icu/source/common/ucnvbocu.cpp",
+ "../externals/icu/source/common/ucnvdisp.c",
+ "../externals/icu/source/common/ucnvhz.c",
+ "../externals/icu/source/common/ucnvisci.c",
+ "../externals/icu/source/common/ucnvlat1.c",
+ "../externals/icu/source/common/ucnvmbcs.cpp",
+ "../externals/icu/source/common/ucnvscsu.c",
+ "../externals/icu/source/common/ucnvsel.cpp",
+ "../externals/icu/source/common/ucol_swp.cpp",
+ "../externals/icu/source/common/udata.cpp",
+ "../externals/icu/source/common/udatamem.c",
+ "../externals/icu/source/common/udataswp.c",
+ "../externals/icu/source/common/uenum.c",
+ "../externals/icu/source/common/uhash.c",
+ "../externals/icu/source/common/uhash_us.cpp",
+ "../externals/icu/source/common/uidna.cpp",
+ "../externals/icu/source/common/uinit.cpp",
+ "../externals/icu/source/common/uinvchar.c",
+ "../externals/icu/source/common/uiter.cpp",
+ "../externals/icu/source/common/ulist.c",
+ "../externals/icu/source/common/ulistformatter.cpp",
+ "../externals/icu/source/common/uloc.cpp",
+ "../externals/icu/source/common/uloc_keytype.cpp",
+ "../externals/icu/source/common/uloc_tag.c",
+ "../externals/icu/source/common/umapfile.c",
+ "../externals/icu/source/common/umath.c",
+ "../externals/icu/source/common/umutex.cpp",
+ "../externals/icu/source/common/unames.cpp",
+ "../externals/icu/source/common/unifiedcache.cpp",
+ "../externals/icu/source/common/unifilt.cpp",
+ "../externals/icu/source/common/unifunct.cpp",
+ "../externals/icu/source/common/uniset.cpp",
+ "../externals/icu/source/common/uniset_closure.cpp",
+ "../externals/icu/source/common/uniset_props.cpp",
+ "../externals/icu/source/common/unisetspan.cpp",
+ "../externals/icu/source/common/unistr.cpp",
+ "../externals/icu/source/common/unistr_case.cpp",
+ "../externals/icu/source/common/unistr_case_locale.cpp",
+ "../externals/icu/source/common/unistr_cnv.cpp",
+ "../externals/icu/source/common/unistr_props.cpp",
+ "../externals/icu/source/common/unistr_titlecase_brkiter.cpp",
+ "../externals/icu/source/common/unorm.cpp",
+ "../externals/icu/source/common/unormcmp.cpp",
+ "../externals/icu/source/common/uobject.cpp",
+ "../externals/icu/source/common/uprops.cpp",
+ "../externals/icu/source/common/ures_cnv.c",
+ "../externals/icu/source/common/uresbund.cpp",
+ "../externals/icu/source/common/uresdata.cpp",
+ "../externals/icu/source/common/uresource.cpp",
+ "../externals/icu/source/common/usc_impl.c",
+ "../externals/icu/source/common/uscript.c",
+ "../externals/icu/source/common/uscript_props.cpp",
+ "../externals/icu/source/common/uset.cpp",
+ "../externals/icu/source/common/uset_props.cpp",
+ "../externals/icu/source/common/usetiter.cpp",
+ "../externals/icu/source/common/ushape.cpp",
+ "../externals/icu/source/common/usprep.cpp",
+ "../externals/icu/source/common/ustack.cpp",
+ "../externals/icu/source/common/ustr_cnv.cpp",
+ "../externals/icu/source/common/ustr_titlecase_brkiter.cpp",
+ "../externals/icu/source/common/ustr_wcs.cpp",
+ "../externals/icu/source/common/ustrcase.cpp",
+ "../externals/icu/source/common/ustrcase_locale.cpp",
+ "../externals/icu/source/common/ustrenum.cpp",
+ "../externals/icu/source/common/ustrfmt.c",
+ "../externals/icu/source/common/ustring.cpp",
+ "../externals/icu/source/common/ustrtrns.cpp",
+ "../externals/icu/source/common/utext.cpp",
+ "../externals/icu/source/common/utf_impl.c",
+ "../externals/icu/source/common/util.cpp",
+ "../externals/icu/source/common/util_props.cpp",
+ "../externals/icu/source/common/utrace.c",
+ "../externals/icu/source/common/utrie.cpp",
+ "../externals/icu/source/common/utrie2.cpp",
+ "../externals/icu/source/common/utrie2_builder.cpp",
+ "../externals/icu/source/common/uts46.cpp",
+ "../externals/icu/source/common/utypes.c",
+ "../externals/icu/source/common/uvector.cpp",
+ "../externals/icu/source/common/uvectr32.cpp",
+ "../externals/icu/source/common/uvectr64.cpp",
+ "../externals/icu/source/common/wintz.c",
+ ]
+ sources += [ "../externals/icu/$current_os/icudtl_dat.S" ]
}
- defines = [
- # http://userguide.icu-project.org/howtouseicu
- "U_COMMON_IMPLEMENTATION",
- "U_STATIC_IMPLEMENTATION",
- ]
- sources = [
- "../externals/icu/source/common/appendable.cpp",
- "../externals/icu/source/common/bmpset.cpp",
- "../externals/icu/source/common/brkeng.cpp",
- "../externals/icu/source/common/brkiter.cpp",
- "../externals/icu/source/common/bytestream.cpp",
- "../externals/icu/source/common/bytestrie.cpp",
- "../externals/icu/source/common/bytestriebuilder.cpp",
- "../externals/icu/source/common/bytestrieiterator.cpp",
- "../externals/icu/source/common/caniter.cpp",
- "../externals/icu/source/common/chariter.cpp",
- "../externals/icu/source/common/charstr.cpp",
- "../externals/icu/source/common/cmemory.c",
- "../externals/icu/source/common/cstring.c",
- "../externals/icu/source/common/cwchar.c",
- "../externals/icu/source/common/dictbe.cpp",
- "../externals/icu/source/common/dictionarydata.cpp",
- "../externals/icu/source/common/dtintrv.cpp",
- "../externals/icu/source/common/errorcode.cpp",
- "../externals/icu/source/common/filteredbrk.cpp",
- "../externals/icu/source/common/filterednormalizer2.cpp",
- "../externals/icu/source/common/icudataver.c",
- "../externals/icu/source/common/icuplug.cpp",
- "../externals/icu/source/common/listformatter.cpp",
- "../externals/icu/source/common/loadednormalizer2impl.cpp",
- "../externals/icu/source/common/locavailable.cpp",
- "../externals/icu/source/common/locbased.cpp",
- "../externals/icu/source/common/locdispnames.cpp",
- "../externals/icu/source/common/locid.cpp",
- "../externals/icu/source/common/loclikely.cpp",
- "../externals/icu/source/common/locmap.c",
- "../externals/icu/source/common/locresdata.cpp",
- "../externals/icu/source/common/locutil.cpp",
- "../externals/icu/source/common/messagepattern.cpp",
- "../externals/icu/source/common/normalizer2.cpp",
- "../externals/icu/source/common/normalizer2impl.cpp",
- "../externals/icu/source/common/normlzr.cpp",
- "../externals/icu/source/common/parsepos.cpp",
- "../externals/icu/source/common/patternprops.cpp",
- "../externals/icu/source/common/pluralmap.cpp",
- "../externals/icu/source/common/propname.cpp",
- "../externals/icu/source/common/propsvec.c",
- "../externals/icu/source/common/punycode.cpp",
- "../externals/icu/source/common/putil.cpp",
- "../externals/icu/source/common/rbbi.cpp",
- "../externals/icu/source/common/rbbidata.cpp",
- "../externals/icu/source/common/rbbinode.cpp",
- "../externals/icu/source/common/rbbirb.cpp",
- "../externals/icu/source/common/rbbiscan.cpp",
- "../externals/icu/source/common/rbbisetb.cpp",
- "../externals/icu/source/common/rbbistbl.cpp",
- "../externals/icu/source/common/rbbitblb.cpp",
- "../externals/icu/source/common/resbund.cpp",
- "../externals/icu/source/common/resbund_cnv.cpp",
- "../externals/icu/source/common/resource.cpp",
- "../externals/icu/source/common/ruleiter.cpp",
- "../externals/icu/source/common/schriter.cpp",
- "../externals/icu/source/common/serv.cpp",
- "../externals/icu/source/common/servlk.cpp",
- "../externals/icu/source/common/servlkf.cpp",
- "../externals/icu/source/common/servls.cpp",
- "../externals/icu/source/common/servnotf.cpp",
- "../externals/icu/source/common/servrbf.cpp",
- "../externals/icu/source/common/servslkf.cpp",
- "../externals/icu/source/common/sharedobject.cpp",
- "../externals/icu/source/common/simplepatternformatter.cpp",
- "../externals/icu/source/common/stringpiece.cpp",
- "../externals/icu/source/common/stringtriebuilder.cpp",
- "../externals/icu/source/common/uarrsort.c",
- "../externals/icu/source/common/ubidi.c",
- "../externals/icu/source/common/ubidi_props.c",
- "../externals/icu/source/common/ubidiln.c",
- "../externals/icu/source/common/ubidiwrt.c",
- "../externals/icu/source/common/ubrk.cpp",
- "../externals/icu/source/common/ucase.cpp",
- "../externals/icu/source/common/ucasemap.cpp",
- "../externals/icu/source/common/ucasemap_titlecase_brkiter.cpp",
- "../externals/icu/source/common/ucat.c",
- "../externals/icu/source/common/uchar.c",
- "../externals/icu/source/common/ucharstrie.cpp",
- "../externals/icu/source/common/ucharstriebuilder.cpp",
- "../externals/icu/source/common/ucharstrieiterator.cpp",
- "../externals/icu/source/common/uchriter.cpp",
- "../externals/icu/source/common/ucln_cmn.cpp",
- "../externals/icu/source/common/ucmndata.c",
- "../externals/icu/source/common/ucnv.c",
- "../externals/icu/source/common/ucnv2022.cpp",
- "../externals/icu/source/common/ucnv_bld.cpp",
- "../externals/icu/source/common/ucnv_cb.c",
- "../externals/icu/source/common/ucnv_cnv.c",
- "../externals/icu/source/common/ucnv_ct.c",
- "../externals/icu/source/common/ucnv_err.c",
- "../externals/icu/source/common/ucnv_ext.cpp",
- "../externals/icu/source/common/ucnv_io.cpp",
- "../externals/icu/source/common/ucnv_lmb.c",
- "../externals/icu/source/common/ucnv_set.c",
- "../externals/icu/source/common/ucnv_u16.c",
- "../externals/icu/source/common/ucnv_u32.c",
- "../externals/icu/source/common/ucnv_u7.c",
- "../externals/icu/source/common/ucnv_u8.c",
- "../externals/icu/source/common/ucnvbocu.cpp",
- "../externals/icu/source/common/ucnvdisp.c",
- "../externals/icu/source/common/ucnvhz.c",
- "../externals/icu/source/common/ucnvisci.c",
- "../externals/icu/source/common/ucnvlat1.c",
- "../externals/icu/source/common/ucnvmbcs.cpp",
- "../externals/icu/source/common/ucnvscsu.c",
- "../externals/icu/source/common/ucnvsel.cpp",
- "../externals/icu/source/common/ucol_swp.cpp",
- "../externals/icu/source/common/udata.cpp",
- "../externals/icu/source/common/udatamem.c",
- "../externals/icu/source/common/udataswp.c",
- "../externals/icu/source/common/uenum.c",
- "../externals/icu/source/common/uhash.c",
- "../externals/icu/source/common/uhash_us.cpp",
- "../externals/icu/source/common/uidna.cpp",
- "../externals/icu/source/common/uinit.cpp",
- "../externals/icu/source/common/uinvchar.c",
- "../externals/icu/source/common/uiter.cpp",
- "../externals/icu/source/common/ulist.c",
- "../externals/icu/source/common/ulistformatter.cpp",
- "../externals/icu/source/common/uloc.cpp",
- "../externals/icu/source/common/uloc_keytype.cpp",
- "../externals/icu/source/common/uloc_tag.c",
- "../externals/icu/source/common/umapfile.c",
- "../externals/icu/source/common/umath.c",
- "../externals/icu/source/common/umutex.cpp",
- "../externals/icu/source/common/unames.cpp",
- "../externals/icu/source/common/unifiedcache.cpp",
- "../externals/icu/source/common/unifilt.cpp",
- "../externals/icu/source/common/unifunct.cpp",
- "../externals/icu/source/common/uniset.cpp",
- "../externals/icu/source/common/uniset_closure.cpp",
- "../externals/icu/source/common/uniset_props.cpp",
- "../externals/icu/source/common/unisetspan.cpp",
- "../externals/icu/source/common/unistr.cpp",
- "../externals/icu/source/common/unistr_case.cpp",
- "../externals/icu/source/common/unistr_case_locale.cpp",
- "../externals/icu/source/common/unistr_cnv.cpp",
- "../externals/icu/source/common/unistr_props.cpp",
- "../externals/icu/source/common/unistr_titlecase_brkiter.cpp",
- "../externals/icu/source/common/unorm.cpp",
- "../externals/icu/source/common/unormcmp.cpp",
- "../externals/icu/source/common/uobject.cpp",
- "../externals/icu/source/common/uprops.cpp",
- "../externals/icu/source/common/ures_cnv.c",
- "../externals/icu/source/common/uresbund.cpp",
- "../externals/icu/source/common/uresdata.cpp",
- "../externals/icu/source/common/uresource.cpp",
- "../externals/icu/source/common/usc_impl.c",
- "../externals/icu/source/common/uscript.c",
- "../externals/icu/source/common/uscript_props.cpp",
- "../externals/icu/source/common/uset.cpp",
- "../externals/icu/source/common/uset_props.cpp",
- "../externals/icu/source/common/usetiter.cpp",
- "../externals/icu/source/common/ushape.cpp",
- "../externals/icu/source/common/usprep.cpp",
- "../externals/icu/source/common/ustack.cpp",
- "../externals/icu/source/common/ustr_cnv.cpp",
- "../externals/icu/source/common/ustr_titlecase_brkiter.cpp",
- "../externals/icu/source/common/ustr_wcs.cpp",
- "../externals/icu/source/common/ustrcase.cpp",
- "../externals/icu/source/common/ustrcase_locale.cpp",
- "../externals/icu/source/common/ustrenum.cpp",
- "../externals/icu/source/common/ustrfmt.c",
- "../externals/icu/source/common/ustring.cpp",
- "../externals/icu/source/common/ustrtrns.cpp",
- "../externals/icu/source/common/utext.cpp",
- "../externals/icu/source/common/utf_impl.c",
- "../externals/icu/source/common/util.cpp",
- "../externals/icu/source/common/util_props.cpp",
- "../externals/icu/source/common/utrace.c",
- "../externals/icu/source/common/utrie.cpp",
- "../externals/icu/source/common/utrie2.cpp",
- "../externals/icu/source/common/utrie2_builder.cpp",
- "../externals/icu/source/common/uts46.cpp",
- "../externals/icu/source/common/utypes.c",
- "../externals/icu/source/common/uvector.cpp",
- "../externals/icu/source/common/uvectr32.cpp",
- "../externals/icu/source/common/uvectr64.cpp",
- "../externals/icu/source/common/wintz.c",
- ]
- sources += [ "../externals/icu/$current_os/icudtl_dat.S" ]
}
diff --git a/third_party/libjpeg-turbo/BUILD.gn b/third_party/libjpeg-turbo/BUILD.gn
index 95a381b8e6..c0382a719c 100644
--- a/third_party/libjpeg-turbo/BUILD.gn
+++ b/third_party/libjpeg-turbo/BUILD.gn
@@ -4,58 +4,65 @@
# found in the LICENSE file.
declare_args() {
+ skia_use_system_libjpeg_turbo = false
}
import("../third_party.gni")
-third_party("libjpeg") {
- public_include_dirs = [ "../externals/libjpeg-turbo" ]
+if (skia_use_system_libjpeg_turbo) {
+ system("libjpeg") {
+ libs = [ "jpeg" ]
+ }
+} else {
+ third_party("libjpeg") {
+ public_include_dirs = [ "../externals/libjpeg-turbo" ]
- defines = [ "TURBO_FOR_WINDOWS" ]
+ defines = [ "TURBO_FOR_WINDOWS" ]
- sources = [
- "../externals/libjpeg-turbo/jcapimin.c",
- "../externals/libjpeg-turbo/jcapistd.c",
- "../externals/libjpeg-turbo/jccoefct.c",
- "../externals/libjpeg-turbo/jccolor.c",
- "../externals/libjpeg-turbo/jcdctmgr.c",
- "../externals/libjpeg-turbo/jchuff.c",
- "../externals/libjpeg-turbo/jcinit.c",
- "../externals/libjpeg-turbo/jcmainct.c",
- "../externals/libjpeg-turbo/jcmarker.c",
- "../externals/libjpeg-turbo/jcmaster.c",
- "../externals/libjpeg-turbo/jcomapi.c",
- "../externals/libjpeg-turbo/jcparam.c",
- "../externals/libjpeg-turbo/jcphuff.c",
- "../externals/libjpeg-turbo/jcprepct.c",
- "../externals/libjpeg-turbo/jcsample.c",
- "../externals/libjpeg-turbo/jdapimin.c",
- "../externals/libjpeg-turbo/jdapistd.c",
- "../externals/libjpeg-turbo/jdcoefct.c",
- "../externals/libjpeg-turbo/jdcolor.c",
- "../externals/libjpeg-turbo/jddctmgr.c",
- "../externals/libjpeg-turbo/jdhuff.c",
- "../externals/libjpeg-turbo/jdinput.c",
- "../externals/libjpeg-turbo/jdmainct.c",
- "../externals/libjpeg-turbo/jdmarker.c",
- "../externals/libjpeg-turbo/jdmaster.c",
- "../externals/libjpeg-turbo/jdmerge.c",
- "../externals/libjpeg-turbo/jdphuff.c",
- "../externals/libjpeg-turbo/jdpostct.c",
- "../externals/libjpeg-turbo/jdsample.c",
- "../externals/libjpeg-turbo/jerror.c",
- "../externals/libjpeg-turbo/jfdctflt.c",
- "../externals/libjpeg-turbo/jfdctfst.c",
- "../externals/libjpeg-turbo/jfdctint.c",
- "../externals/libjpeg-turbo/jidctflt.c",
- "../externals/libjpeg-turbo/jidctfst.c",
- "../externals/libjpeg-turbo/jidctint.c",
- "../externals/libjpeg-turbo/jidctred.c",
- "../externals/libjpeg-turbo/jmemmgr.c",
- "../externals/libjpeg-turbo/jmemnobs.c",
- "../externals/libjpeg-turbo/jquant1.c",
- "../externals/libjpeg-turbo/jquant2.c",
- "../externals/libjpeg-turbo/jsimd_none.c",
- "../externals/libjpeg-turbo/jutils.c",
- ]
+ sources = [
+ "../externals/libjpeg-turbo/jcapimin.c",
+ "../externals/libjpeg-turbo/jcapistd.c",
+ "../externals/libjpeg-turbo/jccoefct.c",
+ "../externals/libjpeg-turbo/jccolor.c",
+ "../externals/libjpeg-turbo/jcdctmgr.c",
+ "../externals/libjpeg-turbo/jchuff.c",
+ "../externals/libjpeg-turbo/jcinit.c",
+ "../externals/libjpeg-turbo/jcmainct.c",
+ "../externals/libjpeg-turbo/jcmarker.c",
+ "../externals/libjpeg-turbo/jcmaster.c",
+ "../externals/libjpeg-turbo/jcomapi.c",
+ "../externals/libjpeg-turbo/jcparam.c",
+ "../externals/libjpeg-turbo/jcphuff.c",
+ "../externals/libjpeg-turbo/jcprepct.c",
+ "../externals/libjpeg-turbo/jcsample.c",
+ "../externals/libjpeg-turbo/jdapimin.c",
+ "../externals/libjpeg-turbo/jdapistd.c",
+ "../externals/libjpeg-turbo/jdcoefct.c",
+ "../externals/libjpeg-turbo/jdcolor.c",
+ "../externals/libjpeg-turbo/jddctmgr.c",
+ "../externals/libjpeg-turbo/jdhuff.c",
+ "../externals/libjpeg-turbo/jdinput.c",
+ "../externals/libjpeg-turbo/jdmainct.c",
+ "../externals/libjpeg-turbo/jdmarker.c",
+ "../externals/libjpeg-turbo/jdmaster.c",
+ "../externals/libjpeg-turbo/jdmerge.c",
+ "../externals/libjpeg-turbo/jdphuff.c",
+ "../externals/libjpeg-turbo/jdpostct.c",
+ "../externals/libjpeg-turbo/jdsample.c",
+ "../externals/libjpeg-turbo/jerror.c",
+ "../externals/libjpeg-turbo/jfdctflt.c",
+ "../externals/libjpeg-turbo/jfdctfst.c",
+ "../externals/libjpeg-turbo/jfdctint.c",
+ "../externals/libjpeg-turbo/jidctflt.c",
+ "../externals/libjpeg-turbo/jidctfst.c",
+ "../externals/libjpeg-turbo/jidctint.c",
+ "../externals/libjpeg-turbo/jidctred.c",
+ "../externals/libjpeg-turbo/jmemmgr.c",
+ "../externals/libjpeg-turbo/jmemnobs.c",
+ "../externals/libjpeg-turbo/jquant1.c",
+ "../externals/libjpeg-turbo/jquant2.c",
+ "../externals/libjpeg-turbo/jsimd_none.c",
+ "../externals/libjpeg-turbo/jutils.c",
+ ]
+ }
}
diff --git a/third_party/libpng/BUILD.gn b/third_party/libpng/BUILD.gn
index 5cd865529e..2e3c01c399 100644
--- a/third_party/libpng/BUILD.gn
+++ b/third_party/libpng/BUILD.gn
@@ -4,38 +4,45 @@
# found in the LICENSE file.
declare_args() {
+ skia_use_system_libpng = false
}
import("../third_party.gni")
-third_party("libpng") {
- public_include_dirs = [ "." ]
-
- deps = [
- "//third_party/zlib",
- ]
- sources = [
- "png.c",
- "pngerror.c",
- "pngget.c",
- "pngmem.c",
- "pngpread.c",
- "pngread.c",
- "pngrio.c",
- "pngrtran.c",
- "pngrutil.c",
- "pngset.c",
- "pngtrans.c",
- "pngwio.c",
- "pngwrite.c",
- "pngwtran.c",
- "pngwutil.c",
- ]
+if (skia_use_system_libpng) {
+ system("libpng") {
+ libs = [ "png" ]
+ }
+} else {
+ third_party("libpng") {
+ public_include_dirs = [ "." ]
- if (current_cpu == "arm" || current_cpu == "arm64") {
- sources += [
- "arm/arm_init.c",
- "arm/filter_neon_intrinsics.c",
+ deps = [
+ "//third_party/zlib",
]
+ sources = [
+ "png.c",
+ "pngerror.c",
+ "pngget.c",
+ "pngmem.c",
+ "pngpread.c",
+ "pngread.c",
+ "pngrio.c",
+ "pngrtran.c",
+ "pngrutil.c",
+ "pngset.c",
+ "pngtrans.c",
+ "pngwio.c",
+ "pngwrite.c",
+ "pngwtran.c",
+ "pngwutil.c",
+ ]
+
+ if (current_cpu == "arm" || current_cpu == "arm64") {
+ sources += [
+ "arm/arm_init.c",
+ "arm/filter_neon_intrinsics.c",
+ ]
+ }
}
}
diff --git a/third_party/libwebp/BUILD.gn b/third_party/libwebp/BUILD.gn
index ec51cd3b38..e7dc336534 100644
--- a/third_party/libwebp/BUILD.gn
+++ b/third_party/libwebp/BUILD.gn
@@ -4,123 +4,133 @@
# found in the LICENSE file.
declare_args() {
+ skia_use_system_libwebp = false
}
import("../third_party.gni")
-third_party("libwebp") {
- public_include_dirs = [ "../externals/libwebp/src" ]
-
- if (is_android) {
- deps = [
- "//third_party/cpu-features",
+if (skia_use_system_libwebp) {
+ system("libwebp") {
+ libs = [
+ "webp",
+ "webpdemux",
]
}
+} else {
+ third_party("libwebp") {
+ public_include_dirs = [ "../externals/libwebp/src" ]
+
+ if (is_android) {
+ deps = [
+ "//third_party/cpu-features",
+ ]
+ }
- defines = [
- # WebP naturally decodes to RGB_565, and we work with BGR_565.
- # This makes WebP decode to BGR_565 when we ask for RGB_565.
- # (It also swaps the color order for 4444, but we don't care today.)
- # TODO: swizzle ourself in SkWebpCodec instead of requiring this non-standard libwebp.
- "WEBP_SWAP_16BIT_CSP",
- ]
+ defines = [
+ # WebP naturally decodes to RGB_565, and we work with BGR_565.
+ # This makes WebP decode to BGR_565 when we ask for RGB_565.
+ # (It also swaps the color order for 4444, but we don't care today.)
+ # TODO: swizzle ourself in SkWebpCodec instead of requiring this non-standard libwebp.
+ "WEBP_SWAP_16BIT_CSP",
+ ]
- sources = [
- "../externals/libwebp/src/dec/alpha.c",
- "../externals/libwebp/src/dec/buffer.c",
- "../externals/libwebp/src/dec/frame.c",
- "../externals/libwebp/src/dec/idec.c",
- "../externals/libwebp/src/dec/io.c",
- "../externals/libwebp/src/dec/quant.c",
- "../externals/libwebp/src/dec/tree.c",
- "../externals/libwebp/src/dec/vp8.c",
- "../externals/libwebp/src/dec/vp8l.c",
- "../externals/libwebp/src/dec/webp.c",
- "../externals/libwebp/src/demux/demux.c",
- "../externals/libwebp/src/dsp/alpha_processing.c",
- "../externals/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/alpha_processing_sse2.c",
- "../externals/libwebp/src/dsp/alpha_processing_sse41.c",
- "../externals/libwebp/src/dsp/argb.c",
- "../externals/libwebp/src/dsp/argb_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/argb_sse2.c",
- "../externals/libwebp/src/dsp/cost.c",
- "../externals/libwebp/src/dsp/cost_mips32.c",
- "../externals/libwebp/src/dsp/cost_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/cost_sse2.c",
- "../externals/libwebp/src/dsp/cpu.c",
- "../externals/libwebp/src/dsp/dec.c",
- "../externals/libwebp/src/dsp/dec_clip_tables.c",
- "../externals/libwebp/src/dsp/dec_mips32.c",
- "../externals/libwebp/src/dsp/dec_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/dec_neon.c",
- "../externals/libwebp/src/dsp/dec_sse2.c",
- "../externals/libwebp/src/dsp/dec_sse41.c",
- "../externals/libwebp/src/dsp/enc.c",
- "../externals/libwebp/src/dsp/enc_avx2.c",
- "../externals/libwebp/src/dsp/enc_mips32.c",
- "../externals/libwebp/src/dsp/enc_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/enc_neon.c",
- "../externals/libwebp/src/dsp/enc_sse2.c",
- "../externals/libwebp/src/dsp/enc_sse41.c",
- "../externals/libwebp/src/dsp/filters.c",
- "../externals/libwebp/src/dsp/filters_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/filters_sse2.c",
- "../externals/libwebp/src/dsp/lossless.c",
- "../externals/libwebp/src/dsp/lossless_enc.c",
- "../externals/libwebp/src/dsp/lossless_enc_mips32.c",
- "../externals/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/lossless_enc_neon.c",
- "../externals/libwebp/src/dsp/lossless_enc_sse2.c",
- "../externals/libwebp/src/dsp/lossless_enc_sse41.c",
- "../externals/libwebp/src/dsp/lossless_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/lossless_neon.c",
- "../externals/libwebp/src/dsp/lossless_sse2.c",
- "../externals/libwebp/src/dsp/rescaler.c",
- "../externals/libwebp/src/dsp/rescaler_mips32.c",
- "../externals/libwebp/src/dsp/rescaler_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/rescaler_neon.c",
- "../externals/libwebp/src/dsp/rescaler_sse2.c",
- "../externals/libwebp/src/dsp/upsampling.c",
- "../externals/libwebp/src/dsp/upsampling_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/upsampling_neon.c",
- "../externals/libwebp/src/dsp/upsampling_sse2.c",
- "../externals/libwebp/src/dsp/yuv.c",
- "../externals/libwebp/src/dsp/yuv_mips32.c",
- "../externals/libwebp/src/dsp/yuv_mips_dsp_r2.c",
- "../externals/libwebp/src/dsp/yuv_sse2.c",
- "../externals/libwebp/src/enc/alpha.c",
- "../externals/libwebp/src/enc/analysis.c",
- "../externals/libwebp/src/enc/backward_references.c",
- "../externals/libwebp/src/enc/config.c",
- "../externals/libwebp/src/enc/cost.c",
- "../externals/libwebp/src/enc/filter.c",
- "../externals/libwebp/src/enc/frame.c",
- "../externals/libwebp/src/enc/histogram.c",
- "../externals/libwebp/src/enc/iterator.c",
- "../externals/libwebp/src/enc/near_lossless.c",
- "../externals/libwebp/src/enc/picture.c",
- "../externals/libwebp/src/enc/picture_csp.c",
- "../externals/libwebp/src/enc/picture_psnr.c",
- "../externals/libwebp/src/enc/picture_rescale.c",
- "../externals/libwebp/src/enc/picture_tools.c",
- "../externals/libwebp/src/enc/quant.c",
- "../externals/libwebp/src/enc/syntax.c",
- "../externals/libwebp/src/enc/token.c",
- "../externals/libwebp/src/enc/tree.c",
- "../externals/libwebp/src/enc/vp8l.c",
- "../externals/libwebp/src/enc/webpenc.c",
- "../externals/libwebp/src/utils/bit_reader.c",
- "../externals/libwebp/src/utils/bit_writer.c",
- "../externals/libwebp/src/utils/color_cache.c",
- "../externals/libwebp/src/utils/filters.c",
- "../externals/libwebp/src/utils/huffman.c",
- "../externals/libwebp/src/utils/huffman_encode.c",
- "../externals/libwebp/src/utils/quant_levels.c",
- "../externals/libwebp/src/utils/quant_levels_dec.c",
- "../externals/libwebp/src/utils/random.c",
- "../externals/libwebp/src/utils/rescaler.c",
- "../externals/libwebp/src/utils/thread.c",
- "../externals/libwebp/src/utils/utils.c",
- ]
+ sources = [
+ "../externals/libwebp/src/dec/alpha.c",
+ "../externals/libwebp/src/dec/buffer.c",
+ "../externals/libwebp/src/dec/frame.c",
+ "../externals/libwebp/src/dec/idec.c",
+ "../externals/libwebp/src/dec/io.c",
+ "../externals/libwebp/src/dec/quant.c",
+ "../externals/libwebp/src/dec/tree.c",
+ "../externals/libwebp/src/dec/vp8.c",
+ "../externals/libwebp/src/dec/vp8l.c",
+ "../externals/libwebp/src/dec/webp.c",
+ "../externals/libwebp/src/demux/demux.c",
+ "../externals/libwebp/src/dsp/alpha_processing.c",
+ "../externals/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/alpha_processing_sse2.c",
+ "../externals/libwebp/src/dsp/alpha_processing_sse41.c",
+ "../externals/libwebp/src/dsp/argb.c",
+ "../externals/libwebp/src/dsp/argb_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/argb_sse2.c",
+ "../externals/libwebp/src/dsp/cost.c",
+ "../externals/libwebp/src/dsp/cost_mips32.c",
+ "../externals/libwebp/src/dsp/cost_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/cost_sse2.c",
+ "../externals/libwebp/src/dsp/cpu.c",
+ "../externals/libwebp/src/dsp/dec.c",
+ "../externals/libwebp/src/dsp/dec_clip_tables.c",
+ "../externals/libwebp/src/dsp/dec_mips32.c",
+ "../externals/libwebp/src/dsp/dec_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/dec_neon.c",
+ "../externals/libwebp/src/dsp/dec_sse2.c",
+ "../externals/libwebp/src/dsp/dec_sse41.c",
+ "../externals/libwebp/src/dsp/enc.c",
+ "../externals/libwebp/src/dsp/enc_avx2.c",
+ "../externals/libwebp/src/dsp/enc_mips32.c",
+ "../externals/libwebp/src/dsp/enc_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/enc_neon.c",
+ "../externals/libwebp/src/dsp/enc_sse2.c",
+ "../externals/libwebp/src/dsp/enc_sse41.c",
+ "../externals/libwebp/src/dsp/filters.c",
+ "../externals/libwebp/src/dsp/filters_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/filters_sse2.c",
+ "../externals/libwebp/src/dsp/lossless.c",
+ "../externals/libwebp/src/dsp/lossless_enc.c",
+ "../externals/libwebp/src/dsp/lossless_enc_mips32.c",
+ "../externals/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/lossless_enc_neon.c",
+ "../externals/libwebp/src/dsp/lossless_enc_sse2.c",
+ "../externals/libwebp/src/dsp/lossless_enc_sse41.c",
+ "../externals/libwebp/src/dsp/lossless_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/lossless_neon.c",
+ "../externals/libwebp/src/dsp/lossless_sse2.c",
+ "../externals/libwebp/src/dsp/rescaler.c",
+ "../externals/libwebp/src/dsp/rescaler_mips32.c",
+ "../externals/libwebp/src/dsp/rescaler_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/rescaler_neon.c",
+ "../externals/libwebp/src/dsp/rescaler_sse2.c",
+ "../externals/libwebp/src/dsp/upsampling.c",
+ "../externals/libwebp/src/dsp/upsampling_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/upsampling_neon.c",
+ "../externals/libwebp/src/dsp/upsampling_sse2.c",
+ "../externals/libwebp/src/dsp/yuv.c",
+ "../externals/libwebp/src/dsp/yuv_mips32.c",
+ "../externals/libwebp/src/dsp/yuv_mips_dsp_r2.c",
+ "../externals/libwebp/src/dsp/yuv_sse2.c",
+ "../externals/libwebp/src/enc/alpha.c",
+ "../externals/libwebp/src/enc/analysis.c",
+ "../externals/libwebp/src/enc/backward_references.c",
+ "../externals/libwebp/src/enc/config.c",
+ "../externals/libwebp/src/enc/cost.c",
+ "../externals/libwebp/src/enc/filter.c",
+ "../externals/libwebp/src/enc/frame.c",
+ "../externals/libwebp/src/enc/histogram.c",
+ "../externals/libwebp/src/enc/iterator.c",
+ "../externals/libwebp/src/enc/near_lossless.c",
+ "../externals/libwebp/src/enc/picture.c",
+ "../externals/libwebp/src/enc/picture_csp.c",
+ "../externals/libwebp/src/enc/picture_psnr.c",
+ "../externals/libwebp/src/enc/picture_rescale.c",
+ "../externals/libwebp/src/enc/picture_tools.c",
+ "../externals/libwebp/src/enc/quant.c",
+ "../externals/libwebp/src/enc/syntax.c",
+ "../externals/libwebp/src/enc/token.c",
+ "../externals/libwebp/src/enc/tree.c",
+ "../externals/libwebp/src/enc/vp8l.c",
+ "../externals/libwebp/src/enc/webpenc.c",
+ "../externals/libwebp/src/utils/bit_reader.c",
+ "../externals/libwebp/src/utils/bit_writer.c",
+ "../externals/libwebp/src/utils/color_cache.c",
+ "../externals/libwebp/src/utils/filters.c",
+ "../externals/libwebp/src/utils/huffman.c",
+ "../externals/libwebp/src/utils/huffman_encode.c",
+ "../externals/libwebp/src/utils/quant_levels.c",
+ "../externals/libwebp/src/utils/quant_levels_dec.c",
+ "../externals/libwebp/src/utils/random.c",
+ "../externals/libwebp/src/utils/rescaler.c",
+ "../externals/libwebp/src/utils/thread.c",
+ "../externals/libwebp/src/utils/utils.c",
+ ]
+ }
}
diff --git a/third_party/third_party.gni b/third_party/third_party.gni
index 5764c97108..7aaf63586f 100644
--- a/third_party/third_party.gni
+++ b/third_party/third_party.gni
@@ -26,3 +26,12 @@ template("third_party") {
set_defaults("third_party") {
configs = default_configs - [ "//gn:warnings" ]
}
+
+template("system") {
+ config(target_name + "_public") {
+ forward_variables_from(invoker, "*", [])
+ }
+ group(target_name) {
+ public_configs = [ ":" + target_name + "_public" ]
+ }
+}
diff --git a/third_party/zlib/BUILD.gn b/third_party/zlib/BUILD.gn
index 8909ea50f1..e7776f5ffb 100644
--- a/third_party/zlib/BUILD.gn
+++ b/third_party/zlib/BUILD.gn
@@ -4,29 +4,36 @@
# found in the LICENSE file.
declare_args() {
+ skia_use_system_zlib = false
}
import("../third_party.gni")
-third_party("zlib") {
- public_include_dirs = [ "../externals/zlib" ]
+if (skia_use_system_zlib) {
+ system("zlib") {
+ libs = [ "z" ]
+ }
+} else {
+ third_party("zlib") {
+ public_include_dirs = [ "../externals/zlib" ]
- sources = [
- "../externals/zlib/adler32.c",
- "../externals/zlib/compress.c",
- "../externals/zlib/crc32.c",
- "../externals/zlib/deflate.c",
- "../externals/zlib/gzclose.c",
- "../externals/zlib/gzlib.c",
- "../externals/zlib/gzread.c",
- "../externals/zlib/gzwrite.c",
- "../externals/zlib/infback.c",
- "../externals/zlib/inffast.c",
- "../externals/zlib/inflate.c",
- "../externals/zlib/inftrees.c",
- "../externals/zlib/simd_stub.c",
- "../externals/zlib/trees.c",
- "../externals/zlib/uncompr.c",
- "../externals/zlib/zutil.c",
- ]
+ sources = [
+ "../externals/zlib/adler32.c",
+ "../externals/zlib/compress.c",
+ "../externals/zlib/crc32.c",
+ "../externals/zlib/deflate.c",
+ "../externals/zlib/gzclose.c",
+ "../externals/zlib/gzlib.c",
+ "../externals/zlib/gzread.c",
+ "../externals/zlib/gzwrite.c",
+ "../externals/zlib/infback.c",
+ "../externals/zlib/inffast.c",
+ "../externals/zlib/inflate.c",
+ "../externals/zlib/inftrees.c",
+ "../externals/zlib/simd_stub.c",
+ "../externals/zlib/trees.c",
+ "../externals/zlib/uncompr.c",
+ "../externals/zlib/zutil.c",
+ ]
+ }
}