Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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:/'
@cprovatas

This comment has been minimized.

Copy link

commented Jun 6, 2019

when using this with xcode, it has to run xcodebuild twice. is there any way to get the existing output from xcodebuild?

@gavrix

This comment has been minimized.

Copy link
Owner Author

commented Jun 6, 2019

It was tested on Xcode that was out 6 years. I'm sorry, I haven't tried on newer Xcode since then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.