From eb37a3be97226952528f552f8289472254b926bf Mon Sep 17 00:00:00 2001 From: Fabian Ruffy Date: Wed, 7 Dec 2022 13:17:16 -0500 Subject: [PATCH] Fix. --- CMakeLists.txt | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ac674362612..58d4c6f71f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -509,19 +509,31 @@ list(FILTER P4C_LINT_LIST EXCLUDE REGEX "control-plane/p4runtime") # cpplint add_cpplint_files(${P4C_SOURCE_DIR} "${P4C_LINT_LIST}") +# Retrieve the global cpplint property. get_property(CPPLINT_FILES GLOBAL PROPERTY cpplint-files) -if(CPPLINT_FILES) - list ( SORT CPPLINT_FILES ) - set (CPPLINT_CMD ${P4C_SOURCE_DIR}/tools/cpplint.py) - set (CPPLINT_ARGS --root=${P4C_SOURCE_DIR} --extensions=h,hpp,cpp,ypp,l) - add_custom_target(cpplint - COMMAND ${CPPLINT_CMD} ${CPPLINT_ARGS} ${CPPLINT_FILES} + +if(DEFINED CPPLINT_FILES) + # Replace the semicolon-separators with space separators. + string(REPLACE ";" " " CPPLINT_FILES "${CPPLINT_FILES}") + # Write the list to a file. + set(CPPLINT_FILE ${P4C_BINARY_DIR}/cpplint_files.txt) + file(WRITE ${CPPLINT_FILE} "${CPPLINT_FILES}") + list(SORT CPPLINT_FILES) + set(CPPLINT_CMD ${P4C_SOURCE_DIR}/tools/cpplint.py) + set(CPPLINT_ARGS --root=${P4C_SOURCE_DIR} --extensions=h,hpp,cpp,ypp,l) + # Pipe the file into cpplint. + add_custom_target( + cpplint + COMMAND cat ${CPPLINT_FILE} | xargs -n 10000000 ${CPPLINT_CMD} ${CPPLINT_ARGS} WORKING_DIRECTORY ${P4C_SOURCE_DIR} - COMMENT "cpplint") - add_custom_target(cpplint-quiet - COMMAND ${CPPLINT_CMD} --quiet ${CPPLINT_ARGS} ${CPPLINT_FILES} + COMMENT "cpplint" + ) + add_custom_target( + cpplint-quiet + COMMAND cat ${CPPLINT_FILE} | xargs -n 10000000 ${CPPLINT_CMD} ${CPPLINT_ARGS} --quiet WORKING_DIRECTORY ${P4C_SOURCE_DIR} - COMMENT "cpplint quietly") + COMMENT "cpplint quietly" + ) endif() # clang-format @@ -533,19 +545,25 @@ add_clang_format_files(${P4C_SOURCE_DIR} "${P4C_LINT_LIST}") find_program(CLANG_FORMAT_CMD clang-format) if(NOT ${CLANG_FORMAT_CMD}) + # Retrieve the global clang-format property. get_property(CLANG_FORMAT_FILES GLOBAL PROPERTY clang-format-files) if(DEFINED CLANG_FORMAT_FILES) + # Replace the semicolon-separators with space separators. + string(REPLACE ";" " " CLANG_FORMAT_FILES "${CLANG_FORMAT_FILES}") + # Write the list to a file. + set(CLANG_FORMAT_FILE ${P4C_BINARY_DIR}/clang_format_files.txt) + file(WRITE ${CLANG_FORMAT_FILE} "${CLANG_FORMAT_FILES}") list(SORT CLANG_FORMAT_FILES) set(CLANG_FORMAT_CMD clang-format) add_custom_target( clang-format - COMMAND ${CLANG_FORMAT_CMD} --verbose --Werror --dry-run -i ${CLANG_FORMAT_FILES} + COMMAND cat ${CLANG_FORMAT_FILE} | xargs ${CLANG_FORMAT_CMD} --verbose --Werror --dry-run -i -- WORKING_DIRECTORY ${P4C_SOURCE_DIR} COMMENT "Checking files for correct clang-format formatting." ) add_custom_target( clang-format-fix-errors - COMMAND ${CLANG_FORMAT_CMD} --verbose -i ${CLANG_FORMAT_FILES} + COMMAND cat ${CLANG_FORMAT_FILE} | xargs ${CLANG_FORMAT_CMD} --verbose -i -- WORKING_DIRECTORY ${P4C_SOURCE_DIR} COMMENT "Formatting files using clang-format." )