From 9967d184e05cd484e40c07a12be746de72dbe50a Mon Sep 17 00:00:00 2001 From: Fabian Schmidt Date: Fri, 13 Feb 2026 21:39:27 +0100 Subject: [PATCH] Started work on integrating vcpkg, doesn't quite work yet --- CMakePresets.json | 18 +++++++++++++++++- proto/CMakeLists.txt | 23 ++++++++++++++++++++--- vcpkg-configuration.json | 9 +++++++++ vcpkg.json | 7 +++++++ 4 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 vcpkg-configuration.json create mode 100644 vcpkg.json diff --git a/CMakePresets.json b/CMakePresets.json index 3004e55..20d817c 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -16,7 +16,23 @@ "type": "BOOL", "value": "ON" }, - "CMAKE_PREFIX_PATH": "$env{HOME}/Qt/6.10.2/gcc_64/lib/cmake" + "CMAKE_MAKE_PROGRAM": { + "type": "FILEPATH", + "value": "/usr/bin/ninja" + }, + "CMAKE_CXX_COMPILER": { + "type": "FILEPATH", + "value": "/usr/bin/g++" + }, + "CMAKE_PREFIX_PATH": "$env{HOME}/Qt/6.10.2/gcc_64/lib/cmake;${sourceDir}/vcpkg_installed/x64-linux", + "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", + "VCPKG_TARGET_TRIPLET": "x64-linux", + "VCPKG_MANIFEST_MODE": "ON", + "VCPKG_MANIFEST_DIR": "${sourceDir}", + "VCPKG_INSTALLED_DIR": "${sourceDir}/vcpkg_installed", + "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH": "OFF", + "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH": "OFF", + "CMAKE_SYSTEM_IGNORE_PATH": "/usr/include;/usr/lib;/usr/local/include;/usr/local/lib" } }, { diff --git a/proto/CMakeLists.txt b/proto/CMakeLists.txt index c64c55b..da69f01 100644 --- a/proto/CMakeLists.txt +++ b/proto/CMakeLists.txt @@ -5,8 +5,23 @@ project(proto LANGUAGES CXX) find_package(protobuf CONFIG REQUIRED) find_package(gRPC CONFIG REQUIRED) -find_program(PROTOC_EXECUTABLE protoc) -find_program(GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin) +# Add vcpkg paths to the search +find_program(PROTOC_EXECUTABLE protoc + PATHS + ${CMAKE_SOURCE_DIR}/vcpkg_installed/x64-linux/tools/protobuf + ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/protobuf + REQUIRED + NO_DEFAULT_PATH +) + +find_program(GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin + PATHS + ${CMAKE_SOURCE_DIR}/vcpkg_installed/x64-linux/tools/grpc + ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/grpc + REQUIRED + NO_DEFAULT_PATH +) + if(NOT PROTOC_EXECUTABLE) message(FATAL_ERROR "protoc not found! Install protobuf compiler") @@ -16,6 +31,9 @@ if(NOT GRPC_CPP_PLUGIN_EXECUTABLE) message(FATAL_ERROR "grpc_cpp_plugin not found! Install gRPC with C++ plugin") endif() +message(STATUS "Found protoc: ${PROTOC_EXECUTABLE}") +message(STATUS "Found grpc_cpp_plugin: ${GRPC_CPP_PLUGIN_EXECUTABLE}") + set(PROTO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/messages.proto ${CMAKE_CURRENT_SOURCE_DIR}/services.proto @@ -59,6 +77,5 @@ target_include_directories(proto_static PUBLIC target_link_libraries(proto_static PRIVATE protobuf::libprotobuf - gRPC::grpc gRPC::grpc++ ) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json new file mode 100644 index 0000000..5274e2d --- /dev/null +++ b/vcpkg-configuration.json @@ -0,0 +1,9 @@ +{ + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 0000000..c87afa5 --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,7 @@ +{ + "dependencies": [ + "grpc", + "protobuf" + ], + "builtin-baseline": "ac7af7424cbaf9057cb246b620f455303dccd6ed" +}