OCLint编译手册
2018-06-05 本文已影响0人
vincentgemini
安装CMake
安装后需要安装命令行工具:Tool->How to install for command line use
提示三种方法,选择一种:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
也可以使用brew安装
brew install cmake
安装Ninja
brew install ninja
安装openssl
brew install openssl
下载源码
编码源码
cd oclint-scripts
./make
时间会比较长
修改环境变量
export OCLINT="$HOME/Code/Sourcetree/oclint/build/oclint-release/bin"
export PATH=$OCLINT:$PATH
cd oclint
cp build/oclint-release/bin/oclint* /usr/local/bin/
以下是为了后面编译源码做准备:
ln -s ~/Code/Sourcetree/oclint/build/oclint-release/lib/oclint /usr/local/lib
ln -s ~/Code/Sourcetree/oclint/build/oclint-release/lib/clang /usr/local/lib
检验结果
终端执行:
oclint --version
结果如下:
LLVM (http://llvm.org/):
LLVM version 5.0.1
Optimized build.
Default target: x86_64-apple-darwin17.5.0
Host CPU: skylake
OCLint (http://oclint.org/):
OCLint version 0.13.1.
Built May 28 2018 (17:58:53).
构建XCode工程
构建Rules工程
cd oclint
mkdir _rules
cd _rules
touch rules.sh
chmod +x rules.sh
输入:
#! /bin/sh -e
cmake -G Xcode -D CMAKE_CXX_COMPILER=../build/llvm-install/bin/clang++ -D CMAKE_C_COMPILER=../build/llvm-install/bin/clang -D OCLINT_BUILD_DIR=../build/oclint-core -D OCLINT_SOURCE_DIR=../oclint-core -D OCLINT_METRICS_SOURCE_DIR=../oclint-metrics -D OCLINT_METRICS_BUILD_DIR=../build/oclint-metrics -D LLVM_ROOT=../build/llvm-install/ ../oclint-rules
然后:
chmod +ux rules.sh
./rules.sh
同样的方法,修改shell脚本中的LLVM_ROOT目录,构建reporters和driver等其他目录。
问题
- 'countly/Countly.h' file not found
添加 oclint/countly/include到 OCLintDriver target的build settings-->Header Search Paths
- ld: library not found for -lCountly
添加 oclint/build/countly/lib到 oclint-0.13.1 target的build settings-->Library Search Paths
构建LLVM源码XCode工程
cd oclint
mkdir _llvm
cd _llvm
cmake -G Xcode ../llvm -DCMAKE_BUILD_TYPE:STRING=MinSizeRel
将子工程链接起来
- 根据‘构建OClint源码XCode工程’的方法,分别创建driver,core,reporters,rules工程;
- 以driver为主工程,因为这是OClint的入口工程,将其他子工程添加到driver工程中;
- 最后将llvm工程添加到driver工程中;
- 配置driver编译脚本:
cp ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME} ../build/oclint-release/bin
节省编译后拷贝 - 配置llvm子工程编译脚本:
cp ${BUILT_PRODUCTS_DIR}/lib${PRODUCT_NAME}.a ../build/llvm-install/lib
修改需要调试的项目即可
调试OClint方法
需要在XCode的Edit Scheme中的Arguments Passed On Launch中添加启动参数:
-R /Users/zhongyafeng/Code/Sourcetree/oclint/_rules/rules.dl/Debug -p /Users/zhongyafeng/Code/JDJR/jdjrMobile_IOS_all --verbose -max-priority-1=10000 -max-priority-2=10000 -max-priority-3=10000 -report-type pmd -o oclint.xml /Users/zhongyafeng/Code/JDJR/jdjrMobile_IOS_all/JDWallet/JDWallet/CBLibrary/Addition/UIFont+CBAddition.m