заставить его не использовать системный Protobuf? 
                  
                  
                  второй день мучаюсь ничего не выходит. 
                  
                  
                  
                  
                  
                  protoc компилирует тем что скачал конан но при компиляции сгенерированных файлов #include <google/protobuf/port_def.inc> берется из системы
                  
                  
                  
                  
                  
                  вот код подпроекта с protobuf-ами
                  
                  
                  
                  
                  
                  find_package(protobuf CONFIG REQUIRED)
                  
                  
                  find_package(gRPC CONFIG REQUIRED)
                  
                  
                  
                  
                  
                  add_library(${PROJECT_NAME}
                  
                  
                              STATIC
                  
                  
                              amur.proto
                  
                  
                             )
                  
                  
                  
                  
                  
                  target_include_directories(${PROJECT_NAME} PRIVATE
                  
                  
                      "${CMAKE_CURRENT_BINARY_DIR}"
                  
                  
                  )
                  
                  
                  
                  
                  
                  if (protobuf_LITE)
                  
                  
                      target_link_libraries(${PROJECT_NAME} PRIVATE protobuf::libprotobuf-lite)
                  
                  
                  else()
                  
                  
                      target_link_libraries(${PROJECT_NAME} PRIVATE protobuf::libprotobuf)
                  
                  
                  endif()
                  
                  
                  
                  
                  
                  if(TARGET protobuf::libprotoc)
                  
                  
                      target_link_libraries(${PROJECT_NAME} PRIVATE protobuf::libprotoc)
                  
                  
                  endif()
                  
                  
                  
                  
                  
                  get_target_property(grpc_cpp_plugin_location gRPC::grpc_cpp_plugin LOCATION)
                  
                  
                  protobuf_generate(TARGET ${PROJECT_NAME} LANGUAGE cpp)
                  
                  
                  protobuf_generate(TARGET ${PROJECT_NAME} LANGUAGE grpc GENERATE_EXTENSIONS .grpc.pb.h .grpc.pb.cc PLUGIN "protoc-gen-grpc=${grpc_cpp_plugin_location}")
                  
                  
                
grpc рекомендуют ставить в систему, видимо не просто так
ты уверен что cmake берёт именно не системный протобаф?
ну рекомендуется, но многие через конан ставят, я скачал тестовый пример рядом с рецептом, и после небольших модификаций он завелся у меня с указанным протобуфом. но вот не в тестовом проекте уже не заводится, раница по сути только в том что подмодуль использует grpc а не само приложение
protobuf_generate берет из conan, а при компиляции уже берется системный, там номер версии указан, и в сгенерированных файлах стоит версия конановского протобуфа, а include уже из системы тянет
А как интегрируется с конаном?
Обсуждают сегодня