安裝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
時間會比較長
修改環(huán)境變量
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
檢驗結果
終端執(zhí)行:
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
將子工程鏈接起來
- 根據(jù)‘構建OClint源碼XCode工程’的方法撤蚊,分別創(chuàng)建driver戳护,core,reporters橘霎,rules工程;
- 以driver為主工程殖属,因為這是OClint的入口工程姐叁,將其他子工程添加到driver工程中;
- 最后將llvm工程添加到driver工程中洗显;
- 配置driver編譯腳本:
cp ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME} ../build/oclint-release/bin
節(jié)省編譯后拷貝 - 配置llvm子工程編譯腳本:
cp ${BUILT_PRODUCTS_DIR}/lib${PRODUCT_NAME}.a ../build/llvm-install/lib
修改需要調(diào)試的項目即可
調(diào)試OClint方法
需要在XCode的Edit Scheme中的Arguments Passed On Launch中添加啟動參數(shù):
-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