aboutsummaryrefslogtreecommitdiffhomepage
path: root/gyp
diff options
context:
space:
mode:
Diffstat (limited to 'gyp')
-rw-r--r--gyp/common_conditions.gypi6
-rw-r--r--gyp/common_variables.gypi2
-rw-r--r--gyp/opts.gyp17
3 files changed, 24 insertions, 1 deletions
diff --git a/gyp/common_conditions.gypi b/gyp/common_conditions.gypi
index 82f63f375b..777473b9cf 100644
--- a/gyp/common_conditions.gypi
+++ b/gyp/common_conditions.gypi
@@ -8,6 +8,12 @@
'SK_FORCE_DISTANCEFIELD_FONTS=<(skia_force_distancefield_fonts)',
],
'conditions' : [
+ [ 'skia_arch_type == "arm64"', {
+ 'cflags': [
+ '-ffp-contract=off',
+ ],
+ }],
+
[ 'skia_os == "win"',
{
'defines': [
diff --git a/gyp/common_variables.gypi b/gyp/common_variables.gypi
index 6145d47e01..0d749f4004 100644
--- a/gyp/common_variables.gypi
+++ b/gyp/common_variables.gypi
@@ -72,7 +72,7 @@
}, {
'skia_poppler_enabled%': 0,
}],
- [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "mac"]', {
+ [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "mac"] or skia_arch_type == "arm64"', {
'skia_arch_width%': 64,
}, {
'skia_arch_width%': 32,
diff --git a/gyp/opts.gyp b/gyp/opts.gyp
index 2fd0e95809..783ea4eb7a 100644
--- a/gyp/opts.gyp
+++ b/gyp/opts.gyp
@@ -122,6 +122,23 @@
'-mno-apcs-frame',
]
}],
+ [ 'skia_arch_type == "arm64"', {
+ 'sources': [
+ '../src/opts/SkBitmapProcState_arm_neon.cpp',
+ '../src/opts/SkBitmapProcState_matrixProcs_neon.cpp',
+ '../src/opts/SkBitmapProcState_opts_arm.cpp',
+ '../src/opts/SkBlitMask_opts_arm.cpp',
+ '../src/opts/SkBlitMask_opts_arm_neon.cpp',
+ '../src/opts/SkBlitRow_opts_none.cpp',
+ '../src/opts/SkBlurImage_opts_arm.cpp',
+ '../src/opts/SkBlurImage_opts_neon.cpp',
+ '../src/opts/SkMorphology_opts_arm.cpp',
+ '../src/opts/SkMorphology_opts_neon.cpp',
+ '../src/opts/SkUtils_opts_none.cpp',
+ '../src/opts/SkXfermode_opts_arm.cpp',
+ '../src/opts/SkXfermode_opts_arm_neon.cpp',
+ ],
+ }],
],
},
# For the same lame reasons as what is done for skia_opts, we have to