This is an automated email from the ASF dual-hosted git repository.

zanmato pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new d0b11bb147 GH-45209: [C++][CMake] Fix the issue that allocator not 
disabled for sanitizer cmake presets (#45210)
d0b11bb147 is described below

commit d0b11bb14712fd351bea3e29719afb5c4d278619
Author: Rossi Sun <[email protected]>
AuthorDate: Fri Jan 10 23:14:20 2025 +0800

    GH-45209: [C++][CMake] Fix the issue that allocator not disabled for 
sanitizer cmake presets (#45210)
    
    
    
    ### Rationale for this change
    
    I gave the reason in #45209
    
    ### What changes are included in this PR?
    
    Adjust the inheritance list order and make a lot of 
simplification/regrouping/reordering for existing presets the way I see fit.
    
    Also introduce a soft rule to order inheritance list: `sanitizer` comes 
before `features` comes before `base`. Though we can't really mandate such a 
rule (thus it's "soft") or make it clear in comments (our current cmake dosn't 
support comment in json), we hope people will notice this pattern and follow it 
when editing this file.
    
    ### Are these changes tested?
    
    Manually tested.
    
    ### Are there any user-facing changes?
    
    None.
    
    * GitHub Issue: #45209
    
    Lead-authored-by: Rossi Sun <[email protected]>
    Co-authored-by: Sutou Kouhei <[email protected]>
    Signed-off-by: Rossi Sun <[email protected]>
---
 cpp/CMakePresets.json | 347 ++++++++++++++++++++++++--------------------------
 1 file changed, 166 insertions(+), 181 deletions(-)

diff --git a/cpp/CMakePresets.json b/cpp/CMakePresets.json
index ee8fc1248b..85febbc5c9 100644
--- a/cpp/CMakePresets.json
+++ b/cpp/CMakePresets.json
@@ -46,34 +46,6 @@
         "CMAKE_BUILD_TYPE": "RelWithDebInfo"
       }
     },
