Skip to content

Commit 809eb84

Browse files
authored
Android curl (#529)
* generate pkgconfig pcs - generic / cmake find script * android curl * android openssl / curl * libpng android * curl android openssl * curl / openssl android * openssl - fix android defines / copy phase * OpenSSL tvOS fix for types * tvos opencv * android curl * OpenSSL copy cmake files to libs and FreeImage defines var * android configure fix windows * android curl set openssl paths to libs * curl android fixed * android copy path
1 parent ce29093 commit 809eb84

File tree

7 files changed

+454
-231
lines changed

7 files changed

+454
-231
lines changed

apothecary/configure/android_configure.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ export TOOLCHAIN_ROOT="${APOTHECARY_LEVEL}/android"
2323
if [ "${NDK:-}" == "27.2.12479018" ]; then
2424
export NDK_ROOT="${ANDROID_NDK_ROOT:-}"
2525
elif [ "${NDK:-}" == "28.0.13004108" ]; then
26-
if [ -n "${ANDROID_NDK_LATEST_HOME}" ]; then
27-
export ANDROID_NDK_ROOT=${ANDROID_NDK_LATEST_HOME}
26+
if [ -n "${ANDROID_NDK_LATEST_HOME:-}" ]; then
27+
export ANDROID_NDK_ROOT="${ANDROID_NDK_LATEST_HOME}"
2828
fi
2929
export NDK_ROOT="${ANDROID_NDK_ROOT:-}"
3030
else
@@ -36,8 +36,8 @@ export HOST_ARCH=$(uname -m)
3636
case "$(uname)" in
3737
Darwin) HOST_PLATFORM="darwin-x86_64" ;;
3838
Linux) HOST_PLATFORM="linux-x86_64" ;;
39-
Windows) HOST_PLATFORM="windows-x86_64" ;;
40-
*) echo "Error: Unsupported host platform." >&2; exit 1 ;;
39+
Windows|MINGW*|MSYS*|CYGWIN*) HOST_PLATFORM="windows-x86_64" ;;
40+
*) echo "Error: Unsupported host platform. $(uname) $(HOST_ARCH)" >&2; exit 1 ;;
4141
esac
4242

4343
case "$ABI" in

