项目中pb用的越来越多,更改后手动编译proto越来越麻烦,摸索了下在cmake中自动编译proto文件的办法。
- 利用cmake提供的宏PROTOBUF_GENERATE_CPP
示例代码结构如下:
|
|
顶层CMakeLists.txt如下:
src/CMakeLists.txt如下:
src/proto/CMakeLists.txt如下:
采用out of source编译,cmake将生成的.pb.h,.pb.cc放在build/src/proto/目录下,故而需要在src/proto/CMakeLists.txt中设置target_include_directories(proto PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
,这样生成的头文件才能被外层cmake可见。
- 利用命令ADD_CUSTOM_COMMAND
示例代码结构如下:
3 directories, 5 files
顶层CMakeLists.txt如下:
src/CMakeLists.txt如下: