Encontré la manera de usar protobuf v2 con cmake en Windows y compilarlo con la configuración de tu proyecto. Por favor, intente mirar cmake-external-packages project y protobuf-v2 CMakeLists que hacen el trabajo. De hecho, lo escribí porque ExternalProject_Add
está mal (porque hace cosas en fase de construcción en lugar de fase de generación).
Este CMakeLists.txt descargará protobuf de protobuf's github releases, extraerá y emitirá cmake objetivos a los que debe agregar referencia con target_link_libraries
.
Use git-subtree, git-submodule o simplemente copie este contenido del repositorio en su subcarpeta del repositorio.
A continuación, agregue los paquetes que desea utilizar con add_subdiretory
. Para protobuf, utilice:
add_subdirectory(path/to/cmake-external-packages/protobuf-v2)
Protobuf de incluye se copiará en la carpeta path/to/cmake-external-packages/include
. Puede personalizar su ubicación en sus CMakeLists de nivel superior:
set (EXTERNAL_PACKAGES_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/third-party/include
CACHE STRING "Directory for third-party include files, where include folders will be copied")
include_directories(${EXTERNAL_PACKAGES_INCLUDE_DIR})
apenas referencia protobuf para su ejecutable:
add_executable(your_exe ${your_exe_sources})
target_link_libraries(your_exe libprotobuf libprotobuf-lite libprotoc)
Espero que esto ayude.
Gracias, he descubierto desde entonces que find_library busca también CMAKE_INCLUDE_PATH, CMAKE_INCLUDE_PATH y CMAKE_LIBRARY_PATH. –