-    {
-      "name": "features-emscripten",
-      "hidden": true,
-      "cacheVariables": {
-        "ARROW_ACERO": "ON",
-        "ARROW_BUILD_SHARED": "OFF",
-        "ARROW_BUILD_STATIC": "ON",
-        "ARROW_CSV": "ON",
-        "ARROW_CUDA": "OFF",
-        "ARROW_DEPENDENCY_SOURCE": "BUNDLED",
-        "ARROW_DEPENDENCY_USE_SHARED": "OFF",
-        "ARROW_ENABLE_THREADING": "OFF",
-        "ARROW_FLIGHT": "OFF",
-        "ARROW_IPC": "ON",
-        "ARROW_JEMALLOC": "OFF",
-        "ARROW_JSON": "ON",
-        "ARROW_MIMALLOC": "OFF",
-        "ARROW_ORC": "ON",
-        "ARROW_RUNTIME_SIMD_LEVEL": "NONE",
-        "ARROW_S3": "OFF",
-        "ARROW_SIMD_LEVEL": "NONE",
-        "ARROW_SUBSTRAIT": "ON",
-        "ARROW_WITH_BROTLI": "ON",
-        "ARROW_WITH_OPENTELEMETRY": "OFF",
-        "ARROW_WITH_SNAPPY": "ON",
-        "CMAKE_C_BYTE_ORDER": "LITTLE_ENDIAN"
-      }
-    },
     {
       "name": "features-minimal",
       "hidden": true,
@@ -85,7 +57,9 @@
     },
     {
       "name": "features-basic",
-      "inherits": "features-minimal",
+      "inherits": [
+        "features-minimal"
+      ],
       "hidden": true,
       "cacheVariables": {
         "ARROW_COMPUTE": "ON",
@@ -103,7 +77,6 @@
       "cacheVariables": {
         "ARROW_SUBSTRAIT": "ON",
         "ARROW_ACERO": "ON",
-        "ARROW_MIMALLOC": "ON",
         "ARROW_PARQUET": "ON",
         "ARROW_WITH_BROTLI": "ON",
         "ARROW_WITH_BZ2": "ON",
@@ -174,15 +147,11 @@
     {
       "name": "features-python",
       "inherits": [
-        "features-main"
+        "features-main",
+        "features-python-minimal"
       ],
       "hidden": true,
       "cacheVariables": {
-        "ARROW_COMPUTE": "ON",
-        "ARROW_CSV": "ON",
-        "ARROW_DATASET": "ON",
-        "ARROW_FILESYSTEM": "ON",
-        "ARROW_JSON": "ON",
         "ARROW_ORC": "ON"
       }
     },
@@ -193,12 +162,10 @@
         "features-filesystems",
         "features-flight-sql",
         "features-gandiva",
-        "features-main",
-        "features-python-minimal"
+        "features-python"
       ],
       "hidden": true,
       "cacheVariables": {
-        "ARROW_ORC": "ON",
         "PARQUET_REQUIRE_ENCRYPTION": "ON"
       }
     },
@@ -206,22 +173,44 @@
       "name": "features-maximal",
       "inherits": [
         "features-main",
-        "features-cuda",
-        "features-filesystems",
-        "features-flight-sql",
-        "features-gandiva",
         "features-python-maximal"
       ],
       "hidden": true,
       "cacheVariables": {
         "ARROW_BUILD_EXAMPLES": "ON",
         "ARROW_BUILD_UTILITIES": "ON",
-        "ARROW_ORC": "ON",
         "ARROW_SKYHOOK": "ON",
         "ARROW_TENSORFLOW": "ON",
         "PARQUET_BUILD_EXAMPLES": "ON",
-        "PARQUET_BUILD_EXECUTABLES": "ON",
-        "PARQUET_REQUIRE_ENCRYPTION": "ON"
+        "PARQUET_BUILD_EXECUTABLES": "ON"
+      }
+    },
+    {
+      "name": "features-emscripten",
+      "hidden": true,
+      "cacheVariables": {
+        "ARROW_ACERO": "ON",
+        "ARROW_BUILD_SHARED": "OFF",
+        "ARROW_BUILD_STATIC": "ON",
+        "ARROW_CSV": "ON",
+        "ARROW_CUDA": "OFF",
+        "ARROW_DEPENDENCY_SOURCE": "BUNDLED",
+        "ARROW_DEPENDENCY_USE_SHARED": "OFF",
+        "ARROW_ENABLE_THREADING": "OFF",
+        "ARROW_FLIGHT": "OFF",
+        "ARROW_IPC": "ON",
+        "ARROW_JEMALLOC": "OFF",
+        "ARROW_JSON": "ON",
+        "ARROW_MIMALLOC": "OFF",
+        "ARROW_ORC": "ON",
+        "ARROW_RUNTIME_SIMD_LEVEL": "NONE",
+        "ARROW_S3": "OFF",
+        "ARROW_SIMD_LEVEL": "NONE",
+        "ARROW_SUBSTRAIT": "ON",
+        "ARROW_WITH_BROTLI": "ON",
+        "ARROW_WITH_OPENTELEMETRY": "OFF",
+        "ARROW_WITH_SNAPPY": "ON",
+        "CMAKE_C_BYTE_ORDER": "LITTLE_ENDIAN"
       }
     },
     {
@@ -236,34 +225,34 @@
       "name": "sanitizer-asan",
       "hidden": true,
       "cacheVariables": {
-        "ARROW_USE_ASAN": "ON",
         "ARROW_JEMALLOC": "OFF",
-        "ARROW_MIMALLOC": "OFF"
+        "ARROW_MIMALLOC": "OFF",
+        "ARROW_USE_ASAN": "ON"
       }
     },
     {
       "name": "sanitizer-tsan",
       "hidden": true,
       "cacheVariables": {
-        "ARROW_USE_TSAN": "ON",
         "ARROW_JEMALLOC": "OFF",
-        "ARROW_MIMALLOC": "OFF"
+        "ARROW_MIMALLOC": "OFF",
+        "ARROW_USE_TSAN": "ON"
       }
     },
     {
       "name": "sanitizer-ubsan",
       "hidden": true,
       "cacheVariables": {
-        "ARROW_USE_UBSAN": "ON",
         "ARROW_JEMALLOC": "OFF",
-        "ARROW_MIMALLOC": "OFF"
+        "ARROW_MIMALLOC": "OFF",
+        "ARROW_USE_UBSAN": "ON"
       }
     },
     {
       "name": "ninja-debug-minimal",
       "inherits": [
-        "base-debug",
-        "features-minimal"
+        "features-minimal",
+        "base-debug"
       ],
       "displayName": "Debug build without anything enabled",
       "cacheVariables": {
@@ -274,8 +263,8 @@
     {
       "name": "ninja-debug-basic",
       "inherits": [
-        "base-debug",
-        "features-basic"
+        "features-basic",
+        "base-debug"
       ],
       "displayName": "Debug build with tests and reduced dependencies",
       "cacheVariables": {}
@@ -283,8 +272,8 @@
     {
       "name": "ninja-debug",
       "inherits": [
-        "base-debug",
-        "features-main"
+        "features-main",
+        "base-debug"
       ],
       "displayName": "Debug build with tests and more optional components",
       "cacheVariables": {}
@@ -292,8 +281,8 @@
     {
       "name": "ninja-debug-cuda",
       "inherits": [
-        "base-debug",
-        "features-cuda"
+        "features-cuda",
+        "base-debug"
       ],
       "displayName": "Debug build with tests and CUDA integration",
       "cacheVariables": {}
@@ -301,8 +290,8 @@
     {
       "name": "ninja-debug-filesystems",
       "inherits": [
-        "base-debug",
-        "features-filesystems"
+        "features-filesystems",
+        "base-debug"
       ],
       "displayName": "Debug build with tests and filesystems",
       "cacheVariables": {}
@@ -310,8 +299,8 @@
     {
       "name": "ninja-debug-flight",
       "inherits": [
-        "base-debug",
-        "features-flight"
+        "features-flight",
+        "base-debug"
       ],
       "displayName": "Debug build with tests and Flight",
       "cacheVariables": {}
@@ -319,8 +308,8 @@
     {
       "name": "ninja-debug-flight-sql",
       "inherits": [
-        "base-debug",
-        "features-flight-sql"
+        "features-flight-sql",
+        "base-debug"
       ],
       "displayName": "Debug build with tests and Flight SQL",
       "cacheVariables": {}
@@ -328,8 +317,8 @@
     {
       "name": "ninja-debug-gandiva",
       "inherits": [
-        "base-debug",
-        "features-gandiva"
+        "features-gandiva",
+        "base-debug"
       ],
       "displayName": "Debug build with tests and Gandiva",
       "cacheVariables": {}
@@ -337,8 +326,8 @@
     {
       "name": "ninja-debug-python-minimal",
       "inherits": [
-        "base-debug",
-        "features-python-minimal"
+        "features-python-minimal",
+        "base-debug"
       ],
       "displayName": "Debug build for PyArrow with minimal features",
       "cacheVariables": {}
@@ -346,8 +335,8 @@
     {
       "name": "ninja-debug-python",
       "inherits": [
-        "base-debug",
-        "features-python"
+        "features-python",
+        "base-debug"
       ],
       "displayName": "Debug build for PyArrow with common features (for 
backward compatibility)",
       "cacheVariables": {}
@@ -355,8 +344,8 @@
     {
       "name": "ninja-debug-python-maximal",
       "inherits": [
-        "base-debug",
-        "features-python-maximal"
+        "features-python-maximal",
+        "base-debug"
       ],
       "displayName": "Debug build for PyArrow with everything enabled",
       "cacheVariables": {}
@@ -364,111 +353,142 @@
     {
       "name": "ninja-debug-maximal",
       "inherits": [
-        "base-debug",
-        "features-maximal"
+        "features-maximal",
+        "base-debug"
       ],
       "displayName": "Debug build with everything enabled (except benchmarks)",
       "cacheVariables": {}
     },
+    {
+      "name": "ninja-debug-emscripten",
+      "inherits": [
+        "features-emscripten",
+        "base-debug"
+      ],
+      "displayName": "Debug build which builds an Emscripten library",
+      "cacheVariables": {}
+    },
+    {
+      "name": "ninja-debug-valgrind-minimal",
+      "inherits": [
+        "features-valgrind",
+        "ninja-debug-minimal"
+      ],
+      "displayName": "Debug build for Valgrind without anything enabled",
+      "cacheVariables": {}
+    },
     {
       "name": "ninja-debug-valgrind-basic",
       "inherits": [
-        "base-debug",
-        "features-basic",
-        "features-valgrind"
+        "features-valgrind",
+        "ninja-debug-basic"
       ],
-      "displayName": "Debug build for Valgrind with reduced dependencies",
+      "displayName": "Debug build for Valgrind with tests and reduced 
dependencies",
       "cacheVariables": {}
     },
     {
       "name": "ninja-debug-valgrind",
       "inherits": [
-        "base-debug",
-        "features-main",
-        "features-valgrind"
+        "features-valgrind",
+        "ninja-debug"
       ],
-      "displayName": "Debug build for Valgrind with more optional components",
+      "displayName": "Debug build for Valgrind with tests and more optional 
components",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-debug-valgrind-minimal",
+      "name": "ninja-debug-valgrind-maximal",
       "inherits": [
-        "base-debug",
-        "features-minimal",
-        "features-valgrind"
+        "features-valgrind",
+        "ninja-debug-maximal"
       ],
-      "displayName": "Debug build for Valgrind without anything enabled",
+      "displayName": "Debug build for Valgrind with tests and everything 
enabled",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-debug-valgrind-maximal",
+      "name": "ninja-debug-asan",
       "inherits": [
-        "base-debug",
-        "features-maximal",
-        "features-valgrind"
+        "sanitizer-asan",
+        "ninja-debug"
       ],
-      "displayName": "Debug build for Valgrind with everything enabled",
+      "displayName": "Debug build for ASAN with tests and more optional 
components",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-release-minimal",
+      "name": "ninja-debug-tsan",
       "inherits": [
-        "base-release",
-        "features-minimal"
+        "sanitizer-tsan",
+        "ninja-debug"
       ],
-      "displayName": "Release build without anything enabled",
+      "displayName": "Debug build for TSAN with tests and more optional 
components",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-release-basic",
+      "name": "ninja-debug-ubsan",
       "inherits": [
-        "base-release",
-        "features-basic"
+        "sanitizer-ubsan",
+        "ninja-debug"
       ],
-      "displayName": "Release build with reduced dependencies",
+      "displayName": "Debug build for UBSAN with tests and more optional 
components",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-release",
+      "name": "fuzzing",
       "inherits": [
-        "base-release",
-        "features-main"
+        "sanitizer-asan",
+        "sanitizer-ubsan",
+        "base"
       ],
-      "displayName": "Release build with more optional components",
+      "displayName": "Debug build with IPC and Parquet fuzzing targets",
+      "cacheVariables": {
+        "CMAKE_BUILD_TYPE": "Debug",
+        "CMAKE_C_COMPILER": "clang",
+        "CMAKE_CXX_COMPILER": "clang++",
+        "ARROW_IPC": "ON",
+        "ARROW_PARQUET": "ON",
+        "ARROW_FUZZING": "ON"
+      }
+    },
+    {
+      "name": "ninja-release-minimal",
+      "inherits": [
+        "features-minimal",
+        "base-release"
+      ],
+      "displayName": "Release build without anything enabled",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-release-cuda",
+      "name": "ninja-release-basic",
       "inherits": [
-        "base-release",
-        "features-cuda"
+        "features-basic",
+        "base-release"
       ],
-      "displayName": "Release build with CUDA integration",
+      "displayName": "Release build with reduced dependencies",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-debug-emscripten",
+      "name": "ninja-release",
       "inherits": [
-        "features-emscripten",
-        "base-debug"
+        "features-main",
+        "base-release"
       ],
-      "displayName": "Debug build which builds an Emscripten library",
+      "displayName": "Release build with more optional components",
       "cacheVariables": {}
     },
     {
-      "name": "ninja-release-emscripten",
+      "name": "ninja-release-cuda",
       "inherits": [
-        "features-emscripten",
+        "features-cuda",
         "base-release"
       ],
-      "displayName": "Release build which builds an Emscripten library",
+      "displayName": "Release build with CUDA integration",
       "cacheVariables": {}
     },
     {
       "name": "ninja-release-flight",
       "inherits": [
-        "base-release",
-        "features-flight"
+        "features-flight",
+        "base-release"
       ],
       "displayName": "Release build with Flight",
       "cacheVariables": {}
@@ -476,8 +496,8 @@
     {
       "name": "ninja-release-flight-sql",
       "inherits": [
-        "base-release",
-        "features-flight-sql"
+        "features-flight-sql",
+        "base-release"
       ],
       "displayName": "Release build with Flight SQL",
       "cacheVariables": {}
@@ -485,8 +505,8 @@
     {
       "name": "ninja-release-gandiva",
       "inherits": [
-        "base-release",
-        "features-gandiva"
+        "features-gandiva",
+        "base-release"
       ],
       "displayName": "Release build with Gandiva",
       "cacheVariables": {}
@@ -494,8 +514,8 @@
     {
       "name": "ninja-release-python-minimal",
       "inherits": [
-        "base-release",
-        "features-python-minimal"
+        "features-python-minimal",
+        "base-release"
       ],
       "displayName": "Release build for PyArrow with minimal features",
       "cacheVariables": {}
@@ -503,8 +523,8 @@
     {
       "name": "ninja-release-python",
       "inherits": [
-        "base-release",
-        "features-python"
+        "features-python",
+        "base-release"
       ],
       "displayName": "Release build for PyArrow with common features (for 
backward compatibility)",
       "cacheVariables": {}
@@ -512,8 +532,8 @@
     {
       "name": "ninja-release-python-maximal",
       "inherits": [
-        "base-release",
-        "features-python-maximal"
+        "features-python-maximal",
+        "base-release"
       ],
       "displayName": "Release build for PyArrow with everything enabled",
       "cacheVariables": {}
@@ -521,17 +541,26 @@
     {
       "name": "ninja-release-maximal",
       "inherits": [
-        "base-release",
-        "features-maximal"
+        "features-maximal",
+        "base-release"
       ],
       "displayName": "Release build with everything enabled (except 
benchmarks)",
       "cacheVariables": {}
     },
+    {
+      "name": "ninja-release-emscripten",
+      "inherits": [
+        "features-emscripten",
+        "base-release"
+      ],
+      "displayName": "Release build which builds an Emscripten library",
+      "cacheVariables": {}
+    },
     {
       "name": "ninja-benchmarks-basic",
       "inherits": [
-        "base-benchmarks",
-        "features-basic"
+        "features-basic",
+        "base-benchmarks"
       ],
       "displayName": "Benchmarking build with reduced dependencies",
       "cacheVariables": {}
@@ -539,8 +568,8 @@
     {
       "name": "ninja-benchmarks",
       "inherits": [
-        "base-benchmarks",
-        "features-main"
+        "features-main",
+        "base-benchmarks"
       ],
       "displayName": "Benchmarking build with more optional components",
       "cacheVariables": {}
@@ -548,55 +577,11 @@
     {
       "name": "ninja-benchmarks-maximal",
       "inherits": [
-        "base-benchmarks",
-        "features-maximal"
+        "features-maximal",
+        "base-benchmarks"
       ],
       "displayName": "Benchmarking build with everything enabled",
       "cacheVariables": {}
-    },
-    {
-      "name": "ninja-debug-asan",
-      "inherits": [
-        "ninja-debug",
-        "sanitizer-asan"
-      ],
-      "displayName": "Debug ASAN build with tests and more optional 
components",
-      "cacheVariables": {}
-    },
-    {
-      "name": "ninja-debug-tsan",
-      "inherits": [
-        "ninja-debug",
-        "sanitizer-tsan"
-      ],
-      "displayName": "Debug TSAN build with tests and more optional 
components",
-      "cacheVariables": {}
-    },
-    {
-      "name": "ninja-debug-ubsan",
-      "inherits": [
-        "ninja-debug",
-        "sanitizer-ubsan"
-      ],
-      "displayName": "Debug UBSAN build with tests and more optional 
components",
-      "cacheVariables": {}
-    },
-    {
-      "name": "fuzzing",
-      "inherits": [
-        "base",
-        "sanitizer-asan",
-        "sanitizer-ubsan"
-      ],
-      "displayName": "Debug build with IPC and Parquet fuzzing targets",
-      "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Debug",
-        "CMAKE_C_COMPILER": "clang",
-        "CMAKE_CXX_COMPILER": "clang++",
-        "ARROW_IPC": "ON",
-        "ARROW_PARQUET": "ON",
-        "ARROW_FUZZING": "ON"
-      }
     }
   ]
 }

Reply via email to