d9947f605a
Skia cannot use Chromium's implementation of mutex (Lock) due to static initializers. However, we would like to be able to use Chromium's implementation of atomics. This motivates the split of implementation. Skia's atomic and mutex calls should be inlinable, especially the atomics. These calls often compile down to very few instructions, and we currently have the overhead of a function call. This motivates the header implementation. There is still a desire for the build system to select the implementation, so the SK_XXX_PLATFORM_H pattern for header files is introduced. This allows the build system to control which platform specific header files are chosen. The Chromium side changes (most of which will need to go in before this change can be found at https://codereview.chromium.org/19477005/ . The Chromium side changes after this lands can be seen at https://codereview.chromium.org/98073013 . Review URL: https://codereview.chromium.org/19808007 git-svn-id: http://skia.googlecode.com/svn/trunk@12738 2bbb7eff-a529-9590-31e7-b0007b416f81
182 lines
5.8 KiB
Python
182 lines
5.8 KiB
Python
# Port-specific Skia library code.
|
|
{
|
|
'targets': [
|
|
{
|
|
'target_name': 'ports',
|
|
'product_name': 'skia_ports',
|
|
'type': 'static_library',
|
|
'standalone_static_library': 1,
|
|
'dependencies': [
|
|
'core.gyp:*',
|
|
],
|
|
'include_dirs': [
|
|
'../include/effects',
|
|
'../include/images',
|
|
'../include/ports',
|
|
'../include/utils',
|
|
'../include/utils/win',
|
|
'../include/xml',
|
|
'../src/core',
|
|
'../src/lazy',
|
|
'../src/ports',
|
|
'../src/sfnt',
|
|
'../src/utils',
|
|
],
|
|
'sources': [
|
|
'../src/ports/SkAtomics_android.h',
|
|
'../src/ports/SkAtomics_none.h',
|
|
'../src/ports/SkAtomics_sync.h',
|
|
'../src/ports/SkAtomics_win.h',
|
|
'../src/ports/SkDebug_nacl.cpp',
|
|
'../src/ports/SkDebug_stdio.cpp',
|
|
'../src/ports/SkDebug_win.cpp',
|
|
|
|
'../src/ports/SkFontHost_win.cpp',
|
|
'../src/ports/SkFontHost_win_dw.cpp',
|
|
'../src/ports/SkFontMgr_default_gdi.cpp',
|
|
'../src/ports/SkFontMgr_default_dw.cpp',
|
|
|
|
'../src/ports/SkGlobalInitialization_default.cpp',
|
|
'../src/ports/SkMemory_malloc.cpp',
|
|
'../src/ports/SkMutex_none.h',
|
|
'../src/ports/SkMutex_pthread.h',
|
|
'../src/ports/SkMutex_win.h',
|
|
'../src/ports/SkOSFile_posix.cpp',
|
|
'../src/ports/SkOSFile_stdio.cpp',
|
|
'../src/ports/SkOSFile_win.cpp',
|
|
'../src/ports/SkDiscardableMemory_none.cpp',
|
|
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
|
|
'../src/ports/SkTime_Unix.cpp',
|
|
'../src/ports/SkTime_win.cpp',
|
|
#'../src/ports/SkTLS_none.cpp',
|
|
'../src/ports/SkTLS_pthread.cpp',
|
|
'../src/ports/SkTLS_win.cpp',
|
|
'../src/ports/SkXMLParser_empty.cpp',
|
|
],
|
|
'conditions': [
|
|
[ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos", "nacl", "android"]', {
|
|
'sources': [
|
|
'../src/ports/SkFontHost_FreeType.cpp',
|
|
'../src/ports/SkFontHost_FreeType_common.cpp',
|
|
],
|
|
'dependencies': [
|
|
'freetype.gyp:freetype',
|
|
],
|
|
}],
|
|
[ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "chromeos"]', {
|
|
'link_settings': {
|
|
'libraries': [
|
|
'-lfontconfig',
|
|
'-ldl',
|
|
],
|
|
},
|
|
'sources': [
|
|
'../src/fonts/SkFontMgr_fontconfig.cpp',
|
|
'../src/ports/SkFontHost_fontconfig.cpp',
|
|
'../src/ports/SkFontConfigInterface_direct.cpp',
|
|
],
|
|
}],
|
|
[ 'skia_os == "nacl"', {
|
|
'sources': [
|
|
'../src/ports/SkFontHost_linux.cpp',
|
|
],
|
|
'sources!': [
|
|
'../src/ports/SkDebug_stdio.cpp',
|
|
],
|
|
}, {
|
|
'sources!': [
|
|
'../src/ports/SkDebug_nacl.cpp',
|
|
],
|
|
}],
|
|
[ 'skia_os == "mac"', {
|
|
'include_dirs': [
|
|
'../include/utils/mac',
|
|
],
|
|
'sources': [
|
|
'../src/ports/SkFontHost_mac.cpp',
|
|
'../src/ports/SkPurgeableMemoryBlock_mac.cpp',
|
|
'../src/utils/mac/SkStream_mac.cpp',
|
|
],
|
|
'sources!': [
|
|
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
|
|
'../src/ports/SkFontHost_tables.cpp',
|
|
],
|
|
}],
|
|
[ 'skia_os == "ios"', {
|
|
'include_dirs': [
|
|
'../include/utils/ios',
|
|
'../include/utils/mac',
|
|
],
|
|
'sources': [
|
|
'../src/ports/SkFontHost_mac.cpp',
|
|
'../src/ports/SkPurgeableMemoryBlock_mac.cpp',
|
|
'../src/utils/mac/SkStream_mac.cpp',
|
|
],
|
|
'sources!': [
|
|
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
|
|
'../src/ports/SkFontHost_tables.cpp',
|
|
],
|
|
}],
|
|
[ 'skia_os == "win"', {
|
|
'include_dirs': [
|
|
'config/win',
|
|
'../src/utils/win',
|
|
],
|
|
'sources!': [ # these are used everywhere but windows
|
|
'../src/ports/SkDebug_stdio.cpp',
|
|
'../src/ports/SkOSFile_posix.cpp',
|
|
'../src/ports/SkTime_Unix.cpp',
|
|
'../src/ports/SkTLS_pthread.cpp',
|
|
],
|
|
'conditions': [
|
|
# when we build for win, we only want one of these default files
|
|
[ 'skia_directwrite', {
|
|
'sources!': [
|
|
'../src/ports/SkFontMgr_default_gdi.cpp',
|
|
],
|
|
}, { # else gdi
|
|
'sources!': [
|
|
'../src/ports/SkFontMgr_default_dw.cpp',
|
|
],
|
|
}],
|
|
],
|
|
}, { # else !win
|
|
'sources!': [
|
|
'../src/ports/SkDebug_win.cpp',
|
|
'../src/ports/SkFontHost_win.cpp',
|
|
'../src/ports/SkFontHost_win_dw.cpp',
|
|
'../src/ports/SkFontMgr_default_gdi.cpp',
|
|
'../src/ports/SkFontMgr_default_dw.cpp',
|
|
'../src/ports/SkOSFile_win.cpp',
|
|
'../src/ports/SkTime_win.cpp',
|
|
'../src/ports/SkTLS_win.cpp',
|
|
],
|
|
}],
|
|
[ 'skia_os == "android"', {
|
|
'sources!': [
|
|
'../src/ports/SkDebug_stdio.cpp',
|
|
'../src/ports/SkDiscardableMemory_none.cpp',
|
|
'../src/ports/SkPurgeableMemoryBlock_none.cpp',
|
|
],
|
|
'sources': [
|
|
'../src/ports/SkDebug_android.cpp',
|
|
'../src/ports/SkDiscardableMemory_ashmem.cpp',
|
|
'../src/ports/SkFontConfigInterface_android.cpp',
|
|
'../src/ports/SkFontConfigParser_android.cpp',
|
|
'../src/ports/SkFontHost_fontconfig.cpp',
|
|
'../src/ports/SkPurgeableMemoryBlock_android.cpp',
|
|
],
|
|
'dependencies': [
|
|
'android_deps.gyp:expat',
|
|
],
|
|
}],
|
|
],
|
|
'direct_dependent_settings': {
|
|
'include_dirs': [
|
|
'../include/ports',
|
|
],
|
|
},
|
|
},
|
|
],
|
|
}
|