47 lines
1,023 B
Bash
47 lines
1,023 B
Bash
|
#!@shell@
|
||
|
|
||
|
inPreprocessorMode () {
|
||
|
hasE=0
|
||
|
hasU=0
|
||
|
hasT=0
|
||
|
for arg in "$@"
|
||
|
do
|
||
|
if [ 'x-E' = "x$arg" ]; then hasE=1; fi
|
||
|
if [ 'x-undef' = "x$arg" ]; then hasU=1; fi
|
||
|
if [ 'x-traditional' = "x$arg" ]; then hasT=1; fi
|
||
|
done
|
||
|
[ "$hasE$hasU$hasT" = '111' ]
|
||
|
}
|
||
|
|
||
|
extraClangArgs="-Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs"
|
||
|
|
||
|
adjustPreprocessorLanguage () {
|
||
|
newArgs=''
|
||
|
while [ $# -gt 0 ]
|
||
|
do
|
||
|
newArgs="$newArgs $1"
|
||
|
if [ "$1" = '-x' ]
|
||
|
then
|
||
|
shift
|
||
|
if [ $# -gt 0 ]
|
||
|
then
|
||
|
if [ "$1" = 'c' ]
|
||
|
then
|
||
|
newArgs="$newArgs assembler-with-cpp"
|
||
|
else
|
||
|
newArgs="$newArgs $1"
|
||
|
fi
|
||
|
fi
|
||
|
fi
|
||
|
shift
|
||
|
done
|
||
|
echo $newArgs
|
||
|
}
|
||
|
|
||
|
if inPreprocessorMode "$@"
|
||
|
then
|
||
|
exec clang $extraClangArgs `adjustPreprocessorLanguage "$@"`
|
||
|
else
|
||
|
exec clang $extraClangArgs "${@/-nodefaultlibs/}"
|
||
|
fi
|