Skip to content

Commit 1129906

Browse files
committed
Removal: CI issues in Mac
1 parent 493bab5 commit 1129906

File tree

1 file changed

+161
-45
lines changed

1 file changed

+161
-45
lines changed

mac/build.command

Lines changed: 161 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,175 @@
11
#!/bin/bash
22
cd `dirname $0`
3+
4+
RUST_LIB="rust/release/libccx_rust.a"
5+
RUST_PROFILE="--release"
6+
RUST_FEATURES=""
7+
8+
while [[ $# -gt 0 ]]; do
9+
case $1 in
10+
OCR)
11+
ENABLE_OCR=true
12+
shift
13+
;;
14+
-debug)
15+
DEBUG=true
16+
RUST_PROFILE=""
17+
RUST_LIB="rust/debug/libccx_rust.a"
18+
shift
19+
;;
20+
-hardsubx)
21+
HARDSUBX=true
22+
RUST_FEATURES="--features hardsubx_ocr"
23+
shift
24+
;;
25+
-*)
26+
echo "Unknown option $1"
27+
exit 1
28+
;;
29+
esac
30+
done
31+
332
BLD_FLAGS="-std=gnu99 -Wno-write-strings -Wno-pointer-sign -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -Dfopen64=fopen -Dopen64=open -Dlseek64=lseek -DFT2_BUILD_LIBRARY -DGPAC_DISABLE_VTT -DGPAC_DISABLE_OD_DUMP -DGPAC_DISABLE_REMOTERY -DNO_GZIP"
4-
[[ $1 = "OCR" ]] && BLD_FLAGS="$BLD_FLAGS -DENABLE_OCR"
33+
34+
if [[ "$DEBUG" == "true" ]]; then
35+
BLD_FLAGS="$BLD_FLAGS -g -fsanitize=address"
36+
fi
37+
38+
if [[ "$ENABLE_OCR" == "true" ]]; then
39+
BLD_FLAGS="$BLD_FLAGS -DENABLE_OCR"
40+
fi
41+
42+
if [[ "$HARDSUBX" == "true" ]]; then
43+
BLD_FLAGS="$BLD_FLAGS -DENABLE_HARDSUBX"
44+
fi
45+
546
BLD_INCLUDE="-I../src/ -I../src/lib_ccx -I../src/lib_hash -I../src/thirdparty/libpng -I../src/thirdparty -I../src/thirdparty/protobuf-c -I../src/thirdparty/zlib -I../src/thirdparty/freetype/include `pkg-config --cflags --silence-errors gpac`"
6-
[[ $1 = "OCR" ]] && BLD_INCLUDE="$BLD_INCLUDE `pkg-config --cflags --silence-errors tesseract`"
47+
48+
if [[ "$ENABLE_OCR" == "true" ]]; then
49+
BLD_INCLUDE="$BLD_INCLUDE `pkg-config --cflags --silence-errors tesseract`"
50+
fi
51+
752
SRC_CCX="$(find ../src/lib_ccx -name '*.c')"
853
SRC_LIB_HASH="$(find ../src/thirdparty/lib_hash -name '*.c')"
954
SRC_LIBPNG="$(find ../src/thirdparty/libpng -name '*.c')"
1055
SRC_PROTOBUF="$(find ../src/thirdparty/protobuf-c -name '*.c')"
1156
SRC_UTF8="../src/thirdparty/utf8proc/utf8proc.c"
1257
SRC_ZLIB="$(find ../src/thirdparty/zlib -name '*.c')"
1358
SRC_FREETYPE="../src/thirdparty/freetype/autofit/autofit.c \
14-
../src/thirdparty/freetype/base/ftbase.c \
15-
../src/thirdparty/freetype/base/ftbbox.c \
16-
../src/thirdparty/freetype/base/ftbdf.c \
17-
../src/thirdparty/freetype/base/ftbitmap.c \
18-
../src/thirdparty/freetype/base/ftcid.c \
19-
../src/thirdparty/freetype/base/ftfntfmt.c \
20-
../src/thirdparty/freetype/base/ftfstype.c \
21-
../src/thirdparty/freetype/base/ftgasp.c \
22-
../src/thirdparty/freetype/base/ftglyph.c \
23-
../src/thirdparty/freetype/base/ftgxval.c \
24-
../src/thirdparty/freetype/base/ftinit.c \
25-
../src/thirdparty/freetype/base/ftlcdfil.c \
26-
../src/thirdparty/freetype/base/ftmm.c \
27-
../src/thirdparty/freetype/base/ftotval.c \
28-
../src/thirdparty/freetype/base/ftpatent.c \
29-
../src/thirdparty/freetype/base/ftpfr.c \
30-
../src/thirdparty/freetype/base/ftstroke.c \
31-
../src/thirdparty/freetype/base/ftsynth.c \
32-
../src/thirdparty/freetype/base/ftsystem.c \
33-
../src/thirdparty/freetype/base/fttype1.c \
34-
../src/thirdparty/freetype/base/ftwinfnt.c \
35-
../src/thirdparty/freetype/bdf/bdf.c \
36-
../src/thirdparty/freetype/bzip2/ftbzip2.c \
37-
../src/thirdparty/freetype/cache/ftcache.c \
38-
../src/thirdparty/freetype/cff/cff.c \
39-
../src/thirdparty/freetype/cid/type1cid.c \
40-
../src/thirdparty/freetype/gzip/ftgzip.c \
41-
../src/thirdparty/freetype/lzw/ftlzw.c \
42-
../src/thirdparty/freetype/pcf/pcf.c \
43-
../src/thirdparty/freetype/pfr/pfr.c \
44-
../src/thirdparty/freetype/psaux/psaux.c \
45-
../src/thirdparty/freetype/pshinter/pshinter.c \
46-
../src/thirdparty/freetype/psnames/psnames.c \
47-
../src/thirdparty/freetype/raster/raster.c \
48-
../src/thirdparty/freetype/sfnt/sfnt.c \
49-
../src/thirdparty/freetype/smooth/smooth.c \
50-
../src/thirdparty/freetype/truetype/truetype.c \
51-
../src/thirdparty/freetype/type1/type1.c \
52-
../src/thirdparty/freetype/type42/type42.c \
53-
../src/thirdparty/freetype/winfonts/winfnt.c"
59+
../src/thirdparty/freetype/base/ftbase.c \
60+
../src/thirdparty/freetype/base/ftbbox.c \
61+
../src/thirdparty/freetype/base/ftbdf.c \
62+
../src/thirdparty/freetype/base/ftbitmap.c \
63+
../src/thirdparty/freetype/base/ftcid.c \
64+
../src/thirdparty/freetype/base/ftfntfmt.c \
65+
../src/thirdparty/freetype/base/ftfstype.c \
66+
../src/thirdparty/freetype/base/ftgasp.c \
67+
../src/thirdparty/freetype/base/ftglyph.c \
68+
../src/thirdparty/freetype/base/ftgxval.c \
69+
../src/thirdparty/freetype/base/ftinit.c \
70+
../src/thirdparty/freetype/base/ftlcdfil.c \
71+
../src/thirdparty/freetype/base/ftmm.c \
72+
../src/thirdparty/freetype/base/ftotval.c \
73+
../src/thirdparty/freetype/base/ftpatent.c \
74+
../src/thirdparty/freetype/base/ftpfr.c \
75+
../src/thirdparty/freetype/base/ftstroke.c \
76+
../src/thirdparty/freetype/base/ftsynth.c \
77+
../src/thirdparty/freetype/base/ftsystem.c \
78+
../src/thirdparty/freetype/base/fttype1.c \
79+
../src/thirdparty/freetype/base/ftwinfnt.c \
80+
../src/thirdparty/freetype/bdf/bdf.c \
81+
../src/thirdparty/freetype/bzip2/ftbzip2.c \
82+
../src/thirdparty/freetype/cache/ftcache.c \
83+
../src/thirdparty/freetype/cff/cff.c \
84+
../src/thirdparty/freetype/cid/type1cid.c \
85+
../src/thirdparty/freetype/gzip/ftgzip.c \
86+
../src/thirdparty/freetype/lzw/ftlzw.c \
87+
../src/thirdparty/freetype/pcf/pcf.c \
88+
../src/thirdparty/freetype/pfr/pfr.c \
89+
../src/thirdparty/freetype/psaux/psaux.c \
90+
../src/thirdparty/freetype/pshinter/pshinter.c \
91+
../src/thirdparty/freetype/psnames/psnames.c \
92+
../src/thirdparty/freetype/raster/raster.c \
93+
../src/thirdparty/freetype/sfnt/sfnt.c \
94+
../src/thirdparty/freetype/smooth/smooth.c \
95+
../src/thirdparty/freetype/truetype/truetype.c \
96+
../src/thirdparty/freetype/type1/type1.c \
97+
../src/thirdparty/freetype/type42/type42.c \
98+
../src/thirdparty/freetype/winfonts/winfnt.c"
99+
54100
BLD_SOURCES="../src/ccextractor.c $SRC_API $SRC_CCX $SRC_LIB_HASH $SRC_LIBPNG $SRC_PROTOBUF $SRC_UTF8 $SRC_ZLIB $SRC_ZVBI $SRC_FREETYPE"
55-
BLD_LINKER="-lm -liconv -lpthread -ldl `pkg-config --libs --silence-errors tesseract` `pkg-config --libs --silence-errors gpac`"
56-
[[ $1 = "OCR" ]] && BLD_LINKER="$BLD_LINKER `pkg-config --libs --silence-errors tesseract` `pkg-config --libs --silence-errors lept`"
57101

