thuai
2/28/2013 - 4:28 AM

Script integrating OCLint into XCode. Put it in "Run script" build phase.

Script integrating OCLint into XCode. Put it in "Run script" build phase.


source ~/.bash_profile


hash oclint &> /dev/null
if [ $? -eq 1 ]; then
echo >&2 "oclint not found, analyzing stopped"
exit 1
fi

cd ${TARGET_TEMP_DIR}

if [ ! -f compile_commands.json ]; then
    echo "[*] compile_commands.json not found, possibly clean was performed"
    echo "[*] starting xcodebuild to rebuild the project.."
    # clean previous output
    if [ -f xcodebuild.log ]; then
    rm xcodebuild.log
    fi

    cd ${SRCROOT}

    xcodebuild clean

    #build xcodebuild.log
    xcodebuild | tee ${TARGET_TEMP_DIR}/xcodebuild.log

    echo "[*] transforming xcodebuild.log into compile_commands.json..."
    cd ${TARGET_TEMP_DIR}
    #transform it into compile_commands.json
    oclint-xcodebuild

fi

#if [-d report.html]; then
#rm report.html
#fi


#run static analyzer
#oclint-json-compilation-database -- -o=./report.html -html

echo "[*] starting analyzing"
cd ${TARGET_TEMP_DIR}
oclint-json-compilation-database | sed 's/\(.*\.\m\{1,2\}:[0-9]*:[0-9]*:\)/\1 warning:/'