From 3d089e0e28e4205153c04f444f573e783343e5d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wr=C3=B3tniak?= Date: Fri, 3 Mar 2017 03:31:08 +0100 Subject: [PATCH] possible fix for #389 --- android-gif-drawable/build.gradle | 11 +++++----- .../src/main/c/CMakeLists.txt | 21 ++++++++++++------- android-gif-drawable/src/main/c/drawing.c | 16 +++++++------- android-gif-drawable/src/main/c/memset.arm.S | 4 +--- .../src/main/c/memset32_neon.S | 3 +-- 5 files changed, 29 insertions(+), 26 deletions(-) diff --git a/android-gif-drawable/build.gradle b/android-gif-drawable/build.gradle index 9c886fc7..6233c31c 100644 --- a/android-gif-drawable/build.gradle +++ b/android-gif-drawable/build.gradle @@ -27,19 +27,18 @@ android { externalNativeBuild { cmake { arguments "-DANDROID_PLATFORM=android-$versions.minSdk" + cFlags '-std=c11' if (isDebugBuild()) { - cFlags '-Wall', '-Weverything', '-std=c11', '-DDEBUG' - arguments 'NDK_DEBUG=1' + cFlags '-DDEBUG', '-Weverything', '-Wall' } else { - cFlags '-std=c11', '-DNDEBUG', '-Os', '-g0', '-fvisibility=hidden' - arguments 'NDK_DEBUG=0' + cFlags '-DNDEBUG', '-Os', '-g0', '-fvisibility=hidden' } } } } externalNativeBuild { - ndkBuild { - path 'src/main/c/Android.mk' + cmake { + path 'src/main/c/CMakeLists.txt' } } testBuildType 'release' diff --git a/android-gif-drawable/src/main/c/CMakeLists.txt b/android-gif-drawable/src/main/c/CMakeLists.txt index 250e5184..cbbbabfb 100644 --- a/android-gif-drawable/src/main/c/CMakeLists.txt +++ b/android-gif-drawable/src/main/c/CMakeLists.txt @@ -1,16 +1,16 @@ cmake_minimum_required(VERSION 3.4.1) +enable_language(ASM) -add_library(pl_droidsonroids_gif SHARED +set(SOURCES) +list(APPEND SOURCES drawing.c gif.c metadata.c - memset32_neon.S bitmap.c decoding.c exception.c time.c control.c - memset.arm.S surface.c opengl.c jni.c @@ -20,7 +20,14 @@ add_library(pl_droidsonroids_gif SHARED giflib/gifalloc.c giflib/openbsd-reallocarray.c) -target_link_libraries(pl_droidsonroids_gif - jnigraphics - android - GLESv2) \ No newline at end of file + +add_library(pl_droidsonroids_gif SHARED ${SOURCES}) + +set(LIBS) +list(APPEND LIBS + jnigraphics + android + GLESv2 +) + +target_link_libraries(pl_droidsonroids_gif ${LIBS}) diff --git a/android-gif-drawable/src/main/c/drawing.c b/android-gif-drawable/src/main/c/drawing.c index a17b8790..3f2a798a 100644 --- a/android-gif-drawable/src/main/c/drawing.c +++ b/android-gif-drawable/src/main/c/drawing.c @@ -1,14 +1,14 @@ #include "gif.h" -#if defined (__arm__) -extern void arm_memset32(uint32_t* dst, uint32_t value, int count); -#define MEMSET_ARGB(dst, value, count) arm_memset32(dst, value, (int) count) -#elif defined (__ARM_ARCH_7A__) -extern void memset32_neon(uint32_t* dst, uint32_t value, int count); -#define MEMSET_ARGB(dst, value, count) memset32_neon(dst, value, (int) count) -#else +//#if defined (__arm__) +//extern void arm_memset32(uint32_t* dst, uint32_t value, int count); +//#define MEMSET_ARGB(dst, value, count) arm_memset32(dst, value, (int) count) +//#elif defined (__ARM_ARCH_7A__) +//extern void memset32_neon(uint32_t* dst, uint32_t value, int count); +//#define MEMSET_ARGB(dst, value, count) memset32_neon(dst, value, (int) count) +//#else #define MEMSET_ARGB(dst, value, count) memset(dst, value, count * sizeof(argb)) -#endif +//#endif static inline void blitNormal(argb *bm, GifInfo *info, SavedImage *frame, ColorMapObject *cmap) { unsigned char *src = info->rasterBits; diff --git a/android-gif-drawable/src/main/c/memset.arm.S b/android-gif-drawable/src/main/c/memset.arm.S index dd5d06bf..3745f2a1 100644 --- a/android-gif-drawable/src/main/c/memset.arm.S +++ b/android-gif-drawable/src/main/c/memset.arm.S @@ -21,7 +21,6 @@ * code which was specified as a count of bytes. More verbose comments * to aid future maintenance. */ -#ifdef __arm__ .text .align 4 .syntax unified @@ -87,5 +86,4 @@ arm_memset32: .Lfinish: pop {pc} - .fnend -#endif + .fnend \ No newline at end of file diff --git a/android-gif-drawable/src/main/c/memset32_neon.S b/android-gif-drawable/src/main/c/memset32_neon.S index f25cdf1b..cbe23fea 100644 --- a/android-gif-drawable/src/main/c/memset32_neon.S +++ b/android-gif-drawable/src/main/c/memset32_neon.S @@ -4,7 +4,7 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. ***************************************************************************/ -#ifdef __ARM_ARCH_7A__ + .syntax unified .code 32 .fpu neon @@ -111,4 +111,3 @@ str r1, [r0, #0] bx lr .end -#endif