From 19877b6cb77a61d891d65b676bd5f5ac8de20d14 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Wed, 18 Mar 2026 11:16:16 +0900 Subject: [PATCH] GH-49499: [C++] Improve arrow vcpkg port integration We already have CMake configurations only for vcpkg but it's not used when our CMake packages is installed by vcpkg. We can use `ARROW_PACKAGE_KIND=vcpkg` to detect whether our CMake packages are installed by arrow vcpkg port. Co-authored-by: Marcin Krystianc --- cpp/CMakeLists.txt | 2 ++ cpp/cmake_modules/FindSnappyAlt.cmake | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 44186494ecf8..ea15bb706691 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -115,6 +115,8 @@ list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") # vcpkg (ab)uses CMAKE_TOOLCHAIN_FILE to inject its logic into CMake if(ARROW_DEPENDENCY_SOURCE STREQUAL "VCPKG") include(Usevcpkg) +elseif(ARROW_PACKAGE_KIND STREQUAL "vcpkg") + set(ARROW_VCPKG ON) endif() project(arrow VERSION "${ARROW_BASE_VERSION}") diff --git a/cpp/cmake_modules/FindSnappyAlt.cmake b/cpp/cmake_modules/FindSnappyAlt.cmake index d0a06f0997ad..89914a64469a 100644 --- a/cpp/cmake_modules/FindSnappyAlt.cmake +++ b/cpp/cmake_modules/FindSnappyAlt.cmake @@ -52,9 +52,12 @@ if(Snappy_FOUND) set(SnappyAlt_FOUND TRUE) return() else() - # The Conan's Snappy package always uses Snappy::snappy and it's - # an INTERFACE_LIBRARY. - get_target_property(Snappy Snappy::snappy TYPE) + # The Snappy packages in Conan and vcpkg always use + # Snappy::snappy. + # + # The Snappy package in Conan use an INTERFACE_LIBRARY for + # Snappy::snappy. + get_target_property(Snappy_TYPE Snappy::snappy TYPE) if(Snappy_TYPE STREQUAL "STATIC_LIBRARY" OR Snappy_TYPE STREQUAL "INTERFACE_LIBRARY") set(Snappy_TARGET Snappy::snappy)