-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathgetlibs.sh
More file actions
executable file
·81 lines (78 loc) · 3.31 KB
/
getlibs.sh
File metadata and controls
executable file
·81 lines (78 loc) · 3.31 KB
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
#!/usr/bin/env bash
set -e
GETLIBS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR=$(dirname "$GETLIBS_DIR")
source "$GETLIBS_DIR/sources.sh"
if [ "$#" -lt 1 ]; then
echo "Expecting a list of target platforms as arguments."
echo -e "For example: ${BW}$0 darwin linux64 win32${NC}"
echo -e "See ${BW}toolchain/*.cmake${NC} for the list of supported platforms."
fi
for target in "$@" ; do
LIBS="$LOCAL/$target"
# libxml2
echo $LIBS
if [ ! -r "$LIBS/lib/libxml2.a" ] ; then
echo -e "${BW}Preparing source of ${LIBXML2}${NC}"
prepare_libxml2
BUILD="$LIBS/build-${LIBXML2}"
echo -e "${BW}${target}: Configuring ${LIBXML2}${NC}"
cmake -S "$SOURCE/$LIBXML2" -B "$BUILD" -DCMAKE_TOOLCHAIN_FILE="$PROJECT_DIR/toolchain/${target}.cmake" \
-DCMAKE_PREFIX_PATH="$LIBS" -DCMAKE_INSTALL_PREFIX="$LIBS" -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_ZLIB=OFF
echo -e "${BW}${target}: Building ${LIBXML2}${NC}"
cmake --build "$BUILD"
echo -e "${BW}${target}: Testing ${LIBXML2}${NC}"
case "$target" in
win64)
cp $(x86_64-w64-mingw32-g++ --print-file-name=libwinpthread-1.dll) "$BUILD/"
;;
win32)
cp $(i686-w64-mingw32-g++ --print-file-name=libwinpthread-1.dll) "$BUILD/"
;;
esac
(cd "$BUILD" ; ctest --output-on-failure)
echo -e "${BW}${target}: Installing ${LIBXML2}${NC}"
cmake --install "$BUILD"
rm -Rf "$BUILD"
echo -e "${BW}${target}: Success ${LIBXML2}${NC}"
else
echo -e "${BW}${target}: ${LIBXML2} is already installed.${NC}"
fi
if [ ! -r "$LIBS/include/doctest/doctest.h" ] ; then
echo -e "${BW}Preparing source of ${DOCTEST}${NC}"
prepare_doctest
BUILD="$LIBS/build-${DOCTEST}"
echo -e "${BW}${target}: Configuring ${DOCTEST}${NC}"
cmake -S "$SOURCE/$DOCTEST" -B "$BUILD" -DCMAKE_TOOLCHAIN_FILE="$PROJECT_DIR/toolchain/${target}.cmake" \
-DCMAKE_PREFIX_PATH="$LIBS" -DCMAKE_INSTALL_PREFIX="$LIBS" -DCMAKE_BUILD_TYPE=Release
echo -e "${BW}${target}: Building ${DOCTEST}${NC}"
cmake --build "$BUILD"
#echo -e "${BW}${target}: Testing ${DOCTEST}${NC}"
#(cd "$BUILD" ; ctest --output-on-failure)
echo -e "${BW}${target}: Installing ${DOCTEST}${NC}"
cmake --install "$BUILD"
rm -Rf "$BUILD"
echo -e "${BW}${target}: Success ${DOCTEST}${NC}"
else
echo -e "${BW}${target}: ${DOCTEST} is already installed.${NC}"
fi
if [ ! -r "$LIBS/bin/bison" ] ; then
echo -e "${BW}Preparing source of ${BISON}${NC}"
prepare_bison
BUILD="$LIBS/build-${BISON}"
echo -e "${BW}${target}: Configuring ${BISON}${NC}"
mkdir -p "$BUILD"
pushd "$BUILD"
"$SOURCE/$BISON/configure" --prefix="$LIBS"
echo -e "${BW}${target}: Building ${BISON}${NC}"
make -j$(nproc)
echo -e "${BW}${target}: Installing ${BISON}${NC}"
make install
popd
rm -Rf "$BUILD"
echo -e "${BW}${target}: Success ${BISON}${NC}"
else
echo -e "${BW}${target}: ${BISON} is already installed.${NC}"
fi
done