@@ -11,7 +11,7 @@ GIT_URL=https://github.com/madler/zlib/releases/download/v$VER/zlib-$VER.tar.gz
11
11
12
12
GIT_TAG=v$VER
13
13
14
- FORMULA_TYPES=( " vs" " osx" " emscripten" " ios" " watchos" " catos" " xros" " tvos" )
14
+ FORMULA_TYPES=( " vs" " osx" " emscripten" " ios" " watchos" " catos" " xros" " tvos" " msys2 " )
15
15
16
16
# download the source code and unpack it into LIB_NAME
17
17
function download() {
@@ -43,7 +43,7 @@ function build() {
43
43
44
44
mkdir -p " build_${TYPE} _${ARCH} "
45
45
cd " build_${TYPE} _${ARCH} "
46
- rm -f CMakeCache.txt * .lib * .o * .wasm
46
+ rm -f CMakeCache.txt * .lib * .o * .a
47
47
env CXXFLAGS=" -DUSE_PTHREADS=1 ${VS_C_FLAGS} ${FLAGS_RELEASE} "
48
48
cmake .. \
49
49
-G " ${GENERATOR_NAME} " \
@@ -102,16 +102,19 @@ function build() {
102
102
mkdir -p " build_${TYPE} _${ABI} "
103
103
cd " build_${TYPE} _${ABI} "
104
104
rm -f CMakeCache.txt * .a * .o
105
- export CFLAGS=" $CFLAGS $EXTRA_LINK_FLAGS -DNDEBUG -std=c17 "
106
- export CXXFLAGS=" $CFLAGS $EXTRA_LINK_FLAGS -DNDEBUG -std=c++17 "
105
+ export CFLAGS=" $CFLAGS $EXTRA_LINK_FLAGS -DNDEBUG -std=${CPP_STANDARD} "
106
+ export CXXFLAGS=" $CFLAGS $EXTRA_LINK_FLAGS -DNDEBUG -std=${C_STANDARD} "
107
107
108
108
cmake .. ${DEFS} \
109
109
-DCMAKE_TOOLCHAIN_FILE=${NDK_ROOT} /build/cmake/android.toolchain.cmake \
110
110
-DPLATFORM=$PLATFORM \
111
- -DCMAKE_CXX_FLAGS=" -DUSE_PTHREADS=1 ${FLAG_RELEASE} -std=c++17 " \
112
- -DCMAKE_C_FLAGS=" -DUSE_PTHREADS=1 ${FLAG_RELEASE} -std=c17 " \
111
+ -DCMAKE_CXX_FLAGS=" -DUSE_PTHREADS=1 ${FLAG_RELEASE} -std=${CPP_STANDARD} " \
112
+ -DCMAKE_C_FLAGS=" -DUSE_PTHREADS=1 ${FLAG_RELEASE} -std=${C_STANDARD} " \
113
113
-DCMAKE_C_COMPILER=${CC} \
114
114
-DCMAKE_INSTALL_PREFIX=Release \
115
+ -DCMAKE_C_STANDARD=${C_STANDARD} \
116
+ -DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
117
+ -DCMAKE_CXX_STANDARD_REQUIRED=ON \
115
118
-D CMAKE_CXX_COMPILER_RANLIB=${RANLIB} \
116
119
-D CMAKE_C_COMPILER_RANLIB=${RANLIB} \
117
120
-D CMAKE_CXX_COMPILER_AR=${AR} \
@@ -133,7 +136,7 @@ function build() {
133
136
elif [ " $TYPE " == " emscripten" ] ; then
134
137
mkdir -p build_$TYPE
135
138
cd build_$TYPE
136
- rm -f CMakeCache.txt * .a * .o * .wasm
139
+ rm -f CMakeCache.txt * .a * .o * .wasm * .js
137
140
$EMSDK /upstream/emscripten/emcmake cmake .. \
138
141
-DCMAKE_INSTALL_LIBDIR=" build_${TYPE} " \
139
142
-DCMAKE_VERBOSE_MAKEFILE=${VERBOSE_MAKEFILE} \
@@ -152,6 +155,36 @@ function build() {
152
155
-DCMAKE_INSTALL_INCLUDEDIR=include
153
156
cmake --build . --target install --config Release
154
157
cd ..
158
+ elif [ " $TYPE " == " linux" ] || [ " $TYPE " == " linux64" ] || [ " $TYPE " == " linuxaarch64" ] || [ " $TYPE " == " linuxarmv6l" ] || [ " $TYPE " == " linuxarmv7l" ] || [ " $TYPE " == " msys2" ]; then
159
+
160
+ echoVerbose " building $TYPE | $ARCH "
161
+ echoVerbose " --------------------"
162
+ mkdir -p " build_${TYPE} _${ARCH} "
163
+ cd " build_${TYPE} _${ARCH} "
164
+ rm -f CMakeCache.txt * .a * .o * .so
165
+ DEFS=" -DLIBRARY_SUFFIX=${ARCH} \
166
+ -DCMAKE_BUILD_TYPE=Release \
167
+ -DCMAKE_C_STANDARD=${C_STANDARD} \
168
+ -DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
169
+ -DCMAKE_CXX_STANDARD_REQUIRED=ON \
170
+ -DCMAKE_CXX_EXTENSIONS=OFF
171
+ -DBUILD_SHARED_LIBS=OFF"
172
+ cmake .. ${DEFS} \
173
+ -DCMAKE_CXX_FLAGS=" -DUSE_PTHREADS=1 -Iinclude" \
174
+ -DCMAKE_C_FLAGS=" -DUSE_PTHREADS=1 -Iinclude" \
175
+ -DCMAKE_BUILD_TYPE=Release \
176
+ -DCMAKE_INSTALL_LIBDIR=" lib" \
177
+ -DZLIB_BUILD_EXAMPLES=OFF \
178
+ -DSKIP_EXAMPLE=ON \
179
+ -DCMAKE_SYSTEM_NAME=$TYPE \
180
+ -DCMAKE_SYSTEM_PROCESSOR=$ARCH \
181
+ -DCMAKE_INSTALL_PREFIX=Release \
182
+ -DCMAKE_INCLUDE_OUTPUT_DIRECTORY=include \
183
+ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
184
+ -DENABLE_VISIBILITY=OFF \
185
+ -DCMAKE_INSTALL_INCLUDEDIR=include
186
+ cmake --build . --config Release
187
+ cd ..
155
188
fi
156
189
}
157
190
@@ -188,7 +221,14 @@ function copy() {
188
221
cp -v " build_${TYPE} /zlib_wasm.wasm" $1 /lib/$TYPE /zlib.wasm
189
222
. " $SECURE_SCRIPT "
190
223
secure $1 /lib/$TYPE /zlib.wasm
191
-
224
+ elif [ " $TYPE " == " linux" ] || [ " $TYPE " == " linux64" ] || [ " $TYPE " == " linuxaarch64" ] || [ " $TYPE " == " linuxarmv6l" ] || [ " $TYPE " == " linuxarmv7l" ] || [ " $TYPE " == " msys2" ]; then
225
+ mkdir -p $1 /include
226
+ mkdir -p $1 /lib/$TYPE
227
+ cp -Rv " build_${TYPE} _${ARCH} /Release/include/" * $1 /include/ > /dev/null 2>&1
228
+ mkdir -p $1 /lib/$TYPE /$ARCH /
229
+ cp -v " build_${TYPE} _${ARCH} /Release/z.a" $1 /lib/$TYPE /$PLATFORM /zlib.a > /dev/null 2>&1
230
+ . " $SECURE_SCRIPT "
231
+ secure $1 /lib/$TYPE /$PLATFORM /zlib.a
192
232
else
193
233
make install
194
234
fi
@@ -219,6 +259,10 @@ function clean() {
219
259
if [ -d " build_${TYPE} " ]; then
220
260
rm -r build_${TYPE}
221
261
fi
262
+ elif [ " $TYPE " == " linux" ] || [ " $TYPE " == " linux64" ] || [ " $TYPE " == " linuxaarch64" ] || [ " $TYPE " == " linuxarmv6l" ] || [ " $TYPE " == " linuxarmv7l" ] || [ " $TYPE " == " msys2" ]; then
263
+ f [ -d " build_${TYPE} _${ARCH} " ]; then
264
+ rm -r build_${TYPE} _${ARCH}
265
+ fi
222
266
else
223
267
make uninstall
224
268
make clean
0 commit comments