プロトコルバッファの.protoファイルを.pb.cc、.pb.hファイルにコンパイルする必要があります。この変換のためのプログラムがあります。
protoc test.proto --cpp_out .
このような一般的なルールをcmakeに追加するにはどうすればよいですか?add_custom_commandでこれを行うことができます。しかし、私はすべての.protoファイルに対してこれを行う必要があります。これを行うためのより良い方法はありますか?
プロトコルバッファの.protoファイルを.pb.cc、.pb.hファイルにコンパイルする必要があります。この変換のためのプログラムがあります。
protoc test.proto --cpp_out .
このような一般的なルールをcmakeに追加するにはどうすればよいですか?add_custom_commandでこれを行うことができます。しかし、私はすべての.protoファイルに対してこれを行う必要があります。これを行うためのより良い方法はありますか?
CMakeのFindProtobuf
モジュールが関数を介してこの機能を提供しているようPROTOBUF_GENERATE_CPP
です。
1回の呼び出しで複数の.protoファイルを渡すことができます。
file(GLOB ProtoFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.proto")
PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders ${ProtoFiles})
呼び出すCMakeLists.txtファイルがfind_package(Protobuf)
最上位ファイルである可能性がある場合でも、関数を呼び出すCMakeLists.txtファイルは.protoファイルと同じディレクトリにある必要があることに注意してください。