apothecary/formulas/FreeImage/FreeImage.sh

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -141,19 +141,19 @@ function build() {
141141
ZLIB_INCLUDE_DIR="$LIBS_ROOT/zlib/include"
142142
ZLIB_LIBRARY="$LIBS_ROOT/zlib/lib/$TYPE/$PLATFORM/zlib.a"
143143

144-
DEFS="
145-
-DBUILD_SHARED_LIBS=OFF \
146-
-DCMAKE_INSTALL_INCLUDEDIR=include \
147-
-DBUILD_LIBRAWLITE=OFF \
148-
-DBUILD_OPENEXR=OFF \
149-
-DBUILD_WEBP=ON \
150-
-DBUILD_JXR=OFF \
151-
-DENABLE_ARC=OFF \
152-
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
153-
-DENABLE_VISIBILITY=OFF \
154-
-DCMAKE_TOOLCHAIN_FILE=$APOTHECARY_DIR/toolchains/${TYPE}${PLATFORM}.toolchain.cmake \
155-
"
156-
cmake .. ${DEFS} \
144+
DEFINES="
145+
-DBUILD_SHARED_LIBS=OFF \
146+
-DCMAKE_INSTALL_INCLUDEDIR=include \
147+
-DBUILD_LIBRAWLITE=OFF \
148+
-DBUILD_OPENEXR=OFF \
149+
-DBUILD_WEBP=ON \
150+
-DBUILD_JXR=OFF \
151+
-DENABLE_ARC=OFF \
152+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
153+
-DENABLE_VISIBILITY=OFF \
154+
"
155+
cmake .. ${DEFINES} \
156+
-DCMAKE_TOOLCHAIN_FILE=$APOTHECARY_DIR/toolchains/${TYPE}${PLATFORM}.toolchain.cmake \
157157
-DCMAKE_C_STANDARD=${C_STANDARD} \
158158
-DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
159159
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
@@ -179,7 +179,6 @@ function build() {
179179
-DCMAKE_INCLUDE_OUTPUT_DIRECTORY=include \
180180
-DCMAKE_INSTALL_INCLUDEDIR=include \
181181
-DPLATFORM=$PLATFORM
182-
183182
cmake --build . --config Release -j${PARALLEL_MAKE} --target install
184183
cd ..
185184
elif [ "$TYPE" == "android" ]; then
@@ -264,7 +263,7 @@ function build() {
264263
LIBPNG_INCLUDE_DIR="$LIBS_ROOT/libpng/include"
265264
LIBPNG_LIBRARY="$LIBS_ROOT/libpng/lib/$TYPE/$PLATFORM/libpng.lib"
266265

267-
DEFS="-DLIBRARY_SUFFIX=${ARCH} \
266+
DEFINES="-DLIBRARY_SUFFIX=${ARCH} \
268267
-DCMAKE_C_STANDARD=${C_STANDARD} \
269268
-DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
270269
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
@@ -283,7 +282,7 @@ function build() {
283282
-DPNG_LIBRARY=${LIBPNG_LIBRARY} \
284283
-DBUILD_SHARED_LIBS=OFF"
285284
env CXXFLAGS="-DUSE_PTHREADS=1 ${VS_C_FLAGS} ${FLAGS_RELEASE} ${EXCEPTION_FLAGS}"
286-
cmake .. ${DEFS} \
285+
cmake .. ${DEFINES} \
287286
-UCMAKE_CXX_FLAGS \
288287
-DCMAKE_CXX_FLAGS="-DUSE_PTHREADS=1 ${VS_C_FLAGS} ${FLAGS_RELEASE} ${EXCEPTION_FLAGS}" \
289288
-DCMAKE_CXX_FLAGS_RELEASE="-DUSE_PTHREADS=1 ${VS_C_FLAGS} ${FLAGS_RELEASE} ${EXCEPTION_FLAGS}" \
@@ -307,7 +306,7 @@ function build() {
307306
rm -f CMakeCache.txt *.a *.o *.lib
308307

309308
env CXXFLAGS="-DUSE_PTHREADS=1 ${VS_C_FLAGS} ${FLAGS_DEBUG} ${EXCEPTION_FLAGS}"
310-
cmake .. ${DEFS} \
309+
cmake .. ${DEFINES} \
311310
-UCMAKE_CXX_FLAGS \
312311
-DCMAKE_CXX_FLAGS_DEBUG="-DUSE_PTHREADS=1 ${VS_C_FLAGS} ${FLAGS_DEBUG} ${EXCEPTION_FLAGS}" \
313312
-DCMAKE_CXX_FLAGS="-DUSE_PTHREADS=1 ${VS_C_FLAGS} ${FLAGS_DEBUG} ${EXCEPTION_FLAGS}" \

apothecary/formulas/curl/curl.sh

Lines changed: 126 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# uses a CMake build system
88

9-
FORMULA_TYPES=("vs" "osx" "ios" "xros" "tvos" "catos")
9+
FORMULA_TYPES=("vs" "osx" "ios" "xros" "tvos" "catos" "android")
1010
FORMULA_DEPENDS=("openssl" "zlib" "brotli")
1111

1212
# Android to implementation 'com.android.ndk.thirdparty:curl:7.79.1-beta-1'
@@ -180,76 +180,130 @@ function build() {
180180

181181
elif [ "$TYPE" == "android" ]; then
182182

183-
source $APOTHECARY_DIR/configure/android_configure.sh $ABI make
183+
source $APOTHECARY_DIR/configure/android_configure.sh $ABI cmake
184184

185-
export OPENSSL_PATH=$OF_LIBS_OPENSSL_ABS_PATH/openssl
186-
local BUILD_TO_DIR=$BUILD_DIR/curl/build/$TYPE/$ABI
187-
export OPENSSL_LIBRARIES=$OPENSSL_PATH/lib/$TYPE/$ABI
185+
export OPENSSL_LIBRARIES=$OF_LIBS_OPENSSL_ABS_PATH/lib/$TYPE/$PLATFORM
186+
OPENSSL_ROOT="$LIBS_ROOT/openssl/"
187+
OPENSSL_INCLUDE_DIR="$LIBS_ROOT/openssl/include"
188+
OPENSSL_LIBRARY="$LIBS_ROOT/openssl/lib/$TYPE/$PLATFORM/libssl.a"
189+
OPENSSL_LIBRARY_CRYPT="$LIBS_ROOT/openssl/lib/$TYPE/$PLATFORM/libcrypto.a"
190+
USE_SECURE_TRANSPORT=OFF
191+
CURL_ENABLE_SSL=ON
192+
SSL_DEFS="-DOPENSSL_ROOT_DIR=${OF_LIBS_OPENSSL_ABS_PATH} \
193+
-DOPENSSL_INCLUDE_DIR=${OF_LIBS_OPENSSL_ABS_PATH}/include \
194+
-DOPENSSL_CRYPTO_LIBRARY=${OPENSSL_LIBRARY_CRYPT} \
195+
-DOPENSSL_SSL_LIBRARY=${OPENSSL_LIBRARY} \
196+
-DOPENSSL_LIBRARIES=${OF_LIBS_OPENSSL_ABS_PATH}/lib/${TYPE}/${PLATFORM}/libssl.a;${OF_LIBS_OPENSSL_ABS_PATH}/lib/${TYPE}/${PLATFORM}/libcrypto.a"
188197

189-
if [ "$ARCH" == "armv7" ]; then
190-
export HOST=armv7a-linux-android
191-
elif [ "$ARCH" == "arm64" ]; then
192-
export HOST=aarch64-linux-android
193-
elif [ "$ARCH" == "x86" ]; then
194-
export HOST=x86-linux-android
195-
elif [ "$ARCH" == "x86_64" ]; then
196-
export HOST=x86_64-linux-android
197-
fi
198+
ZLIB_ROOT="$LIBS_ROOT/zlib/"
199+
ZLIB_INCLUDE_DIR="$LIBS_ROOT/zlib/include"
200+
ZLIB_LIBRARY="$LIBS_ROOT/zlib/lib/$TYPE/$PLATFORM/zlib.a"
198201

199-
export NDK=$ANDROID_PLATFORM
200-
export HOST_TAG=$HOST_PLATFORM
201-
export MIN_SDK_VERSION=21
202-
export SSL_DIR=$OPENSSL_LIBRARIES
203-
204-
export OUTPUT_DIR=$OPENSSL_LIBRARIES
205-
mkdir -p build
206-
mkdir -p build/$TYPE
207-
mkdir -p build/$TYPE/$ABI
208-
# export DESTDIR="$BUILD_TO_DIR"
209-
210-
export CFLAGS="-std=c${C_STANDARD}"
211-
export CXXFLAGS="-D__ANDROID_MIN_SDK_VERSION__=${ANDROID_API} $MAKE_INCLUDES_CFLAGS -std=c++${CPP_STANDARD}"
212-
# export LIBS="-L${OPENSSL_PATH}/lib/${TYPE}/${ABI}/libssl.a -L${OPENSSL_PATH}/lib/${TYPE}/${ABI}/libcrypto.a " # this dont work annoying
213-
export LDFLAGS=" ${LIBS} -shared -stdlib=libc++ -L$DEEP_TOOLCHAIN_PATH -L$TOOLCHAIN/lib/gcc/$ANDROID_POSTFIX/4.9.x/ "
214-
215-
cp $DEEP_TOOLCHAIN_PATH/crtbegin_dynamic.o $SYSROOT/usr/lib/crtbegin_dynamic.o
216-
cp $DEEP_TOOLCHAIN_PATH/crtbegin_so.o $SYSROOT/usr/lib/crtbegin_so.o
217-
cp $DEEP_TOOLCHAIN_PATH/crtend_android.o $SYSROOT/usr/lib/crtend_android.o
218-
cp $DEEP_TOOLCHAIN_PATH/crtend_so.o $SYSROOT/usr/lib/crtend_so.o
219-
220-
cp ${OPENSSL_PATH}/lib/${TYPE}/${ABI}/libssl.a ${OPENSSL_PATH}/lib/libssl.a # this works!
221-
cp ${OPENSSL_PATH}/lib/${TYPE}/${ABI}/libcrypto.a ${OPENSSL_PATH}/lib/libcrypto.a
222-
223-
echo "OPENSSL_PATH: $OPENSSL_PATH"
224-
225-
PATH="${PATH};${OPENSSL_PATH}/lib/${TYPE}"
226-
227-
./configure \
228-
--host=$HOST \
229-
--with-openssl=$OPENSSL_PATH \
230-
--with-pic \
231-
--enable-static \
232-
--disable-shared \
233-
--disable-verbose \
234-
--disable-threaded-resolver \
235-
--enable-ipv6 \
236-
--without-nghttp2 \
237-
--without-libidn2 \
238-
--disable-ldap \
239-
--disable-ldaps \
240-
--prefix=$BUILD_DIR/curl/build/$TYPE/$ABI
241-
242-
# sed -i "s/#define HAVE_GETPWUID_R 1/\/\* #undef HAVE_GETPWUID_R \*\//g" lib/curl_config.h
243-
make -j${PARALLEL_MAKE}
244-
make install
202+
LIBBROTLI_ROOT="$LIBS_ROOT/brotli/"
203+
LIBBROTLI_INCLUDE_DIR="$LIBS_ROOT/brotli/include"
245204

246-
rm $SYSROOT/usr/lib/crtbegin_dynamic.o
247-
rm $SYSROOT/usr/lib/crtbegin_so.o
248-
rm $SYSROOT/usr/lib/crtend_android.o
249-
rm $SYSROOT/usr/lib/crtend_so.o
205+
LIBBROTLI_LIBRARY="$LIBS_ROOT/brotli/lib/$TYPE/$PLATFORM/libbrotlicommon.a"
206+
LIBBROTLI_ENC_LIB="$LIBS_ROOT/brotli/lib/$TYPE/$PLATFORM/libbrotlienc.a"
207+
LIBBROTLI_DEC_LIB="$LIBS_ROOT/brotli/lib/$TYPE/$PLATFORM/libbrotlidec.a"
250208

251-
rm ${OPENSSL_PATH}/lib/libssl.a
252-
rm ${OPENSSL_PATH}/lib/libcrypto.a
209+
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}:${OPENSSL_ROOT}/lib/$TYPE/$PLATFORM:${ZLIB_ROOT}/lib/$TYPE/$PLATFORM:${LIBBROTLI_ROOT}/lib/$TYPE/$PLATFORM"
210+
211+
echo "building curl $TYPE | $PLATFORM"
212+
echo "--------------------"
213+
mkdir -p "build_${TYPE}_${PLATFORM}"
214+
cd "build_${TYPE}_${PLATFORM}"
215+
rm -f CMakeCache.txt *.a *.o *.lib
216+
DEFINES="-DLIBRARY_SUFFIX=${ARCH} \
217+
-DCMAKE_BUILD_TYPE=Release \
218+
-DCMAKE_C_STANDARD=${C_STANDARD} \
219+
-DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
220+
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
221+
-DCMAKE_CXX_EXTENSIONS=OFF \
222+
-DBUILD_SHARED_LIBS=OFF"
223+
cmake .. ${DEFINES} \
224+
-DCMAKE_TOOLCHAIN_FILE=$APOTHECARY_DIR/toolchains/android.toolchain.cmake \
225+
-DANDROID_ABI=${ABI} \
226+
-DANDROID_API=${ANDROID_API} \
227+
-DANDROID_TOOLCHAIN=clang \
228+
-DANDROID_NDK_ROOT=$ANDROID_NDK_ROOT \
229+
-DENABLE_VISIBILITY=OFF \
230+
-DCMAKE_CXX_FLAGS="-DUSE_PTHREADS=1 ${FLAG_RELEASE} -Wno-error=implicit-function-declaration" \
231+
-DCMAKE_C_FLAGS="-DUSE_PTHREADS=1 ${FLAG_RELEASE} -Wno-error=implicit-function-declaration" \
232+
-DENABLE_STRICT_TRY_COMPILE=ON \
233+
-DHAVE_GETPASS_R=0 \
234+
-DCURL_USE_LIBSSH2=OFF \
235+
-DCURL_USE_LIBPSL=OFF \
236+
-DCMAKE_IGNORE_PATH=/opt/homebrew \
237+
-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \
238+
-DCURL_STATICLIB=ON \
239+
-DBUILD_STATIC_LIBS=ON \
240+
-DENABLE_UNICODE=ON \
241+
-DCMAKE_BUILD_TYPE=Release \
242+
-DCMAKE_INSTALL_PREFIX=Release \
243+
-DCMAKE_INCLUDE_OUTPUT_DIRECTORY=include \
244+
-DHAVE__FSEEKI64=OFF \
245+
-DCMAKE_INSTALL_INCLUDEDIR=include \
246+
-DCMAKE_USE_SYSTEM_CURL=OFF \
247+
-DENABLE_ARC=ON \
248+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
249+
-DCMAKE_MINIMUM_REQUIRED_VERSION=3.22 \
250+
-DCURL_DISABLE_LDAP=ON \
251+
-DENABLE_VISIBILITY=OFF \
252+
${SSL_DEFS} \
253+
-DCMAKE_PREFIX_PATH="${LIBS_ROOT}" \
254+
-DZLIB_ROOT=${ZLIB_ROOT} \
255+
-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR} \
256+
-DZLIB_INCLUDE_DIRS=${ZLIB_INCLUDE_DIR} \
257+
-DZLIB_LIBRARY=${ZLIB_LIBRARY} \
258+
-DZLIB_LIBRARIES=${ZLIB_LIBRARY} \
259+
-DENABLE_ARES=OFF \
260+
-DCMAKE_VERBOSE_MAKEFILE=${VERBOSE_MAKEFILE} \
261+
-DENABLE_UNIX_SOCKETS=OFF \
262+
-DHAVE_LIBSOCKET=OFF \
263+
-DCURL_ENABLE_SSL=${CURL_ENABLE_SSL} \
264+
-DUSE_SECURE_TRANSPORT=${USE_SECURE_TRANSPORT} \
265+
-DCURL_USE_SECTRANSP=${USE_SECURE_TRANSPORT} \
266+
-DUSE_NGHTTP2=OFF \
267+
-DCURL_DISABLE_POP3=ON \
268+
-DCURL_CA_FALLBACK=ON \
269+
-DCURL_DISABLE_IMAP=ON \
270+
-DENABLE_WEBSOCKETS=ON \
271+
-DENABLE_UNIX_SOCKETS=ON \
272+
-DCURL_BROTLI=ON \
273+
-DBROTLI_INCLUDE_DIRS=${LIBBROTLI_INCLUDE_DIR} \
274+
-DBROTLIDEC_LIBRARY=${LIBBROTLI_DEC_LIB} \
275+
-DBROTLICOMMON_LIBRARY=${LIBBROTLI_LIBRARY} \
276+
-DBROTLI_INCLUDE_DIR=${LIBBROTLI_INCLUDE_DIR} \
277+
-DBROTLI_LIBRARIES="${LIBBROTLI_LIBRARY} ;${LIBBROTLI_DEC_LIB};${LIBBROTLI_ENC_LIB}" \
278+
-DUSE_LIBIDN2=OFF \
279+
-DENABLE_VERBOSE=ON \
280+
-DENABLE_THREADED_RESOLVER=ON \
281+
-DENABLE_IPV6=ON
282+
283+
echo "--------- CMakeCache.txt Content ---------"
284+
cat CMakeCache.txt
285+
echo "------------------------------------------"
286+
287+
288+
cmake --build . --config Release -j${PARALLEL_MAKE} --target install
289+
290+
cd "Release/lib/"
291+
# Rename with prefixes (including library origin to avoid duplicates)
292+
mkdir -p curl
293+
mv libcurl.a curl/libcurl.a
294+
cd curl
295+
ar -x libcurl.a
296+
for f in *.o; do mv "$f" "curl_${ARCH}_$f"; done
297+
for obj in *.o; do
298+
if [ -z "$(nm "$obj")" ]; then
299+
echo "Removing empty object file: $obj"
300+
rm -f "$obj"
301+
fi
302+
done
303+
ar rcs "../libcurl.a" curl_${ARCH}_*.o
304+
rm -rf curl
305+
cd ../..
306+
cd ..
253307

254308
elif [[ "$TYPE" =~ ^(osx|ios|tvos|xros|catos|watchos)$ ]]; then
255309

@@ -360,13 +414,10 @@ function build() {
360414
-DENABLE_THREADED_RESOLVER=ON \
361415
-DENABLE_IPV6=ON
362416
cmake --build . --config Release -j${PARALLEL_MAKE} --target install
363-
364-
cd "Release/lib/"
365-
417+
cd "Release/lib/"
366418
# Rename with prefixes (including library origin to avoid duplicates)
367419
mkdir -p curl
368420
mv libcurl.a curl/libcurl.a
369-
370421
cd curl
371422
ar -x libcurl.a
372423
for f in *.o; do mv "$f" "curl_${ARCH}_$f"; done
@@ -377,17 +428,11 @@ function build() {
377428
fi
378429
done
379430
ar rcs "../libcurl.a" curl_${ARCH}_*.o
380-
381-
382-
383431
echo "Verifying libcurl.a.:"
384432
lipo -info "libcurl.a"
385-
386433
rm -rf curl
387434
cd ../..
388-
389435
cd ..
390-
391436
else
392437
echo "building other for $TYPE"
393438
if [ $CROSSCOMPILING -eq 1 ]; then
@@ -436,9 +481,10 @@ function copy() {
436481
cp -v "build_${TYPE}_${PLATFORM}/Release/lib/libcurl.a" $1/lib/$TYPE/$PLATFORM/curl.a
437482
secure "$1/lib/$TYPE/$PLATFORM/curl.a" "curl.pkl" "$VERSION" "$DEFINES" "$BUILD_ID" "$FORMULA_DEPENDS"
438483
elif [ "$TYPE" == "android" ]; then
439-
mkdir -p $1/lib/$TYPE/$ABI
440-
cp -Rv build/$TYPE/$ABI/include/* $1/include/curl/
441-
cp -Rv build/$TYPE/$ABI/lib/libcurl.a $1/lib/$TYPE/$PLATFORM/libcurl.a
484+
mkdir -p $1/lib/$TYPE/$PLATFORM/
485+
cp -Rv "build_${TYPE}_${PLATFORM}/Release/include/"* $1/include
486+
mkdir -p $1/bin
487+
cp -Rv "build_${TYPE}_${PLATFORM}/Release/lib/libcurl.a" $1/lib/$TYPE/$PLATFORM/libcurl.a
442488
secure "$1/lib/$TYPE/$PLATFORM/libcurl.a" "curl.pkl" "$VERSION" "$DEFINES" "$BUILD_ID" "$FORMULA_DEPENDS"
443489
fi
444490
# copy license file
@@ -451,7 +497,7 @@ function copy() {
451497

452498
# executed inside the lib src dir
453499
function clean() {
454-
if [[ "$TYPE" =~ ^(osx|ios|tvos|xros|catos|watchos|emscripten)$ ]]; then
500+
if [[ "$TYPE" =~ ^(osx|ios|tvos|xros|catos|watchos|emscripten|android)$ ]]; then
455501
if [ -d "build_${TYPE}_${PLATFORM}" ]; then
456502
rm -r build_${TYPE}_${PLATFORM}
457503
fi

apothecary/formulas/opencv/opencv.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ function build() {
117117
-DWITH_IMGCODEC_HDR=ON \
118118
-DWITH_CARBON=OFF \
119119
-DWITH_JPEG=OFF \
120-
-DWITH_TIFF=ON \
120+
-DWITH_TIFF=OFF \
121121
-DWITH_FFMPEG=ON \
122122
-DWITH_QUIRC=ON \
123123
-DWITH_GIGEAPI=OFF \

0 commit comments

Comments
 (0)