OCLint Xcode 9.3.1 Сбой
У меня есть следующий Run Script, доступный по адресу http://oclint-docs.readthedocs.io/en/stable/guide/xcode.html
source ~/.bash_profile
cd ${SRCROOT}
xcodebuild clean
xcodebuild | xcpretty -r json-compilation-database --output compile_commands.json
oclint-json-compilation-database -- -report-type xcode
Но, когда я выполняю его, я получаю следующую ошибку. (1 ошибка) oclint: Задано недостаточно аргументов позиционной командной строки!
oclint версия OCLint версии 0.13 и Xcode 9.3.1
1 ответ
Я нашел способ создать базу данных компиляции JSON из проекта Xcode, не полагаясь на внешние инструменты. Протестировано с Xcode 13.4.1 на macOS 12 Monterey и Apple Silicon M1 Pro .
Внутри настроек сборки Xcode или при вызовеxcodebuild
вы можете установить следующий флаг компилятора:
OTHER_CFLAGS = $(inherited) -gen-cdb-fragment-path $(PROJECT_DIR)/CompilationDatabase
Это указывает clang создавать фрагмент базы данных компиляции для каждой компиляции. Эти фрагменты можно легко объединить в конечную базу данных компиляции с помощью следующей команды:
sed -e '1s/^/[\'$'\n''/' -e '$s/,$/\'$'\n'']/' *.json > compile_commands.json
Конечно, валидировать фрагменты — хорошая идея, но без внешних инструментов этого не сделать.
Для получения полной информации о флагах компилятора, проверке фрагментов и ссылках ознакомьтесь с сутью:
Создание базы данных компиляции JSON из проекта Xcode.