diff --git a/ext/libpng17/CMakeLists.txt b/ext/libpng17/CMakeLists.txt index d2829cd3fe..7d6ae56ccb 100644 --- a/ext/libpng17/CMakeLists.txt +++ b/ext/libpng17/CMakeLists.txt @@ -1,6 +1,7 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.8) +project(libpng17) -add_library(png17 +add_library(png17 STATIC pngconf.h pngdebug.h png.c @@ -18,9 +19,24 @@ add_library(png17 pngrutil.c pngset.c pngstruct.h - pngtest.c pngtrans.c pngwio.c pngwrite.c pngwtran.c - pngwutil.c) + pngwutil.c +) + +# Add arm files for ARM processors +if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm(64)?|aarch64") + set (ARM_FILES arm/arm_init.c + ) + + # Check if it's 32 bit + if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4) + list(APPEND ARM_FILES arm/filter_neon.S) + else() + list(APPEND ARM_FILES arm/filter_neon_intrinsics.c) + endif() + + target_sources(png17 PRIVATE ${ARM_FILES}) +endif()