mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
e7bc611dac
Cleaned up some of the warnings it gives. Disabled the ones that are less useful for us at this time.
99 lines
2.9 KiB
Bash
99 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
CPPFLAGS="-DMIN_LOGGER_LEVEL=LOGGER_LEVEL_TRACE"
|
|
CPPFLAGS+=("-isystem" "/usr/include/opus")
|
|
CPPFLAGS+=("-Iauto_tests")
|
|
CPPFLAGS+=("-Iother")
|
|
CPPFLAGS+=("-Iother/bootstrap_daemon/src")
|
|
CPPFLAGS+=("-Iother/fun")
|
|
CPPFLAGS+=("-Itesting")
|
|
CPPFLAGS+=("-Itesting/fuzzing")
|
|
CPPFLAGS+=("-Itoxcore")
|
|
CPPFLAGS+=("-Itoxcore/events")
|
|
CPPFLAGS+=("-Itoxav")
|
|
CPPFLAGS+=("-Itoxencryptsave")
|
|
|
|
LDFLAGS=("-lopus" "-lmsgpackc" "-lsodium" "-lvpx" "-lpthread" "-lconfig" "-lgtest")
|
|
LDFLAGS+=("-fuse-ld=gold")
|
|
LDFLAGS+=("-Wl,--detect-odr-violations")
|
|
LDFLAGS+=("-Wl,--warn-common")
|
|
LDFLAGS+=("-Wl,--warn-execstack")
|
|
LDFLAGS+=("-Wl,-z,noexecstack")
|
|
LDFLAGS+=("-Wl,-z,now")
|
|
|
|
put() {
|
|
if [ "$SKIP_LINES" = "" ]; then
|
|
echo "#line 1 \"$1\"" >>amalgamation.cc
|
|
fi
|
|
cat "$1" >>amalgamation.cc
|
|
}
|
|
|
|
putmain() {
|
|
NS=$(echo "${1//[^a-zA-Z0-9_]/_}" | sed -e 's/^__*//')
|
|
echo "namespace $NS {" >>amalgamation.cc
|
|
if [ "$SKIP_LINES" = "" ]; then
|
|
echo "#line 1 \"$1\"" >>amalgamation.cc
|
|
fi
|
|
sed -e 's/^int main(/static &/' "$1" >>amalgamation.cc
|
|
echo "} // namespace $NS" >>amalgamation.cc
|
|
}
|
|
|
|
callmain() {
|
|
NS=$(echo "${1//[^a-zA-Z0-9_]/_}" | sed -e 's/^__*//')
|
|
echo " call($NS::main, argc, argv);" >>amalgamation.cc
|
|
}
|
|
|
|
: >amalgamation.cc
|
|
|
|
# Include all C and C++ code
|
|
FIND_QUERY="find . '-(' -name '*.c' -or -name '*.cc' '-)'"
|
|
# Excludes
|
|
FIND_QUERY="$FIND_QUERY -and -not -wholename './_build/*'"
|
|
FIND_QUERY="$FIND_QUERY -and -not -wholename './super_donators/*'"
|
|
FIND_QUERY="$FIND_QUERY -and -not -name amalgamation.cc"
|
|
FIND_QUERY="$FIND_QUERY -and -not -name av_test.c"
|
|
FIND_QUERY="$FIND_QUERY -and -not -name cracker.c"
|
|
FIND_QUERY="$FIND_QUERY -and -not -name dht_test.c"
|
|
FIND_QUERY="$FIND_QUERY -and -not -name version_test.c"
|
|
FIND_QUERY="$FIND_QUERY -and -not -wholename './testing/fuzzing/*'"
|
|
|
|
if [ "$SKIP_GTEST" == 1 ]; then
|
|
FIND_QUERY="$FIND_QUERY -and -not -name '*_test.cc'"
|
|
fi
|
|
|
|
readarray -t FILES <<<"$(eval "$FIND_QUERY")"
|
|
|
|
(for i in "${FILES[@]}"; do
|
|
grep -o '#include <[^>]*>' "$i" |
|
|
grep -E -v '<win|<ws|<iphlp|<libc|<mach/|<crypto_|<randombytes|<u.h>|<sys/filio|<stropts.h>|<linux'
|
|
done) | sort -u >>amalgamation.cc
|
|
|
|
put auto_tests/check_compat.h
|
|
|
|
echo 'namespace {' >>amalgamation.cc
|
|
for i in "${FILES[@]}"; do
|
|
if ! grep -q '^int main(' "$i"; then
|
|
put "$i"
|
|
fi
|
|
done
|
|
|
|
for i in "${FILES[@]}"; do
|
|
if grep -q '^int main(' "$i"; then
|
|
putmain "$i"
|
|
fi
|
|
done
|
|
|
|
echo "static void call(int m(), int argc, char **argv) { m(); }" >>amalgamation.cc
|
|
echo "static void call(int m(int, char **), int argc, char **argv) { m(argc, argv); }" >>amalgamation.cc
|
|
echo "static void call(int m(int, const char *const *), int argc, char **argv) { m(argc, argv); }" >>amalgamation.cc
|
|
echo '} // namespace' >>amalgamation.cc
|
|
|
|
echo "int main(int argc, char **argv) {" >>amalgamation.cc
|
|
for i in "${FILES[@]}"; do
|
|
if grep -q '^int main(' "$i"; then
|
|
callmain "$i"
|
|
fi
|
|
done
|
|
echo " return 0;" >>amalgamation.cc
|
|
echo "}" >>amalgamation.cc
|