Сборка прото c для C ++ с CMake - PullRequest
2 голосов
/ 12 февраля 2020

В настоящее время я работаю над проектом C ++, который ссылается на gRP C как подмодуль git, и я использую CMake для компиляции зависимостей и моих источников. Для этого у меня в основном это есть в моем CMakeLists.txt:

ADD_SUBDIRECTORY(lib/grpc)

Затем я запускаю:

make grpc_cpp_plugin
make my_project

Даже если я укажу здесь cpp_plugin, когда пора скомпилировать proto c Я на самом деле компилирую для всех поддерживаемых языков, например (Java, Csharp, ...):

/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc.o
/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc.o
/src/google/protobuf/compiler/java/java_context.cc.o
/src/google/protobuf/compiler/java/java_doc_comment.cc.o

После просмотра информации о том, как собрать прото c только для C ++ Я обнаружил, что кто-то открыл проблему в каталоге github protobuf ( ссылка ). Тем не менее, он не дает четкого ответа.

Есть ли «чистый» способ компилировать здесь только зависимость c ++?

1 Ответ

2 голосов
/ 13 февраля 2020

После выполнения большого количества grep в файлах CMake gRP C я, наконец, скомпилировал только версию c ++ proto c, protobuf и gRP C. И я сделал это в 3 шага:

  1. go в grpc / third_party / protobuf / cmake / libproto c .cmake и удалил строки, включая csharp, java, ruby, ... ( Будьте внимательны, сохраняя cpp и агенты языка c единицы )
  2. go до grpc / CMakeLists.txt, и вы сможете найти это:
add_library(grpc_plugin_support
  src/compiler/cpp_generator.cc
  src/compiler/csharp_generator.cc
  src/compiler/node_generator.cc
  src/compiler/objective_c_generator.cc
  src/compiler/php_generator.cc
  src/compiler/python_generator.cc
  src/compiler/ruby_generator.cc
)

, поэтому удалите то, что не нужно.

и, наконец, grpc / third_party / protobuf / src / google / protobuf / compiler / main. cc и удалите все ссылки на другой язык.
...