sources からclang-tidyをビルドしようとしましたが、未定義のCMakeコマンドについて不満があります。
CMake Error at clang-apply-replacements/CMakeLists.txt:5 (add_clang_library):
Unknown CMake command "add_clang_library".
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as
cmake_minimum_required(VERSION 3.9)
should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.
-- Configuring incomplete, errors occurred!
どのようにしてclang-tidyをビルドできますか、あるいは、どのようにしてmacOSに最新バージョンをインストールできますか?
[〜#〜] edit [〜#〜]:この回答は古くなっています— LLVMプロジェクトは、単一のgitリポジトリに移動しました- https://github.com/llvm/llvm-project 。更新された手順については、以下の回答を参照してください。
clang-tidyは、ビルドすることを目的としていますinside llvm/clangのチェックアウトであり、llvmプロジェクトのCMakeマクロに依存しています。 llvmリポジトリをチェックアウトし、次にllvm/tools/clang
内のclangリポジトリ、[thenllvm/tools/clang/tools/extra
内のclang-tools-extraリポジトリをチェックアウトする必要があります。次に、最上位ディレクトリでCMakeを実行できます。make clang-tidy
が機能するはずです。
自分で作成することに興味がない場合は、LLVMのHomebrew式に追加のツールも含まれているようです。 https://github.com/Homebrew/homebrew-core/blob/382d3defb5bc48ce2dccd17261be70c4ada9a124/Formula/llvm .rb#L181
@jtbandes:情報ありがとうございます。
私たち初心者のためにこれらの明示的な手順を共有したいと思います:
$ tar -zxvf <download_dir_path>/llvm-6.0.1.src.tar.xz
$ cd llvm-6.0.1.src/tools
$ tar -zxcf <download_dir_path>/cfe-6.0.1.src.tar.xz
$ cd llvm-6.0.1.src/tools/cfe-6.0.1.src/tools
$ tar -zxvf <download_dir_path>/clang-tools-extra-6.0.1.src.tar.xz
ディレクトリ内の結果llvm-6.0.1.src/tools/cfe-6.0.1.src/tools/clang-tools-extra-6.0.1.src/clang-tidy
;不正解です。 lang-tools-extra-6.0.1.src
はextra
に名前を変更する必要があります(@jtbandesで言及)。
$ cd llvm-6.0.1.src/tools/cfe-6.0.1.src/tools
$ mv clang-tools-extra-6.0.1.src extra
or
$ ln -s clang-tools-extra-6.0.1.src extra
パスllvm-6.0.1.src/tools/cfe-6.0.1.src/tools/extra/clang-tidy
が有効になりました
$ cd llvm-6.0.1.src
$ mkdir build
$ cd build
$ cmake ..
$ make
すべてがエラーや警告なしに作成されるはずです。
ビルド出力はllvm-6.0.1.src/build/bin
にあります。
最新の手順:
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS="clang-tools-extra" ../llvm
make install-clang-tidy
リファレンス、忍者、その他の詳細: 自分のブログ投稿
私はパー・ミルドナーと同じ問題を抱えていました。少し修正されたコードYvesgereYを投稿することで問題は解決しました(その答えにコメントを投稿するのに十分な評判がなかったため、代わりに新しい答えが返されました)。
つまり、-G "Unix Makefiles"
からcmakeへ。このオプションがないと、メイクファイルは生成されません。また、-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;"
。 clang-tools-extraを指定しただけでは機能しませんでした。
ここに全体のスニペットがあります:
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;" ../llvm
make -j8 install-clang-tidy