axmol/3rdparty/png/CMakeLists.txt

75 lines
1.9 KiB
CMake
Raw Normal View History

set(lib_name png)
set(target_name ${lib_name})
project(${lib_name})
set(${target_name}_src
png.c
pngerror.c
pngget.c
pngmem.c
pngpread.c
pngread.c
pngrio.c
pngrtran.c
pngrutil.c
pngset.c
pngtrans.c
pngwio.c
pngwrite.c
pngwtran.c
pngwutil.c
)
if (NOT WASM)
set(_PNG_ISA_SIMD ${AX_ISA_SIMD})
else()
set(_PNG_ISA_SIMD OFF)
endif()
if (_PNG_ISA_SIMD STREQUAL "neon")
set(libpng_arm_sources
arm/arm_init.c
arm/filter_neon_intrinsics.c
arm/palette_neon_intrinsics.c)
# notes:
# - android armv7: needs PNG_ARM_NEON_CHECK_SUPPORTED for very older devices, but axmol no longer support them
# PNG_ARM_NEON_IMPLEMENTATION:
# 1: use instrinsics
# 2: use handcode
set(libpng_optimize_flag "PNG_ARM_NEON_OPT=2")
elseif(_PNG_ISA_SIMD MATCHES "sse")
set(libpng_intel_sources
intel/intel_init.c
intel/filter_sse2_intrinsics.c)
set(libpng_optimize_flag "PNG_INTEL_SSE_OPT=1")
endif()
add_library(${target_name} STATIC
${${target_name}_src}
${libpng_arm_sources}
${libpng_intel_sources}
)
Release 2.1.5 (#2076) * Fix unexpected libpng used * Fix string format incorrect for tests * Fix #1751, use coroutine control AutoTest flow * Update CHANGELOG.md * Added OpenType font (.otf) to the noCompress list. (#2077) * Update 1k & copyright notice in some sources * Move doctest to axmol 3rdparty * Fix ci * Update 1kdist to v90 * Update 1kiss.ps1 * DrawNodeV2 0.95.1 (#2079) * Rename remaining legacy engine related spells and improve code style * Update 3rdparty README.md * Fix checkReallySupportsASTC does not work on ios device reported by @BIGCATDOG in https://github.com/axmolengine/axmol/issues/2078 * Fix ci * FastRNG: add missing include for AXASSERT (#2081) * Delete unused files * Improve FileUtils - Rename FileUtils::createDirectory to FileUtils::createDirectories - Use splitpath_cb to optimize FileUtils::createDirectories - Rename FileUtils::getFileShortName to FileUtils::getPathBaseName - Rename FileUtils::getFileExtension to FileUtils::getPathExtension - Add FileUtils::getPathDirName - Add FileUtils::getPathBaseNameNoExtension - Mark all renamed FileUtils stubs old name deprecated - Mark all FileUtils offthread APIs deprecated * Update box2d to v2.4.2 * Disable /sdl checks explicitly for winuwp For axmol deprecated policy, we need disable /sdl checks explicitly to avoid compiler traits invoking deprecated functions as error * Update cppwinrt to 2.0.240405.15 * Update simdjson to 3.10.0 * Fix box2d testbed compile error * Improve file path to url * Fix FileUtils::createDirectories unix logic * axmol-cmdline: remove arch suffix for host build output directory * Update CHANGELOG.md * Update lua bindings --------- Co-authored-by: Dani Alias <danielgutierrezalias@gmail.com> Co-authored-by: aismann <icesoft@freenet.de> Co-authored-by: smilediver <smilediver@outlook.com>
2024-08-11 21:11:35 +08:00
# cmake builtin FindPNG.cmake detect cached variable PNG_PNG_INCLUDE_DIR
set(PNG_PNG_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE INTERNAL "png include dir" FORCE)
set(PNG_INCLUDE_DIR "${PNG_PNG_INCLUDE_DIR}" CACHE INTERNAL "" FORCE)
2024-05-24 03:53:03 +08:00
target_include_directories(${target_name} PUBLIC "${PNG_INCLUDE_DIR}")
if(_PNG_ISA_SIMD)
target_compile_definitions(${target_name} PUBLIC ${libpng_optimize_flag})
endif()
2023-12-14 04:49:03 +08:00
target_include_directories(${target_name} PRIVATE "${ZLIB_INCLUDE_DIR}")
if(ANDROID)
target_include_directories(${target_name} PRIVATE ${cpufeatures_include_dir})
target_link_libraries(${target_name} INTERFACE cpufeatures)
endif()
# Export png as PNG::PNG to avoid cmake builtin FindPNG.cmake add target again
add_library(PNG::PNG ALIAS ${target_name})
2024-05-24 03:53:03 +08:00
set(PNG_LIBRARY "png" CACHE INTERNAL "png include dir" FORCE)