Skip to content

Commit b3da19f

Browse files
committed
Add libpng recipe, make freetype use it
1 parent b154011 commit b3da19f

4 files changed

Lines changed: 53 additions & 0 deletions

File tree

recipes/freetype/spec.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ set(DEP_VERSION 2.14.1)
33
set(DEP_SOURCE_URL "https://download.savannah.gnu.org/releases/freetype/freetype-2.14.1.tar.xz")
44
set(DEP_SOURCE_SHA256 "32427e8c471ac095853212a37aef816c60b42052d4d9e48230bab3bdf2936ccc")
55

6+
set(DEP_DEPENDS zlib libpng)
7+
68
set(DEP_CMAKE_ARGS
79
-DBUILD_SHARED_LIBS=ON
810
-DFT_DISABLE_ZLIB=TRUE

recipes/libpng/meta.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
set(DEP_TARGET png::png)
2+
set(DEP_LIBS png16)
3+
set(DEP_LIBS_WINDOWS libpng16)
4+
set(DEP_SYSTEM_HEADER png.h)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index d91e3a6..0213dd6 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -119,6 +119,11 @@ option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" ON)
6+
# in a single CMake invocation.
7+
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
8+
string(TOLOWER "${CMAKE_OSX_ARCHITECTURES}" PNG_TARGET_ARCHITECTURE)
9+
+ list(LENGTH CMAKE_OSX_ARCHITECTURES PNG_OSX_ARCH_COUNT)
10+
+ if(PNG_OSX_ARCH_COUNT GREATER 1)
11+
+ set(PNG_UNIVERSAL_APPLE ON)
12+
+ set(PNG_TARGET_ARCHITECTURE "arm64")
13+
+ endif()
14+
else()
15+
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" PNG_TARGET_ARCHITECTURE)
16+
endif()
17+
@@ -182,7 +187,7 @@ if(PNG_HARDWARE_OPTIMIZATIONS)
18+
arm/arm_init.c
19+
arm/filter_neon_intrinsics.c
20+
arm/palette_neon_intrinsics.c)
21+
- if(PNG_ARM_NEON STREQUAL "on")
22+
+ if(PNG_ARM_NEON STREQUAL "on" AND NOT PNG_UNIVERSAL_APPLE)
23+
add_definitions(-DPNG_ARM_NEON_OPT=2)
24+
elseif(PNG_ARM_NEON STREQUAL "check")
25+
add_definitions(-DPNG_ARM_NEON_CHECK_SUPPORTED)

recipes/libpng/spec.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
set(DEP_VERSION 1.6.50)
2+
3+
set(DEP_SOURCE_URL "https://download.sourceforge.net/libpng/libpng-1.6.50.tar.xz")
4+
set(DEP_SOURCE_SHA256 "4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307")
5+
6+
set(DEP_DEPENDS zlib)
7+
8+
set(DEP_CMAKE_ARGS
9+
-DPNG_SHARED=ON
10+
-DPNG_STATIC=OFF
11+
-DPNG_FRAMEWORK=OFF
12+
-DPNG_TESTS=OFF
13+
-DPNG_TOOLS=OFF
14+
)
15+
16+
# libpng 1.6 is not universal binary compatible
17+
# here we make it prefer arm optimizations instead of intel's
18+
# this is fixed in upcoming 1.8, but not in 1.6
19+
# https://github.com/pnggroup/libpng/issues/372
20+
set(DEP_PATCHES patch/0001-cmake-universal-macos-prefer-neon.patch)
21+
22+
set(DEP_LICENSE_FILES LICENSE)

0 commit comments

Comments
 (0)