102+
BLD_LINKER="-lm -liconv -lpthread -ldl `pkg-config --libs --silence-errors gpac`"
103+
104+
if [[ "$ENABLE_OCR" == "true" ]]; then
105+
BLD_LINKER="$BLD_LINKER `pkg-config --libs --silence-errors tesseract` `pkg-config --libs --silence-errors lept`"
106+
fi
107+
108+
if [[ "$HARDSUBX" == "true" ]]; then
109+
BLD_LINKER="$BLD_LINKER -lswscale -lavutil -pthread -lavformat -lavcodec -lavfilter"
110+
fi
111+
112+
echo "Running pre-build script..."
58113
./pre-build.sh
59-
gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER
114+
echo "Trying to compile..."
115+
116+
echo "Checking for cargo..."
117+
if ! [ -x "$(command -v cargo)" ]; then
118+
echo 'Error: cargo is not installed.' >&2
119+
exit 1
120+
fi
121+
122+
rustc_version="$(rustc --version)"
123+
semver=( ${rustc_version//./ } )
124+
version="${semver[1]}.${semver[2]}.${semver[3]}"
125+
MSRV="1.54.0"
126+
if [ "$(printf '%s\n' "$MSRV" "$version" | sort -V | head -n1)" = "$MSRV" ]; then
127+
echo "rustc >= MSRV(${MSRV})"
128+
else
129+
echo "Minimum supported rust version(MSRV) is ${MSRV}, please upgrade rust"
130+
exit 1
131+
fi
132+
133+
echo "Building rust files..."
134+
(cd ../src/rust && CARGO_TARGET_DIR=../../mac/rust cargo build $RUST_PROFILE $RUST_FEATURES) || { echo "Failed building Rust components." ; exit 1; }
135+
136+
cp $RUST_LIB ./libccx_rust.a
137+
138+
BLD_LINKER="$BLD_LINKER ./libccx_rust.a"
139+
140+
echo "Building ccextractor"
141+
out=$( (LC_ALL=C gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER) 2>&1)
142+
res=$?
143+
144+
if [[ $out == *"gcc: command not found"* ]]; then
145+
echo "Error: please install gcc or Xcode command line tools"
146+
exit 1
147+
fi
148+
149+
if [[ $out == *"curl.h: No such file or directory"* ]]; then
150+
echo "Error: please install curl development library"
151+
exit 2
152+
fi
153+
154+
if [[ $out == *"capi.h: No such file or directory"* ]]; then
155+
echo "Error: please install tesseract development library"
156+
exit 3
157+
fi
158+
159+
if [[ $out == *"allheaders.h: No such file or directory"* ]]; then
160+
echo "Error: please install leptonica development library"
161+
exit 4
162+
fi
163+
164+
if [[ $res -ne 0 ]]; then
165+
echo "Compiled with errors"
166+
>&2 echo "$out"
167+
exit 5
168+
fi
169+
170+
if [[ "$out" != "" ]]; then
171+
echo "$out"
172+
echo "Compilation successful, compiler message shown in previous lines"
173+
else
174+
echo "Compilation successful, no compiler messages."
175+
fi

0 commit comments

Comments
 (0)