文本文件  |  68行  |  1.53 KB

# cmake file for libpng

if (NOT DE_DEFS)
	message(FATAL_ERROR "Include Defs.cmake")
endif ()

if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/png.h")
	set(DEFAULT_PNG_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR})
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)