web-dev-qa-db-ja.com

最新のclang-tidyの作成方法は?

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に最新バージョンをインストールできますか?

17
ruipacheco

[〜#〜] 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

16
jtbandes

@jtbandes:情報ありがとうございます。

私たち初心者のためにこれらの明示的な手順を共有したいと思います:

1.リリースされたソースを LLVMダウンロードページ からダウンロードします。

2.これらのそれぞれを適切なディレクトリに解凍します。

$ 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.srcextraに名前を変更する必要があります(@jtbandesで言及)。

3.したがって、名前を変更するか、シンボリックリンクを提供します。

$ 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が有効になりました

4.ビルドします。

$ cd llvm-6.0.1.src
$ mkdir build
$ cd build
$ cmake ..
$ make 

すべてがエラーや警告なしに作成されるはずです。

5.ビルド出力:

ビルド出力はllvm-6.0.1.src/build/binにあります。

13
natersoz

最新の手順:

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

リファレンス、忍者、その他の詳細: 自分のブログ投稿

8
YvesgereY

私はパー・ミルドナーと同じ問題を抱えていました。少し修正されたコード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
1
9cvele3