9prady9 commented on a change in pull request #11689:
URL: https://github.com/apache/arrow/pull/11689#discussion_r755929055



##########
File path: cpp/CMakePresets.json
##########
@@ -0,0 +1,165 @@
+{
+  "version": 2,
+  "cmakeMinimumRequired": {
+    "major": 3,
+    "minor": 20,
+    "patch": 0

Review comment:
       CMake presets have different versions (different from CMake versions). 
CMake 3.19 has the initial bare bones version i.e. [version 1][1]. Preset 
[version 2][2] introduced in CMake 3.20 has separate `buildPresets` and 
`testPresets` that can be used for quick build and test runs as well; these 
build and test presets can have an associated configure preset. 
   
   I thought version 2 is good place to start with because of the additional 
preset options and combinations we can do in single command. Given that presets 
can only be used by developers who already have most recent CMake, having 3.20 
as minimum required (note that this is not CMakeLists.txt minimum version) made 
sense because even most recent ubuntu impish(21.10) has CMake 3.18.
   
   CMake 3.21 has introduced [version 3][3] for presets which has more bells 
and whistles. Personally, I would go with CMake 3.21 which has `condition` 
field in presets that enables the preset only if given condition is met. It 
could be useful in some cases, but that would depend on if `arrow` has such 
cases that can take advantage of this new `condition` field. 
   
   [1]: https://cmake.org/cmake/help/v3.19/manual/cmake-presets.7.html
   [2]: https://cmake.org/cmake/help/v3.20/manual/cmake-presets.7.html
   [3]: https://cmake.org/cmake/help/v3.21/manual/cmake-presets.7.html#condition




-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to