diff options
author | djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-06-03 12:10:19 +0000 |
---|---|---|
committer | djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-06-03 12:10:19 +0000 |
commit | 52f0297aafc1e267fda6e612f168a9fe5bc62784 (patch) | |
tree | d25187b0663a80e6dce4a1e69831dff9727805c7 /platform_tools/android/launcher | |
parent | 2dd76d7668d8175ea1ab8f7ad27a1bfd5b917a84 (diff) |
Prepare skia for shared library build on android
This reapplies revision 9378 after the buildbot has been updated.
R=borenet@google.com, djsollen@google.com
Review URL: https://codereview.chromium.org/15855006
git-svn-id: http://skia.googlecode.com/svn/trunk@9395 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'platform_tools/android/launcher')
-rw-r--r-- | platform_tools/android/launcher/skia_launcher.cpp | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/platform_tools/android/launcher/skia_launcher.cpp b/platform_tools/android/launcher/skia_launcher.cpp index 972382dc16..231289d4e9 100644 --- a/platform_tools/android/launcher/skia_launcher.cpp +++ b/platform_tools/android/launcher/skia_launcher.cpp @@ -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; } |