2013-02-04 18 views
7

プロトコルバッファの.protoファイルを.pb.cc、.pb.hファイルにコンパイルする必要があります。この変換のためのプログラムがあります。CMake:カスタムジェネリックコンパイルルールを追加するには?

protoc test.proto --cpp_out . 

どのようにこのようなジェネリックルールをcmakeに追加できますか?私はadd_custom_commandでこれを行うことができます。しかし、すべての.protoファイルに対してこれを行う必要があります。これを行うより良い方法はありますか?

+0

こんにちはモハマド、フレーザーの答えは正しいです、それをご了承ください。 – guinny

答えて

6

CMakeのFindProtobufモジュールは、この機能をPROTOBUF_GENERATE_CPPで提供しているようです。

複数の.protoファイルを1回の呼び出しで渡すことができます。 find_package(Protobuf)を呼び出すCMakeLists.txtファイルがトップレベル1とすることができるにもかかわらず、機能を呼び出すCMakeLists.txtファイル(単数または複数)と同じディレクトリにあることが必要であろうと

file(GLOB ProtoFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.proto") 
PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders ${ProtoFiles}) 

注。 protoファイル。

+6

展開するだけで、$ {ProtoSources}と$ {ProtoHeaders}はそれぞれ .pb.ccと .pb.hファイルを含む変数になります。 add_library()およびadd_executable()関数で直接使用できます。 – psalvaggio

関連する問題