forked from pikhq/sabotage
-
Notifications
You must be signed in to change notification settings - Fork 68
/
cmake
76 lines (67 loc) · 2.43 KB
/
cmake
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
[mirrors]
https://github.com/Kitware/CMake/releases/download/v3.20.3/cmake-3.20.3.tar.gz
[vars]
filesize=9440009
sha512=ed2b8b04c759c4f7c5c363be33bf08e6677c710c1f937050a378ab5539136b919531e1c927b117b3d8d68d4bb613de8d92a3d4d50f3ab3bc98355febca779a1b
pkgver=4
desc='immensely bloated build tool mostly used by windows and C++ folks'
[deps]
curses
bzip2
curl
expat
zlib
libarchive
[build]
patch -p1 < "$K"/cmake-isystem.patch
patch -p1 < "$K"/cmake-lib64.patch
sed -i 's,curses_version,baudrate,' Source/Checks/Curses/CheckCurses.c
sed -i 's,defined(HAVE_LIBCRYPTO),0,' Utilities/cmlibarchive/libarchive/archive_hmac.c
if [ -z "$CROSS_COMPILE" ] ; then
CPPFLAGS="-D_GNU_SOURCE" CFLAGS="$optcflags" CXXFLAGS="$optcflags" \
LDFLAGS="$optldflags -Wl,-rpath-link=$butch_root_dir$butch_prefix/lib" \
./configure --prefix="$butch_prefix" \
--system-curl \
--system-zlib \
--system-bzip2 \
--system-expat \
--system-libarchive
make -j$MAKE_THREADS
make DESTDIR="$butch_install_dir" install
else
mkdir -p build && cd build
for i in ar ld nm objcopy objdump strip ; do
printf '#!/bin/sh\n%s%s "$@"\n' "$CROSS_COMPILE" "$i" > "$CROSS_COMPILE""$i"
chmod +x "$CROSS_COMPILE""$i"
done
[ -n "$CROSS_COMPILE" ] && xconfflags="
-DCMAKE_FIND_ROOT_PATH=$butch_root_dir$butch_prefix \
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DCMAKE_AR="$CROSS_COMPILE"ar \
-DCMAKE_LD="$CROSS_COMPILE"ld \
-DCMAKE_NM="$CROSS_COMPILE"nm \
-DCMAKE_OBJCOPY="$CROSS_COMPILE"objcopy \
-DCMAKE_OBJDUMP="$CROSS_COMPILE"objdump \
-DCMAKE_STRIP="$CROSS_COMPILE"strip \
"
sed -i 's@macro(ADD_DOCS target dependency)@macro(ADD_DOCS target dependency)\nendmacro()\nmacro(ADD_FUCKS target dependency)@' ../Utilities/CMakeLists.txt || { echo sed err ; exit 1 ; }
sed -i 's@^ COMMAND \${CMD}@ COMMAND true@' ../Utilities/CMakeLists.txt || { echo sed err ; exit 1 ; }
CFLAGS="-D_GNU_SOURCE $optcflags" \
LDFLAGS="$optldflags -Wl,-rpath-link=$butch_root_dir$butch_prefix/lib" \
CXXFLAGS="$optcflags" \
cmake $xconfflags \
-DCMAKE_INSTALL_PREFIX="$butch_prefix" \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_USE_SYSTEM_BZIP2=ON \
-DCMAKE_USE_SYSTEM_LIBARCHIVE=ON \
-DCMAKE_USE_SYSTEM_CURL=ON \
-DCMAKE_USE_SYSTEM_ZLIB=ON \
-DCMAKE_USE_SYSTEM_EXPAT=ON \
-DCTEST_TEST_CPACK=OFF \
..
make -j$MAKE_THREADS VERBOSE=1
sed -i 's@^[\t ]*bin/cmake@\tcmake@g' Makefile
make DESTDIR="$butch_install_dir" install
fi