cmake: Add support for PNG_ARM_NEON_OPT NDK-r19
authorTony Zlatinski <tzlatinski@nvidia.com>
Tue, 12 Feb 2019 16:50:28 +0000 (10:50 -0600)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Wed, 20 Mar 2019 09:08:28 +0000 (05:08 -0400)
On Android, here is clang compiler change for
NDKs after ndk-r17c where the compiler intrinsics
for libpng are not part of the compiler for the
armeabi-v7a targets.

Add the supported png functions for these compiler
intrinsics, explicitly for 32-bit ARM builds.

Affects:
    dEQP-VK.*

Components: Vulkan, Framework
VK-GL-CTS issue: 1638

Change-Id: Ib832f983294f5dd747720ed4a79a21e29a06f776

external/libpng/CMakeLists.txt

index 7181ba4..d9de774 100644 (file)
@@ -39,7 +39,15 @@ set(PNG_SRCS
        ${PNG_ABS_PATH}/pngpread.c
        )
 
-if (DE_CPU_IS_ARM_64)
+
+if(DE_CPU_IS_ARM AND NOT DEFINED DE_CPU_IS_ARM_NEON)
+    set(DE_CPU_IS_ARM_NEON 1)
+    message(STATUS "DE_CPU_IS_ARM_NEON is not defined: Assuming ARM NEON is supported.")
+else ()
+    set(DE_CPU_IS_ARM_NEON 0)
+endif()
+
+if (DE_CPU_IS_ARM_64 OR (DE_CPU_IS_ARM AND DE_CPU_IS_ARM_NEON))
        # armv8-a has always neon
        set(PNG_SRCS
                ${PNG_SRCS}
@@ -47,8 +55,12 @@ if (DE_CPU_IS_ARM_64)
                ${PNG_ABS_PATH}/arm/filter_neon_intrinsics.c
                ${PNG_ABS_PATH}/arm/filter_neon.S
                )
+else ()
+    message(STATUS "Disabling ARM NEON optimizations.")
+    add_definitions(-DPNG_ARM_NEON_OPT=0)
 endif ()
 
+
 if (DE_DEBUG EQUAL 1)
        add_definitions(-DPNG_DEBUG)
 endif ()