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

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


The following commit(s) were added to refs/heads/master by this push:
     new 356630b  ARROW-11180: [Developer] cmake-format pre-commit hook doesn't 
run
356630b is described below

commit 356630b5890d05c2be6543796472cb54640dc719
Author: Marco Gorelli <[email protected]>
AuthorDate: Wed Mar 31 08:52:43 2021 +0900

    ARROW-11180: [Developer] cmake-format pre-commit hook doesn't run
    
    Previously, cmake format wasn't running (likely because there were two 
`entry` keys, so the command getting overridden) - furthermore, it was 
unnecessarily slow as it didn't take advantage of pre-commit's own machinery
    
    Closes #9045 from MarcoGorelli/cmakelint
    
    Lead-authored-by: Marco Gorelli <[email protected]>
    Co-authored-by: Sutou Kouhei <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 .pre-commit-config.yaml                   |  7 +--
 ci/vcpkg/arm64-linux-static-debug.cmake   |  4 +-
 ci/vcpkg/arm64-linux-static-release.cmake |  4 +-
 cpp/cmake_modules/FindBoostAlt.cmake      |  6 +--
 cpp/cmake_modules/FindORC.cmake           |  5 +--
 cpp/cmake_modules/FindSnappy.cmake        | 12 +++--
 cpp/cmake_modules/Findutf8proc.cmake      | 35 ++++++++-------
 go/arrow/math/_lib/CMakeLists.txt         |  2 -
 go/arrow/memory/_lib/CMakeLists.txt       |  2 -
 java/adapter/orc/CMakeLists.txt           | 10 ++---
 java/dataset/CMakeLists.txt               | 10 ++---
 matlab/CMakeLists.txt                     | 33 ++++++++------
 run-cmake-format.py                       | 75 +++++++++++++------------------
 13 files changed, 101 insertions(+), 104 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index e70eace..9d2d2d8 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -40,9 +40,10 @@ repos:
       - id: cmake-format
         name: CMake Format
         language: python
-        entry: bash -c "pip install cmake-format && python run-cmake-format.py 
--check"
-        entry: echo
-        files: ^(.*/CMakeLists.txt|.*.cmake)$
+        entry: python run-cmake-format.py
+        types: [cmake]
+        additional_dependencies:
+          - cmake_format==0.5.2
       - id: hadolint
         name: Docker Format
         language: docker_image
diff --git a/ci/vcpkg/arm64-linux-static-debug.cmake 
b/ci/vcpkg/arm64-linux-static-debug.cmake
index 5d77b8d..6fea436 100644
--- a/ci/vcpkg/arm64-linux-static-debug.cmake
+++ b/ci/vcpkg/arm64-linux-static-debug.cmake
@@ -22,5 +22,7 @@ set(VCPKG_CMAKE_SYSTEM_NAME Linux)
 set(VCPKG_BUILD_TYPE debug)
 
 if(NOT CMAKE_HOST_SYSTEM_PROCESSOR)
-    execute_process(COMMAND "uname" "-m" OUTPUT_VARIABLE 
CMAKE_HOST_SYSTEM_PROCESSOR OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND "uname" "-m"
+                  OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
+                  OUTPUT_STRIP_TRAILING_WHITESPACE)
 endif()
diff --git a/ci/vcpkg/arm64-linux-static-release.cmake 
b/ci/vcpkg/arm64-linux-static-release.cmake
index ebe5bc3..4012848 100644
--- a/ci/vcpkg/arm64-linux-static-release.cmake
+++ b/ci/vcpkg/arm64-linux-static-release.cmake
@@ -22,5 +22,7 @@ set(VCPKG_CMAKE_SYSTEM_NAME Linux)
 set(VCPKG_BUILD_TYPE release)
 
 if(NOT CMAKE_HOST_SYSTEM_PROCESSOR)
