prepare skia for shared library build on android
R=borenet@google.com, djsollen@google.com Review URL: https://codereview.chromium.org/15855006 git-svn-id: http://skia.googlecode.com/svn/trunk@9378 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
e2aad27c5f
commit
cf5348f5aa
2
Makefile
2
Makefile
@ -45,7 +45,7 @@ VALID_TARGETS := \
|
||||
pathops_unittest \
|
||||
SampleApp \
|
||||
SkiaAndroidApp \
|
||||
skia_base_libs \
|
||||
skia_lib \
|
||||
tests \
|
||||
tools
|
||||
|
||||
|
@ -18,8 +18,7 @@
|
||||
'../src/utils/mac/SkOSWindow_Mac.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'views.gyp:views',
|
||||
'xml.gyp:xml',
|
||||
],
|
||||
|
@ -142,9 +142,7 @@
|
||||
'../samplecode/SampleFontCache.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'views.gyp:views',
|
||||
'animator.gyp:animator',
|
||||
'xml.gyp:xml',
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'views.gyp:views',
|
||||
'xml.gyp:xml',
|
||||
],
|
||||
|
@ -28,9 +28,7 @@
|
||||
'../experimental/SimpleiOSApp/SimpleiOSApp-Info.plist',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'views.gyp:views',
|
||||
'xml.gyp:xml',
|
||||
],
|
||||
|
@ -17,9 +17,7 @@
|
||||
'bench.gypi'
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'bench_timer',
|
||||
],
|
||||
'conditions': [
|
||||
@ -50,7 +48,7 @@
|
||||
'../src/gpu',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'skia_os not in ["mac", "ios"]', {
|
||||
|
@ -39,6 +39,15 @@
|
||||
}],
|
||||
],
|
||||
},
|
||||
# Validate the 'skia_os' setting against 'skia_shared_lib', because shared
|
||||
# library build is only supported on Android.
|
||||
'variables': {
|
||||
'conditions': [
|
||||
[ 'skia_os != "android" and skia_shared_lib', {
|
||||
'error': '<!(Skia shared lib build only currently supported on Android.)',
|
||||
}],
|
||||
],
|
||||
},
|
||||
'includes': [
|
||||
'common_conditions.gypi',
|
||||
],
|
||||
|
@ -326,6 +326,17 @@
|
||||
[ 'skia_profile_enabled == 1', {
|
||||
'cflags': ['-g', '-fno-omit-frame-pointer', '-marm', '-mapcs'],
|
||||
}],
|
||||
[ 'skia_shared_lib', {
|
||||
'cflags': [
|
||||
'-fPIC',
|
||||
],
|
||||
'defines': [
|
||||
'GR_DLL=1',
|
||||
'GR_IMPLEMENTATION=1',
|
||||
'SKIA_DLL',
|
||||
'SKIA_IMPLEMENTATION=1',
|
||||
],
|
||||
}],
|
||||
[ 'skia_arch_type == "arm" and arm_thumb == 1', {
|
||||
'cflags': [
|
||||
'-mthumb',
|
||||
|
@ -90,6 +90,7 @@
|
||||
'skia_osx_sdkroot%': '',
|
||||
'skia_profile_enabled%': 0,
|
||||
'skia_win_debuggers_path%': '',
|
||||
'skia_shared_lib%': 0,
|
||||
},
|
||||
|
||||
'conditions': [
|
||||
@ -121,6 +122,7 @@
|
||||
'skia_gpu%': '<(skia_gpu)',
|
||||
'skia_osx_sdkroot%': '<(skia_osx_sdkroot)',
|
||||
'skia_profile_enabled%': '<(skia_profile_enabled)',
|
||||
'skia_shared_lib%': '<(skia_shared_lib)',
|
||||
'skia_static_initializers%': '<(skia_static_initializers)',
|
||||
'ios_sdk_version%': '6.0',
|
||||
'skia_win_debuggers_path%': '<(skia_win_debuggers_path)',
|
||||
|
@ -76,6 +76,11 @@
|
||||
'config/win',
|
||||
],
|
||||
}],
|
||||
[ 'skia_os == "android"', {
|
||||
'sources': [
|
||||
'../src/core/SkPaintOptionsAndroid.cpp',
|
||||
],
|
||||
}],
|
||||
[ 'skia_os == "android" and skia_arch_type == "arm" and armv7 == 1', {
|
||||
# The code in SkUtilsArm.cpp can be used on an ARM-based Linux system, not only Android.
|
||||
'sources': [
|
||||
@ -120,9 +125,6 @@
|
||||
}],
|
||||
],
|
||||
},
|
||||
'dependencies': [
|
||||
'opts.gyp:opts'
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
@ -94,17 +94,12 @@
|
||||
'../debugger/SkObjectParser.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'images.gyp:images',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'bench.gyp:bench_timer',
|
||||
'tools.gyp:picture_renderer',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'skia_os == "nacl"', {
|
||||
'dependencies': [
|
||||
'utils.gyp:utils', # For SkBase64.h
|
||||
],
|
||||
'include_dirs': [
|
||||
'../src/utils',
|
||||
],
|
||||
|
@ -9,7 +9,10 @@
|
||||
'effects.gypi',
|
||||
],
|
||||
'include_dirs': [
|
||||
'../include/config',
|
||||
'../include/core',
|
||||
'../include/effects',
|
||||
'../include/utils',
|
||||
'../src/core',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
@ -17,15 +20,13 @@
|
||||
'../include/effects',
|
||||
],
|
||||
},
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
],
|
||||
'sources': [
|
||||
'effects.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
|
||||
],
|
||||
'conditions': [
|
||||
['skia_gpu == 1', {
|
||||
'include_dirs': [
|
||||
'../include/gpu',
|
||||
'../src/gpu',
|
||||
],
|
||||
}],
|
||||
|
@ -10,8 +10,7 @@
|
||||
'../tools/flags/SkCommandLineFlags.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'core.gyp:core',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [
|
||||
|
@ -16,7 +16,7 @@
|
||||
'../gm/gm_expectations.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'core.gyp:core',
|
||||
'images.gyp:images',
|
||||
'jsoncpp.gyp:jsoncpp',
|
||||
@ -57,14 +57,11 @@
|
||||
'../src/pipe/utils/SamplePipeControllers.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'flags.gyp:flags',
|
||||
'gm.gyp:gm_expectations',
|
||||
'images.gyp:images',
|
||||
'jsoncpp.gyp:jsoncpp',
|
||||
'pdf.gyp:pdf',
|
||||
'utils.gyp:utils',
|
||||
],
|
||||
'conditions': [
|
||||
['skia_os == "mac"', {
|
||||
|
@ -10,7 +10,7 @@
|
||||
'type': 'none',
|
||||
'dependencies': [
|
||||
# The minimal set of static libraries for basic Skia functionality.
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
|
||||
'bench.gyp:bench',
|
||||
'gm.gyp:gm',
|
||||
|
@ -5,7 +5,7 @@
|
||||
'target_name': 'nacl_interface',
|
||||
'type': 'static_library',
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
'include_dirs': [
|
||||
# For SkThreadUtils.h
|
||||
|
@ -27,11 +27,8 @@
|
||||
'../tests/Test.h',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'flags.gyp:flags',
|
||||
'images.gyp:images',
|
||||
'utils.gyp:utils',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'skia_gpu == 1', {
|
||||
|
@ -6,7 +6,7 @@
|
||||
'type': 'static_library',
|
||||
'standalone_static_library': 1,
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'zlib.gyp:zlib',
|
||||
],
|
||||
'include_dirs': [
|
||||
|
@ -118,10 +118,8 @@
|
||||
'../../../pixman/pixman/pixman.h',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'experimental.gyp:experimental',
|
||||
'images.gyp:images',
|
||||
'pdf.gyp:pdf',
|
||||
'views.gyp:views',
|
||||
'xml.gyp:xml',
|
||||
|
@ -6,18 +6,17 @@
|
||||
'product_name': 'skia_ports',
|
||||
'type': 'static_library',
|
||||
'standalone_static_library': 1,
|
||||
'dependencies': [
|
||||
'core.gyp:core',
|
||||
'sfnt.gyp:sfnt',
|
||||
'utils.gyp:utils',
|
||||
],
|
||||
'include_dirs': [
|
||||
'../include/config',
|
||||
'../include/core',
|
||||
'../include/effects',
|
||||
'../include/images',
|
||||
'../include/ports',
|
||||
'../include/utils',
|
||||
'../include/xml',
|
||||
'../src/core',
|
||||
'../src/lazy',
|
||||
'../src/sfnt',
|
||||
'../src/utils',
|
||||
],
|
||||
'sources': [
|
||||
|
@ -5,10 +5,9 @@
|
||||
'product_name': 'skia_sfnt',
|
||||
'type': 'static_library',
|
||||
'standalone_static_library': 1,
|
||||
'dependencies': [
|
||||
'core.gyp:core',
|
||||
],
|
||||
'include_dirs': [
|
||||
'../include/config',
|
||||
'../include/core',
|
||||
'../src/sfnt',
|
||||
],
|
||||
'sources': [
|
||||
|
@ -69,9 +69,7 @@
|
||||
'../experimental/Intersection/TriangleUtilities.h',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'views.gyp:views',
|
||||
'xml.gyp:xml',
|
||||
],
|
||||
|
@ -115,9 +115,7 @@
|
||||
'../experimental/Intersection/thingsToDo.txt',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'skia_gpu == 1', {
|
||||
|
@ -15,23 +15,15 @@
|
||||
'../experimental/Intersection/AddTestOutput/main.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'core.gyp:core',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'experimental.gyp:experimental',
|
||||
'images.gyp:images',
|
||||
'ports.gyp:ports',
|
||||
'pdf.gyp:pdf',
|
||||
'utils.gyp:utils',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'skia_gpu == 1', {
|
||||
'include_dirs': [
|
||||
'../src/gpu',
|
||||
],
|
||||
'dependencies': [
|
||||
'gpu.gyp:gr',
|
||||
'gpu.gyp:skgr',
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
|
@ -1,10 +1,14 @@
|
||||
# The minimal set of static libraries for basic Skia functionality.
|
||||
|
||||
{
|
||||
'variables': {
|
||||
'component_libs': [
|
||||
'core.gyp:core',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'opts.gyp:opts',
|
||||
'ports.gyp:ports',
|
||||
'sfnt.gyp:sfnt',
|
||||
'utils.gyp:utils',
|
||||
],
|
||||
'conditions': [
|
||||
@ -33,8 +37,24 @@
|
||||
},
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'skia_base_libs',
|
||||
'target_name': 'skia_lib',
|
||||
'conditions': [
|
||||
[ 'skia_shared_lib', {
|
||||
'conditions': [
|
||||
[ 'skia_os == "android"', {
|
||||
# The name skia will confuse the linker on android into using the system's libskia.so
|
||||
# instead of the one packaged with the apk. We simply choose a different name to fix
|
||||
# this.
|
||||
'product_name': 'skia_android',
|
||||
}, {
|
||||
'product_name': 'skia',
|
||||
}],
|
||||
],
|
||||
'type': 'shared_library',
|
||||
}, {
|
||||
'type': 'none',
|
||||
}],
|
||||
],
|
||||
'dependencies': [
|
||||
'<@(component_libs)',
|
||||
],
|
@ -128,15 +128,11 @@
|
||||
'../src/pipe/utils/SamplePipeControllers.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'flags.gyp:flags',
|
||||
'experimental.gyp:experimental',
|
||||
'images.gyp:images',
|
||||
'pdf.gyp:pdf',
|
||||
'tools.gyp:picture_utils',
|
||||
'utils.gyp:utils',
|
||||
'sfnt.gyp:sfnt',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'skia_gpu == 1', {
|
||||
|
@ -37,9 +37,7 @@
|
||||
'../tools/skdiff_utils.h',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
},
|
||||
{
|
||||
@ -55,9 +53,7 @@
|
||||
'../tools/skdiff_utils.h',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
},
|
||||
{
|
||||
@ -67,10 +63,8 @@
|
||||
'../tools/skhello.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'flags.gyp:flags',
|
||||
'images.gyp:images',
|
||||
],
|
||||
},
|
||||
{
|
||||
@ -84,11 +78,9 @@
|
||||
'../src/utils/',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'flags.gyp:flags',
|
||||
'gm.gyp:gm_expectations',
|
||||
'images.gyp:images',
|
||||
'jsoncpp.gyp:jsoncpp',
|
||||
'utils.gyp:utils',
|
||||
],
|
||||
@ -102,7 +94,7 @@
|
||||
'../src/utils/SkLua.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'effects.gyp:effects',
|
||||
'utils.gyp:utils',
|
||||
'images.gyp:images',
|
||||
@ -123,10 +115,9 @@
|
||||
'../src/pipe/utils/',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'tools.gyp:picture_renderer',
|
||||
'tools.gyp:picture_utils',
|
||||
'ports.gyp:ports',
|
||||
'flags.gyp:flags',
|
||||
],
|
||||
},
|
||||
@ -146,12 +137,10 @@
|
||||
'../src/lazy/',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'tools.gyp:picture_utils',
|
||||
'tools.gyp:picture_renderer',
|
||||
'bench.gyp:bench_timer',
|
||||
'ports.gyp:ports',
|
||||
'flags.gyp:flags',
|
||||
],
|
||||
},
|
||||
@ -174,9 +163,7 @@
|
||||
'../src/utils/',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'tools.gyp:picture_utils',
|
||||
'flags.gyp:flags',
|
||||
],
|
||||
@ -189,9 +176,6 @@
|
||||
},
|
||||
],
|
||||
],
|
||||
'export_dependent_settings': [
|
||||
'images.gyp:images',
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'render_pdfs',
|
||||
@ -206,11 +190,8 @@
|
||||
'../src/utils/',
|
||||
],
|
||||
'dependencies': [
|
||||
'core.gyp:core',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'pdf.gyp:pdf',
|
||||
'ports.gyp:ports',
|
||||
'tools.gyp:picture_utils',
|
||||
],
|
||||
'conditions': [
|
||||
@ -257,7 +238,7 @@
|
||||
'../tools/picture_utils.h',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [
|
||||
@ -272,9 +253,7 @@
|
||||
'../tools/pinspect.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
],
|
||||
},
|
||||
{
|
||||
@ -296,9 +275,7 @@
|
||||
'../debugger/SkObjectParser.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'effects.gyp:effects',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'tools.gyp:picture_utils',
|
||||
],
|
||||
},
|
||||
|
@ -6,8 +6,7 @@
|
||||
'type': 'static_library',
|
||||
'standalone_static_library': 1,
|
||||
'dependencies': [
|
||||
'skia_base_libs.gyp:skia_base_libs',
|
||||
'images.gyp:images',
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'sfnt.gyp:sfnt',
|
||||
],
|
||||
'include_dirs': [
|
||||
|
@ -55,6 +55,7 @@ public class SkiaIntentService extends IntentService {
|
||||
// Load the requested library
|
||||
String lib = args[0];
|
||||
try {
|
||||
System.loadLibrary("skia_android");
|
||||
System.loadLibrary(lib);
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
Log.e("skia", "Library " + lib +
|
||||
|
@ -42,6 +42,7 @@ public class SkiaSampleActivity extends Activity
|
||||
mSlideList = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1);
|
||||
|
||||
try {
|
||||
System.loadLibrary("skia_android");
|
||||
System.loadLibrary("SampleApp");
|
||||
|
||||
LinearLayout holder = (LinearLayout) findViewById(R.id.holder);
|
||||
|
@ -126,6 +126,7 @@ setup_device() {
|
||||
DEFINES="${DEFINES} skia_os=android"
|
||||
DEFINES="${DEFINES} android_base=${SCRIPT_DIR}/.."
|
||||
DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}"
|
||||
DEFINES="${DEFINES} skia_shared_lib=1"
|
||||
|
||||
# Setup the build variation depending on the target device
|
||||
TARGET_DEVICE="$1"
|
||||
|
@ -4,6 +4,7 @@
|
||||
'target_name': 'CopySkiaAppDeps',
|
||||
'type': 'none',
|
||||
'dependencies': [
|
||||
'skia_lib.gyp:skia_lib',
|
||||
'SampleApp.gyp:SampleApp',
|
||||
'bench.gyp:bench',
|
||||
'gm.gyp:gm',
|
||||
@ -56,6 +57,7 @@
|
||||
'<(PRODUCT_DIR)/lib.target/libtests.so',
|
||||
'<(PRODUCT_DIR)/lib.target/libpathops_unittest.so',
|
||||
'<(PRODUCT_DIR)/lib.target/gdbserver',
|
||||
'<(PRODUCT_DIR)/lib.target/libskia_android.so',
|
||||
],
|
||||
},
|
||||
],
|
||||
|
@ -28,6 +28,29 @@ int launch_app(int (*app_main)(int, const char**), int argc,
|
||||
return (*app_main)(argc, argv);
|
||||
}
|
||||
|
||||
void* load_library(const char** argv, const char* libraryName)
|
||||
{
|
||||
// attempt to lookup the location of the shared libraries
|
||||
char libraryLocation[100];
|
||||
sprintf(libraryLocation, "%s/lib/lib%s.so", argv[0], libraryName);
|
||||
if (!file_exists(libraryLocation)) {
|
||||
printf("ERROR: Unable to find the appropriate library in the Skia App.\n");
|
||||
printf("ERROR: Did you provide the correct program_name?\n");
|
||||
usage(argv[0]);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// load the appropriate library
|
||||
void* appLibrary = dlopen(libraryLocation, RTLD_LOCAL | RTLD_LAZY);
|
||||
if (!appLibrary) {
|
||||
printf("ERROR: Unable to open the shared library.\n");
|
||||
printf("ERROR: %s", dlerror());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return appLibrary;
|
||||
}
|
||||
|
||||
int main(int argc, const char** argv) {
|
||||
|
||||
// check that the program name was specified
|
||||
@ -44,21 +67,16 @@ int main(int argc, const char** argv) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// attempt to lookup the location of the shared libraries
|
||||
char libraryLocation[100];
|
||||
sprintf(libraryLocation, "%s/lib/lib%s.so", appLocation, argv[1]);
|
||||
if (!file_exists(libraryLocation)) {
|
||||
printf("ERROR: Unable to find the appropriate library in the Skia App.\n");
|
||||
printf("ERROR: Did you provide the correct program_name?\n");
|
||||
usage(argv[0]);
|
||||
// load the local skia shared library
|
||||
void* skiaLibrary = load_library(argv, "libskia_android.so");
|
||||
if (NULL == skiaLibrary)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
// load the appropriate library
|
||||
void* appLibrary = dlopen(libraryLocation, RTLD_LOCAL | RTLD_LAZY);
|
||||
if (!appLibrary) {
|
||||
printf("ERROR: Unable to open the shared library.\n");
|
||||
printf("ERROR: %s", dlerror());
|
||||
void* appLibrary = load_library(argv, argv[1]);
|
||||
if (NULL == appLibrary) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user