blob: 7b50b1086f0eac93693313dc5021aa64a525727a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
set(LIBPNG_VER 1.6.37)
# Download the apng patch
set(LIBPNG_APNG_OPTION )
if ("apng" IN_LIST FEATURES)
# Get (g)awk installed
vcpkg_acquire_msys(MSYS_ROOT PACKAGES gawk)
set(AWK_EXE_PATH "${MSYS_ROOT}/usr/bin")
vcpkg_add_to_path("${AWK_EXE_PATH}")
set(LIBPNG_APG_PATCH_NAME libpng-${LIBPNG_VER}-apng.patch)
set(LIBPNG_APG_PATCH_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIBPNG_APG_PATCH_NAME})
if (NOT EXISTS ${LIBPNG_APG_PATCH_PATH})
if (NOT EXISTS ${CURRENT_BUILDTREES_DIR}/src)
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src)
endif()
vcpkg_download_distfile(LIBPNG_APNG_PATCH_ARCHIVE
URLS "https://downloads.sourceforge.net/project/libpng-apng/libpng16/${LIBPNG_VER}/${LIBPNG_APG_PATCH_NAME}.gz"
FILENAME "${LIBPNG_APG_PATCH_NAME}.gz"
SHA512 226adcb3a8c60f2267fe2976ab531329ae43c2603dab4d0cf8f16217d64069936b879f3d6516b75d259c47d6f5c5b1f24f887602206c8e46abde0fb7f5c7946b
)
vcpkg_find_acquire_program(7Z)
vcpkg_execute_required_process(
COMMAND ${7Z} x ${LIBPNG_APNG_PATCH_ARCHIVE} -aoa
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src
LOGNAME extract-patch.log
)
endif()
set(APNG_EXTRA_PATCH ${LIBPNG_APG_PATCH_PATH})
set(LIBPNG_APNG_OPTION "-DPNG_PREFIX=a")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO glennrp/libpng
REF v${LIBPNG_VER}
SHA512 ccb3705c23b2724e86d072e2ac8cfc380f41fadfd6977a248d588a8ad57b6abe0e4155e525243011f245e98d9b7afbe2e8cc7fd4ff7d82fcefb40c0f48f88918
HEAD_REF master
PATCHES
use_abort.patch
cmake.patch
pkgconfig.patch
pkgconfig.2.patch
${APNG_EXTRA_PATCH}
fix-export-targets.patch
macos-arch-fix.patch
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(PNG_STATIC_LIBS OFF)
set(PNG_SHARED_LIBS ON)
else()
set(PNG_STATIC_LIBS ON)
set(PNG_SHARED_LIBS OFF)
endif()
set(LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION )
if(VCPKG_TARGET_IS_IOS)
list(APPEND LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION "-DPNG_HARDWARE_OPTIMIZATIONS=OFF")
endif()
set(LD_VERSION_SCRIPT_OPTION )
if(VCPKG_TARGET_IS_ANDROID)
set(LD_VERSION_SCRIPT_OPTION "-Dld-version-script=OFF")
# for armeabi-v7a, check whether NEON is available
list(APPEND LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION "-DPNG_ARM_NEON=check")
else()
list(APPEND LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION "-DPNG_ARM_NEON=on")
endif()
vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
-DPNG_MAN_DIR=share/${PORT}/man
${LIBPNG_APNG_OPTION}
${LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION}
${LD_VERSION_SCRIPT_OPTION}
-DPNG_STATIC=${PNG_STATIC_LIBS}
-DPNG_SHARED=${PNG_SHARED_LIBS}
-DPNG_TESTS=OFF
-DSKIP_INSTALL_PROGRAMS=ON
-DSKIP_INSTALL_EXECUTABLES=ON
-DSKIP_INSTALL_FILES=OFF
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/libpng)
set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng16.pc")
if(EXISTS ${_file})
file(READ "${_file}" _contents)
if(VCPKG_TARGET_IS_WINDOWS)
string(REGEX REPLACE "-lpng16(d)?" "-llibpng16d" _contents "${_contents}")
else()
string(REGEX REPLACE "-lpng16(d)?" "-lpng16d" _contents "${_contents}")
endif()
if(VCPKG_TARGET_IS_MINGW)
string(REPLACE "-lz" "-lzlibd" _contents "${_contents}")
else()
string(REPLACE "-lzlib" "-lzlibd" _contents "${_contents}")
endif()
file(WRITE "${_file}" "${_contents}")
endif()
set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng.pc")
if(EXISTS ${_file})
file(READ "${_file}" _contents)
if(VCPKG_TARGET_IS_WINDOWS)
string(REGEX REPLACE "-lpng16(d)?" "-llibpng16d" _contents "${_contents}")
else()
string(REGEX REPLACE "-lpng16(d)?" "-lpng16d" _contents "${_contents}")
endif()
if(VCPKG_TARGET_IS_MINGW)
string(REPLACE "-lz" "-lzlibd" _contents "${_contents}")
else()
string(REPLACE "-lzlib" "-lzlibd" _contents "${_contents}")
endif()
file(WRITE "${_file}" "${_contents}")
endif()
if(VCPKG_TARGET_IS_WINDOWS)
set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpng16.pc")
if(EXISTS ${_file})
file(READ "${_file}" _contents)
string(REPLACE "-lpng16" "-llibpng16" _contents "${_contents}")
if(VCPKG_TARGET_IS_MINGW)
string(REPLACE "-lz" "-lzlib" _contents "${_contents}")
endif()
file(WRITE "${_file}" "${_contents}")
endif()
set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpng.pc")
if(EXISTS ${_file})
file(READ "${_file}" _contents)
string(REPLACE "-lpng16" "-llibpng16" _contents "${_contents}")
if(VCPKG_TARGET_IS_MINGW)
string(REPLACE "-lz" "-lzlib" _contents "${_contents}")
endif()
file(WRITE "${_file}" "${_contents}")
endif()
endif()
vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m)
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|