-    execute_process(COMMAND "uname" "-m" OUTPUT_VARIABLE 
CMAKE_HOST_SYSTEM_PROCESSOR OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND "uname" "-m"
+                  OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
+                  OUTPUT_STRIP_TRAILING_WHITESPACE)
 endif()
diff --git a/cpp/cmake_modules/FindBoostAlt.cmake 
b/cpp/cmake_modules/FindBoostAlt.cmake
index 123c6dd..1771937 100644
--- a/cpp/cmake_modules/FindBoostAlt.cmake
+++ b/cpp/cmake_modules/FindBoostAlt.cmake
@@ -38,16 +38,14 @@ if(ARROW_BOOST_USE_SHARED)
   set(BUILD_SHARED_LIBS_KEEP ${BUILD_SHARED_LIBS})
   set(BUILD_SHARED_LIBS ON)
 
-  find_package(Boost ${BoostAlt_FIND_VERSION_OPTIONS}
-               COMPONENTS system filesystem)
+  find_package(Boost ${BoostAlt_FIND_VERSION_OPTIONS} COMPONENTS system 
filesystem)
   set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_KEEP})
   unset(BUILD_SHARED_LIBS_KEEP)
 else()
   # Find static boost headers and libs
   # TODO Differentiate here between release and debug builds
   set(Boost_USE_STATIC_LIBS ON)
-  find_package(Boost ${BoostAlt_FIND_VERSION_OPTIONS}
-               COMPONENTS system filesystem)
+  find_package(Boost ${BoostAlt_FIND_VERSION_OPTIONS} COMPONENTS system 
filesystem)
 endif()
 
 if(Boost_FOUND)
diff --git a/cpp/cmake_modules/FindORC.cmake b/cpp/cmake_modules/FindORC.cmake
index 1be149c..061a0df 100644
--- a/cpp/cmake_modules/FindORC.cmake
+++ b/cpp/cmake_modules/FindORC.cmake
@@ -44,10 +44,9 @@ if(ORC_STATIC_LIB AND ORC_INCLUDE_DIR)
   add_library(orc::liborc STATIC IMPORTED)
   set_target_properties(orc::liborc
                         PROPERTIES IMPORTED_LOCATION "${ORC_STATIC_LIB}"
-                                   INTERFACE_INCLUDE_DIRECTORIES
-                                   "${ORC_INCLUDE_DIR}")
+                                   INTERFACE_INCLUDE_DIRECTORIES 
"${ORC_INCLUDE_DIR}")
 else()
