Commit 90a3d227 authored by Andrey Kamaev's avatar Andrey Kamaev

Enable libpng NEON optimization in Android build for armeabi-v7a with NEON target

parent c6d1421f
...@@ -2,13 +2,23 @@ ...@@ -2,13 +2,23 @@
# CMake file for libpng. See root CMakeLists.txt # CMake file for libpng. See root CMakeLists.txt
# #
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
project(${PNG_LIBRARY})
if(NEON)
project(${PNG_LIBRARY} ASM)
else()
project(${PNG_LIBRARY})
endif()
ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" ${ZLIB_INCLUDE_DIR}) ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" ${ZLIB_INCLUDE_DIR})
file(GLOB lib_srcs *.c) file(GLOB lib_srcs *.c)
file(GLOB lib_hdrs *.h) file(GLOB lib_hdrs *.h)
if(NEON)
list(APPEND lib_srcs arm/filter_neon.S)
add_definitions(-DPNG_ARM_NEON)
endif()
# ---------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------
# Define the library target: # Define the library target:
# ---------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------
......
...@@ -3662,7 +3662,7 @@ png_read_filter_row_paeth_multibyte_pixel(png_row_infop row_info, png_bytep row, ...@@ -3662,7 +3662,7 @@ png_read_filter_row_paeth_multibyte_pixel(png_row_infop row_info, png_bytep row,
#ifdef PNG_ARM_NEON #ifdef PNG_ARM_NEON
#ifdef __linux__ #if defined __linux__ && !defined __ANDROID__
#include <stdio.h> #include <stdio.h>
#include <elf.h> #include <elf.h>
#include <asm/hwcap.h> #include <asm/hwcap.h>
...@@ -3695,7 +3695,7 @@ static int png_have_hwcap(unsigned cap) ...@@ -3695,7 +3695,7 @@ static int png_have_hwcap(unsigned cap)
static void static void
png_init_filter_functions_neon(png_structp pp, unsigned int bpp) png_init_filter_functions_neon(png_structp pp, unsigned int bpp)
{ {
#ifdef __linux__ #if defined __linux__ && !defined __ANDROID__
if (!png_have_hwcap(HWCAP_NEON)) if (!png_have_hwcap(HWCAP_NEON))
return; return;
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment