blob: 0cbed64bc65f8a1a6c5ac31340079063a2c43495 [file] [log] [blame]
# cmake file for libpng
if (NOT DE_DEFS)
message(FATAL_ERROR "Include Defs.cmake")
endif ()
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/png.h")
set(DEFAULT_PNG_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src)
else ()
# Assume build inside Android source tree
set(DEFAULT_PNG_SRC_PATH "../libpng")
endif ()
set(PNG_SRC_PATH ${DEFAULT_PNG_SRC_PATH} CACHE STRING "Path to libpng source tree")
if (IS_ABSOLUTE ${PNG_SRC_PATH})
set(PNG_ABS_PATH ${PNG_SRC_PATH})
else ()
set(PNG_ABS_PATH "${CMAKE_SOURCE_DIR}/${PNG_SRC_PATH}")
endif ()
set(PNG_SRCS
${PNG_ABS_PATH}/png.h
${PNG_ABS_PATH}/pngconf.h
${PNG_ABS_PATH}/png.c
${PNG_ABS_PATH}/pngset.c
${PNG_ABS_PATH}/pngget.c
${PNG_ABS_PATH}/pngrutil.c
${PNG_ABS_PATH}/pngtrans.c
${PNG_ABS_PATH}/pngwutil.c
${PNG_ABS_PATH}/pngread.c
${PNG_ABS_PATH}/pngrio.c
${PNG_ABS_PATH}/pngwio.c
${PNG_ABS_PATH}/pngwrite.c
${PNG_ABS_PATH}/pngrtran.c
${PNG_ABS_PATH}/pngwtran.c
${PNG_ABS_PATH}/pngmem.c
${PNG_ABS_PATH}/pngerror.c
${PNG_ABS_PATH}/pngpread.c
)
if (DE_CPU_IS_ARM_64)
# armv8-a has always neon
set(PNG_SRCS
${PNG_SRCS}
${PNG_ABS_PATH}/arm/arm_init.c
${PNG_ABS_PATH}/arm/filter_neon_intrinsics.c
${PNG_ABS_PATH}/arm/filter_neon.S
)
endif ()
if (DE_DEBUG EQUAL 1)
add_definitions(-DPNG_DEBUG)
endif ()
if (DE_OS_IS_UNIX)
# for snprintf()
add_definitions(-D_XOPEN_SOURCE=600)
endif ()
set(CMAKE_C_FLAGS ${DE_3RD_PARTY_C_FLAGS})
add_library(png STATIC ${PNG_SRCS})
target_link_libraries(png ${ZLIB_LIBRARY})
set(PNG_INCLUDE_PATH ${PNG_ABS_PATH} PARENT_SCOPE)
set(PNG_LIBRARY png PARENT_SCOPE)