-  if (ORC_FIND_REQUIRED)
+  if(ORC_FIND_REQUIRED)
     message(FATAL_ERROR "ORC library was required in toolchain and unable to 
locate")
   endif()
   set(ORC_FOUND FALSE)
diff --git a/cpp/cmake_modules/FindSnappy.cmake 
b/cpp/cmake_modules/FindSnappy.cmake
index 5784cf5..26cccb7 100644
--- a/cpp/cmake_modules/FindSnappy.cmake
+++ b/cpp/cmake_modules/FindSnappy.cmake
@@ -26,9 +26,13 @@ if(ARROW_SNAPPY_USE_SHARED)
 else()
   set(SNAPPY_STATIC_LIB_NAME_BASE "snappy")
   if(MSVC)
-    set(SNAPPY_STATIC_LIB_NAME_BASE 
"${SNAPPY_STATIC_LIB_NAME_BASE}${SNAPPY_MSVC_STATIC_LIB_SUFFIX}")
+    set(SNAPPY_STATIC_LIB_NAME_BASE
+        "${SNAPPY_STATIC_LIB_NAME_BASE}${SNAPPY_MSVC_STATIC_LIB_SUFFIX}")
   endif()
-  set(SNAPPY_LIB_NAMES 
"${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_STATIC_LIB_NAME_BASE}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+  set(
+    SNAPPY_LIB_NAMES
+    
"${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_STATIC_LIB_NAME_BASE}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+    )
 endif()
 
 if(Snappy_ROOT)
@@ -44,7 +48,9 @@ if(Snappy_ROOT)
             PATH_SUFFIXES ${ARROW_INCLUDE_PATH_SUFFIXES})
 else()
   find_library(Snappy_LIB NAMES ${SNAPPY_LIB_NAMES})
-  find_path(Snappy_INCLUDE_DIR NAMES snappy.h PATH_SUFFIXES 
${ARROW_INCLUDE_PATH_SUFFIXES})
+  find_path(Snappy_INCLUDE_DIR
+            NAMES snappy.h
+            PATH_SUFFIXES ${ARROW_INCLUDE_PATH_SUFFIXES})
 endif()
 
 find_package_handle_standard_args(Snappy REQUIRED_VARS Snappy_LIB 
Snappy_INCLUDE_DIR)
diff --git a/cpp/cmake_modules/Findutf8proc.cmake 
b/cpp/cmake_modules/Findutf8proc.cmake
index 560321d..edea73b 100644
--- a/cpp/cmake_modules/Findutf8proc.cmake
+++ b/cpp/cmake_modules/Findutf8proc.cmake
@@ -29,37 +29,40 @@ else()
   endif()
   set(utf8proc_STATIC_LIB_SUFFIX
       "${utf8proc_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
-  set(utf8proc_LIB_NAMES 
"${CMAKE_STATIC_LIBRARY_PREFIX}utf8proc${utf8proc_STATIC_LIB_SUFFIX}")
+  set(utf8proc_LIB_NAMES
+      "${CMAKE_STATIC_LIBRARY_PREFIX}utf8proc${utf8proc_STATIC_LIB_SUFFIX}")
 endif()
 
 if(utf8proc_ROOT)
-  find_library(
-    utf8proc_LIB
-    NAMES ${utf8proc_LIB_NAMES}
-    PATHS ${utf8proc_ROOT}
-    PATH_SUFFIXES ${ARROW_LIBRARY_PATH_SUFFIXES}
-    NO_DEFAULT_PATH)
+  find_library(utf8proc_LIB
+               NAMES ${utf8proc_LIB_NAMES}
+               PATHS ${utf8proc_ROOT}
+               PATH_SUFFIXES ${ARROW_LIBRARY_PATH_SUFFIXES}
+               NO_DEFAULT_PATH)
   find_path(utf8proc_INCLUDE_DIR
             NAMES utf8proc.h
             PATHS ${utf8proc_ROOT}
             NO_DEFAULT_PATH
             PATH_SUFFIXES ${ARROW_INCLUDE_PATH_SUFFIXES})
 else()
-  find_library(
-    utf8proc_LIB
-    NAMES ${utf8proc_LIB_NAMES}
-    PATH_SUFFIXES ${ARROW_LIBRARY_PATH_SUFFIXES})
-  find_path(utf8proc_INCLUDE_DIR NAMES utf8proc.h PATH_SUFFIXES 
${ARROW_INCLUDE_PATH_SUFFIXES})
+  find_library(utf8proc_LIB
+               NAMES ${utf8proc_LIB_NAMES}
+               PATH_SUFFIXES ${ARROW_LIBRARY_PATH_SUFFIXES})
+  find_path(utf8proc_INCLUDE_DIR
+            NAMES utf8proc.h
+            PATH_SUFFIXES ${ARROW_INCLUDE_PATH_SUFFIXES})
 endif()
 
-find_package_handle_standard_args(utf8proc REQUIRED_VARS utf8proc_LIB 
utf8proc_INCLUDE_DIR)
+find_package_handle_standard_args(utf8proc REQUIRED_VARS utf8proc_LIB
+                                  utf8proc_INCLUDE_DIR)
 
 if(utf8proc_FOUND)
   set(utf8proc_FOUND TRUE)
   add_library(utf8proc::utf8proc UNKNOWN IMPORTED)
-  set_target_properties(utf8proc::utf8proc
-                        PROPERTIES IMPORTED_LOCATION "${utf8proc_LIB}"
-                                   INTERFACE_INCLUDE_DIRECTORIES 
"${utf8proc_INCLUDE_DIR}")
+  set_target_properties(
+    utf8proc::utf8proc
+    PROPERTIES IMPORTED_LOCATION "${utf8proc_LIB}" 
INTERFACE_INCLUDE_DIRECTORIES
+               "${utf8proc_INCLUDE_DIR}")
   if(NOT ARROW_UTF8PROC_USE_SHARED)
     set_target_properties(utf8proc::utf8proc
                           PROPERTIES INTERFACE_COMPILER_DEFINITIONS 
"UTF8PROC_STATIC")
diff --git a/go/arrow/math/_lib/CMakeLists.txt 
b/go/arrow/math/_lib/CMakeLists.txt
index ec1558b..050bd40 100644
--- a/go/arrow/math/_lib/CMakeLists.txt
+++ b/go/arrow/math/_lib/CMakeLists.txt
@@ -20,5 +20,3 @@ project(math-func)
 set(CMAKE_C_STANDARD 99)
 
 add_library(memory STATIC float64.c int64.c uint64.c)
-
-
diff --git a/go/arrow/memory/_lib/CMakeLists.txt 
b/go/arrow/memory/_lib/CMakeLists.txt
index f681530..6126acd7 100644
--- a/go/arrow/memory/_lib/CMakeLists.txt
+++ b/go/arrow/memory/_lib/CMakeLists.txt
@@ -20,5 +20,3 @@ project(memory-func)
 set(CMAKE_C_STANDARD 99)
 
 add_library(memory STATIC memory.c)
-
-
diff --git a/java/adapter/orc/CMakeLists.txt b/java/adapter/orc/CMakeLists.txt
index c6facac..e2d4655 100644
--- a/java/adapter/orc/CMakeLists.txt
+++ b/java/adapter/orc/CMakeLists.txt
@@ -30,14 +30,14 @@ include(FindJNI)
 
 message("generating headers to ${JNI_HEADERS_DIR}")
 
-add_jar(
-        arrow_orc_java
+add_jar(arrow_orc_java
         src/main/java/org/apache/arrow/adapter/orc/OrcReaderJniWrapper.java
         
src/main/java/org/apache/arrow/adapter/orc/OrcStripeReaderJniWrapper.java
         src/main/java/org/apache/arrow/adapter/orc/OrcMemoryJniWrapper.java
         src/main/java/org/apache/arrow/adapter/orc/OrcJniUtils.java
         src/main/java/org/apache/arrow/adapter/orc/OrcRecordBatch.java
         src/main/java/org/apache/arrow/adapter/orc/OrcFieldNode.java
-        GENERATE_NATIVE_HEADERS arrow_orc_java-native
-        DESTINATION ${JNI_HEADERS_DIR}
-)
+        GENERATE_NATIVE_HEADERS
+        arrow_orc_java-native
+        DESTINATION
+        ${JNI_HEADERS_DIR})
diff --git a/java/dataset/CMakeLists.txt b/java/dataset/CMakeLists.txt
index 2743e4a..07e2d0a 100644
--- a/java/dataset/CMakeLists.txt
+++ b/java/dataset/CMakeLists.txt
@@ -30,14 +30,14 @@ include(FindJNI)
 
 message("generating headers to ${JNI_HEADERS_DIR}")
 
-add_jar(
-        arrow_dataset_java
+add_jar(arrow_dataset_java
         src/main/java/org/apache/arrow/dataset/jni/JniLoader.java
         src/main/java/org/apache/arrow/dataset/jni/JniWrapper.java
         src/main/java/org/apache/arrow/dataset/jni/NativeRecordBatchHandle.java
         src/main/java/org/apache/arrow/dataset/file/JniWrapper.java
         src/main/java/org/apache/arrow/dataset/jni/NativeMemoryPool.java
         src/main/java/org/apache/arrow/dataset/jni/ReservationListener.java
-        GENERATE_NATIVE_HEADERS arrow_dataset_java-native
-        DESTINATION ${JNI_HEADERS_DIR}
-)
+        GENERATE_NATIVE_HEADERS
+        arrow_dataset_java-native
+        DESTINATION
+        ${JNI_HEADERS_DIR})
diff --git a/matlab/CMakeLists.txt b/matlab/CMakeLists.txt
old mode 100755
new mode 100644
index 7f3f1d0..fb80670
--- a/matlab/CMakeLists.txt
+++ b/matlab/CMakeLists.txt
@@ -19,8 +19,7 @@ cmake_minimum_required(VERSION 3.2)
 set(CMAKE_CXX_STANDARD 11)
 
 set(MLARROW_VERSION "4.0.0-SNAPSHOT")
-string(REGEX MATCH
-  "^[0-9]+\\.[0-9]+\\.[0-9]+" MLARROW_BASE_VERSION "${MLARROW_VERSION}")
+string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" MLARROW_BASE_VERSION 
"${MLARROW_VERSION}")
 
 project(mlarrow VERSION "${MLARROW_BASE_VERSION}")
 
@@ -33,23 +32,29 @@ endif()
 ## Arrow is Required
 find_package(Arrow REQUIRED)
 
-## MATLAB is required to be installed to build MEX interfaces 
+## MATLAB is required to be installed to build MEX interfaces
 set(MATLAB_ADDITIONAL_VERSIONS "R2018a=9.4")
 find_package(Matlab REQUIRED MX_LIBRARY)
 
 # Build featherread mex file based on the arrow shared library
-matlab_add_mex(NAME featherreadmex
-               SRC src/featherreadmex.cc
-                   src/feather_reader.cc
-                   src/util/handle_status.cc
-                   src/util/unicode_conversion.cc
-               LINK_TO ${ARROW_SHARED_LIB})
+matlab_add_mex(NAME
+               featherreadmex
+               SRC
+               src/featherreadmex.cc
+               src/feather_reader.cc
+               src/util/handle_status.cc
+               src/util/unicode_conversion.cc
+               LINK_TO
+               ${ARROW_SHARED_LIB})
 target_include_directories(featherreadmex PRIVATE ${ARROW_INCLUDE_DIR})
 
 # Build featherwrite mex file based on the arrow shared library
-matlab_add_mex(NAME featherwritemex
-               SRC src/featherwritemex.cc
-                   src/feather_writer.cc
-                   src/util/handle_status.cc
-               LINK_TO ${ARROW_SHARED_LIB})
+matlab_add_mex(NAME
+               featherwritemex
+               SRC
+               src/featherwritemex.cc
+               src/feather_writer.cc
+               src/util/handle_status.cc
+               LINK_TO
+               ${ARROW_SHARED_LIB})
 target_include_directories(featherwritemex PRIVATE ${ARROW_INCLUDE_DIR})
diff --git a/run-cmake-format.py b/run-cmake-format.py
index 5e8da5c..1ff1038 100755
--- a/run-cmake-format.py
+++ b/run-cmake-format.py
@@ -17,62 +17,36 @@
 # specific language governing permissions and limitations
 # under the License.
 
+import argparse
+import fnmatch
 import hashlib
 import pathlib
 import subprocess
 import sys
 
-
-patterns = [
+# Keep an explicit list of files to format as we don't want to reformat
+# files we imported from other location.
+PATTERNS = [
+    'ci/**/*.cmake',
     'cpp/CMakeLists.txt',
-    # Keep an explicit list of files to format as we don't want to reformat
-    # files we imported from other location.
-    'cpp/cmake_modules/BuildUtils.cmake',
-    'cpp/cmake_modules/DefineOptions.cmake',
-    'cpp/cmake_modules/FindArrow.cmake',
-    'cpp/cmake_modules/FindArrowCUDA.cmake',
-    'cpp/cmake_modules/FindArrowDataset.cmake',
-    'cpp/cmake_modules/FindArrowFlight.cmake',
-    'cpp/cmake_modules/FindArrowFlightTesting.cmake',
-    'cpp/cmake_modules/FindArrowPython.cmake',
-    'cpp/cmake_modules/FindArrowPythonFlight.cmake',
-    'cpp/cmake_modules/FindArrowTesting.cmake',
-    'cpp/cmake_modules/FindBrotli.cmake',
-    'cpp/cmake_modules/FindClangTools.cmake',
-    'cpp/cmake_modules/FindFlatbuffersAlt.cmake',
-    'cpp/cmake_modules/FindGLOG.cmake',
-    'cpp/cmake_modules/FindGandiva.cmake',
-    'cpp/cmake_modules/FindInferTools.cmake',
-    'cpp/cmake_modules/FindLLVMAlt.cmake',
-    'cpp/cmake_modules/FindLz4.cmake',
-    'cpp/cmake_modules/FindParquet.cmake',
-    'cpp/cmake_modules/FindPlasma.cmake',
-    'cpp/cmake_modules/FindPython3Alt.cmake',
-    'cpp/cmake_modules/FindRE2.cmake',
-    'cpp/cmake_modules/FindRapidJSONAlt.cmake',
-    'cpp/cmake_modules/FindSnappyAlt.cmake',
-    'cpp/cmake_modules/FindThrift.cmake',
-    'cpp/cmake_modules/FindZSTD.cmake',
-    'cpp/cmake_modules/Findc-aresAlt.cmake',
-    'cpp/cmake_modules/FindgRPCAlt.cmake',
-    'cpp/cmake_modules/FindgflagsAlt.cmake',
-    'cpp/cmake_modules/Findjemalloc.cmake',
-    'cpp/cmake_modules/SetupCxxFlags.cmake',
-    'cpp/cmake_modules/ThirdpartyToolchain.cmake',
-    'cpp/cmake_modules/san-config.cmake',
-    'cpp/cmake_modules/UseCython.cmake',
-    'cpp/cmake_modules/Usevcpkg.cmake',
     'cpp/src/**/CMakeLists.txt',
-    'cpp/tools/**/CMakeLists.txt',
-    'java/gandiva/CMakeLists.txt',
-    'python/CMakeLists.txt',
+    'cpp/cmake_modules/*.cmake',
+    'go/**/CMakeLists.txt',
+    'java/**/CMakeLists.txt',
+    'matlab/**/CMakeLists.txt',
+]
+EXCLUDE = [
+    'cpp/cmake_modules/FindNumPy.cmake',
+    'cpp/cmake_modules/FindPythonLibsNew.cmake',
+    'cpp/cmake_modules/UseCython.cmake',
+    'cpp/src/arrow/util/config.h.cmake',
 ]
 
 here = pathlib.Path(__file__).parent
 
 
 def find_cmake_files():
-    for pat in patterns:
+    for pat in PATTERNS:
         yield from here.glob(pat)
 
 
@@ -119,8 +93,19 @@ def check_cmake_format(paths):
 
 
 if __name__ == "__main__":
-    paths = list(find_cmake_files())
-    if "--check" in sys.argv:
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--check', action='store_true')
+    parser.add_argument('paths', nargs='*', type=pathlib.Path)
+    args = parser.parse_args()
+
+    paths = find_cmake_files()
+    if args.paths:
+        paths = set(paths) & set([path.resolve() for path in args.paths])
+    paths = [
+        path for path in paths
+        if path.relative_to(here).as_posix() not in EXCLUDE
+    ]
+    if args.check:
         check_cmake_format(paths)
     else:
         run_cmake_format(paths)

Reply via email to