kou commented on code in PR #46006:
URL: https://github.com/apache/arrow/pull/46006#discussion_r2028089565


##########
c_glib/vcpkg.json:
##########
@@ -1,23 +1,11 @@
 {
   "name": "arrow-glib",
   "version-string": "20.0.0-SNAPSHOT",
+  "$comment:dependencies": "We can enable gobject-introspection again once 
it's updated",

Review Comment:
   GLib is updated but GObject Introspection isn't updated in the latest vcpkg. 
So we can't use GObject Introspection for now.



##########
.github/workflows/ruby.yml:
##########
@@ -395,6 +395,20 @@ jobs:
         env:
           # We can invalidate the current cache by updating this.
           CACHE_VERSION: "2024-05-09"
+      - name: Checkout vcpkg
+        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 
v4.2.2
+        with:
+          fetch-depth: 0
+          path: vcpkg
+          repository: microsoft/vcpkg
+      - name: Bootstrap vcpkg
+        run: |
+          vcpkg\bootstrap-vcpkg.bat
+          $VCPKG_ROOT = $(Resolve-Path -LiteralPath "vcpkg").ToString()
+          Write-Output ${VCPKG_ROOT} | `
+            Out-File -FilePath ${Env:GITHUB_PATH} -Encoding utf8 -Append
+          Write-Output "VCPKG_ROOT=${VCPKG_ROOT}" | `
+            Out-File -FilePath ${Env:GITHUB_ENV} -Encoding utf8 -Append

Review Comment:
   Ensure using the latest vcpkg. vcpkg exists in GitHub Actions runner by 
default. But it may be older than vcpkg we want to use.



##########
c_glib/meson.build:
##########
@@ -97,47 +98,96 @@ else
 endif
 
 if arrow_cpp_build_lib_dir == ''
-    arrow = dependency('arrow', version: ['>=' + version])
+    common_args = {'version': [f'>=@version_no_snapshot@']}
+    arrow = dependency(
+        'arrow',
+        'Arrow',

Review Comment:
   This is for detecting a package for CMake.



##########
c_glib/meson.build:
##########
@@ -81,7 +82,7 @@ endif
 generate_vapi = have_gi and get_option('vapi')
 if generate_vapi
     pkgconfig_variables += ['vapidir=@0@'.format(vapi_dir)]
-    add_languages('vala')
+    add_languages('vala', native: false)

Review Comment:
   This is not required but it reports a warning.



##########
cpp/cmake_modules/ThirdpartyToolchain.cmake:
##########
@@ -1667,11 +1667,10 @@ endif()
 if(ARROW_BUILD_TESTS
    OR ARROW_BUILD_BENCHMARKS
    OR ARROW_BUILD_INTEGRATION
-   OR ARROW_USE_GLOG
-   OR ARROW_WITH_GRPC)
-  set(ARROW_NEED_GFLAGS 1)

Review Comment:
   Bundled gRPC doesn't need gflags.
   
   This is not required because we use gflags provided by vcpkg. (This was 
needed before vcpkg adds CMake 4.0.0 workaround.)



##########
c_glib/meson.build:
##########
@@ -97,47 +98,96 @@ else
 endif
 
 if arrow_cpp_build_lib_dir == ''
-    arrow = dependency('arrow', version: ['>=' + version])
+    common_args = {'version': [f'>=@version_no_snapshot@']}
+    arrow = dependency(
+        'arrow',
+        'Arrow',
+        kwargs: common_args,
+        modules: ['Arrow::arrow_shared'],

Review Comment:
   This is for detecting a package for CMake.



##########
cpp/CMakeLists.txt:
##########
@@ -532,22 +532,79 @@ enable_testing()
 # For arrow.pc. Cflags.private, Libs.private and Requires.private are
 # used when "pkg-config --cflags --libs --static arrow" is used.
 set(ARROW_PC_CFLAGS "")
-set(ARROW_PC_CFLAGS_PRIVATE " -DARROW_STATIC")
+set(ARROW_PC_CFLAGS_PRIVATE "")
+if(ARROW_BUILD_STATIC)
+  # We add -DARROW_STATIC only when static build is enabled because
+  # pkgconf 1.7.4 or later on Windows uses "--static" by default. If
+  # Cflags.private (-DARROW_STATIC) is used for shared linking, it
+  # will cause linke error. We recommend users to not use pkgconf for
+  # shared linking on Windows but we also provide a workaround here.
+  # If users don't enable ARROW_BUILD_STATIC, users can use pkgconf on
+  # Windows because Cflags.private is used but it has nothing.
+  string(APPEND ARROW_PC_CFLAGS_PRIVATE " -DARROW_STATIC")

Review Comment:
   This is a workaround for recent pkgconf on Windows. Our CI doesn't use 
`-DARROW_BUILD_STATIC=ON`.



##########
.github/workflows/ruby.yml:
##########
@@ -411,10 +425,14 @@ jobs:
       - name: Build C++
         shell: cmd
         run: |
+          set VCPKG_ROOT_KEEP=%VCPKG_ROOT%
           call "C:\Program Files\Microsoft Visual 
Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64

Review Comment:
   This overrides `VCPKG_ROOT`. So we need  to restore our `VCPKG_ROOT` after 
this.



##########
ci/scripts/c_glib_build.sh:
##########
@@ -65,9 +67,10 @@ fi
 # Build with Meson
 meson setup \
       --backend=ninja \
-      --prefix="${ARROW_HOME}" \
+      --cmake-prefix-path="${meson_cmake_prefix_path}" \

Review Comment:
   This is for finding CMake packages of Apache Arrow C++.



##########
cpp/vcpkg.json:
##########
@@ -29,15 +29,19 @@
     "gflags",
     "glog",
     {
-      "name":"google-cloud-cpp",
-      "version>=": "1.32.1",
+      "name": "google-cloud-cpp",
       "default-features": false,
       "features": [
         "storage"
       ]
     },
     "grpc",
-    "gtest",
+    {
+      "name": "gtest",
+      "features": [
+        "cxx17"

Review Comment:
   We need this because vcpkg's gtest uses C++14 by default.



##########
dev/tasks/vcpkg-tests/cpp-build-vcpkg.bat:
##########
@@ -27,7 +27,6 @@ call "C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Enterprise\Common7\Too
 @rem changes in vcpkg
 
 vcpkg install ^
-    --triplet x64-windows ^

Review Comment:
   We use `VCPKG_DEFAULT_TRIPLET` env instead of this.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to