skia2/gyp/core.gyp
commit-bot@chromium.org 64f6d15451 Use SkAtomics_sync on Android
Every doc I've found about using Android's atomics says, "stop".

"* A handful of basic atomic operations.  The appropriate pthread
 * functions should be used instead of these whenever possible."

"... we recommend stopping from using these functions entirely. Very fortunately, GCC provides handy intrinsics functions that work with very reasonable performance and always provide a full barrier."

As far as I can tell, there's no code generation change here: both the __sync atomics and the android_ atomics use full memory barriers.  (And now with this all unified, it'll be easier to get the real wins by switching everything to __atomic atomics, which are like __sync atomics but allow control over memory barriers.)

BUG=skia:
R=bungeman@google.com, djsollen@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/305593002

git-svn-id: http://skia.googlecode.com/svn/trunk@14896 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 15:55:35 +00:00

125 lines
3.6 KiB
Python

# Core Skia library code.
{
'targets': [
{
'target_name': 'core',
'product_name': 'skia_core',
'type': 'static_library',
'standalone_static_library': 1,
'msvs_guid': 'B7760B5E-BFA8-486B-ACFD-49E3A6DE8E76',
'includes': [
'core.gypi',
],
'include_dirs': [
'../include/config',
'../include/core',
'../include/pathops',
'../include/pipe',
'../include/ports',
'../include/utils',
'../include/xml',
'../src/core',
'../src/opts',
'../src/image',
],
'sources': [
'core.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
],
'msvs_disabled_warnings': [4244, 4267,4345, 4390, 4554, 4800],
'conditions': [
[ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
'link_settings': {
'libraries': [
'-lpthread',
],
},
}],
[ 'skia_os == "mac"', {
'include_dirs': [
'../include/utils/mac',
],
'sources': [
'../include/utils/mac/SkCGUtils.h',
],
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework',
],
},
}],
[ 'skia_os == "ios"', {
'include_dirs': [
'../include/utils/ios',
],
'sources': [
'../include/utils/mac/SkCGUtils.h',
],
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
'$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
'$(SDKROOT)/System/Library/Frameworks/CoreText.framework',
'$(SDKROOT)/System/Library/Frameworks/UIKit.framework',
'$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
'$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
'$(SDKROOT)/System/Library/Frameworks/OpenGLES.framework',
'$(SDKROOT)/System/Library/Frameworks/ImageIO.framework',
'$(SDKROOT)/System/Library/Frameworks/MobileCoreServices.framework',
],
},
}],
[ 'skia_os == "win"', {
'include_dirs': [
'config/win',
],
}],
[ 'skia_os == "android"', {
'dependencies': [
'android_deps.gyp:cpu_features',
],
}],
[ 'skia_arch_type == "arm"', {
# The code in SkUtilsArm.cpp can be used on an ARM-based Linux system, not only Android.
'sources': [
'../src/core/SkUtilsArm.cpp',
'../src/core/SkUtilsArm.h',
],
}],
['skia_gpu == 1', {
'include_dirs': [
'../include/gpu',
'../src/gpu',
],
}],
],
'direct_dependent_settings': {
'include_dirs': [
'../include/config',
'../include/core',
'../include/pathops',
'../include/pipe',
],
'conditions': [
[ 'skia_os == "mac"', {
'include_dirs': [
'../include/utils/mac',
],
}],
[ 'skia_os == "ios"', {
'include_dirs': [
'../include/utils/ios',
],
}],
[ 'skia_os == "win"', {
'include_dirs': [
'config/win',
],
}],
],
},
},
],
}