From 1e559d19c39b33bfaab5a0c4f28535d25b238253 Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Mon, 12 Feb 2018 10:21:27 +0530 Subject: [PATCH] [build] Add clangformat target to cmake - Added a new target "clangformat" which formats the code using the clang-format tool found in HCC package. - Renamed target "static_check" to "cppcheck". - Use find_program() macro to make the build system more robust. Change-Id: Ifefbf36f23ff7ef27a870120d5b9170d0cc8aa52 --- .clang-format | 20 ++++++++++++++++++++ CMakeLists.txt | 26 ++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000000..1793af2ba2 --- /dev/null +++ b/.clang-format @@ -0,0 +1,20 @@ +--- +Language: Cpp +BasedOnStyle: Google +AlignEscapedNewlinesLeft: false +ColumnLimit: 100 +DerivePointerAlignment: false +IndentWrappedFunctionNames: false +MaxEmptyLinesToKeep: 2 +SortIncludes: false +IndentWidth: 4 +--- +Language: ObjC +BasedOnStyle: Google +AlignEscapedNewlinesLeft: false +ColumnLimit: 100 +DerivePointerAlignment: false +IndentWrappedFunctionNames: false +MaxEmptyLinesToKeep: 2 +SortIncludes: false +IndentWidth: 4 diff --git a/CMakeLists.txt b/CMakeLists.txt index baf3b49df1..1573ddee5c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -220,8 +220,11 @@ endif() file(WRITE "${PROJECT_BINARY_DIR}/.hipVersion" ${_versionInfo}) # Build doxygen documentation -add_custom_target(doc COMMAND HIP_PATH=${CMAKE_CURRENT_SOURCE_DIR} doxygen ${CMAKE_CURRENT_SOURCE_DIR}/docs/doxygen-input/doxy.cfg - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docs) +find_program(DOXYGEN_EXE doxygen) +if(DOXYGEN_EXE) + add_custom_target(doc COMMAND HIP_PATH=${CMAKE_CURRENT_SOURCE_DIR} ${DOXYGEN_EXE} ${CMAKE_CURRENT_SOURCE_DIR}/docs/doxygen-input/doxy.cfg + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docs) +endif() ############################# # Install steps @@ -364,8 +367,23 @@ endif() ############################# # Code analysis ############################# -# Target: static_check -add_custom_target(static_check COMMAND cppcheck --force --quiet --enable=warning,performance,portability,information,missingInclude src include -I /opt/rocm/include/hcc -I /opt/rocm/include --suppress=*:/opt/rocm/include/hcc/hc.hpp WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +# Target: cppcheck +find_program(CPPCHECK_EXE cppcheck) +if(CPPCHECK_EXE) + add_custom_target(cppcheck COMMAND ${CPPCHECK_EXE} --force --quiet --enable=warning,performance,portability,information,missingInclude src include -I /opt/rocm/include/hcc -I /opt/rocm/include --suppress=*:/opt/rocm/include/hcc/hc.hpp + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +############################# +# Code formatting +############################# +# Target: clangformat +find_program(CLANGFORMAT_EXE clang-format PATHS ${HCC_HOME}/bin) +if(CLANGFORMAT_EXE) + file(GLOB_RECURSE FORMAT_SOURCE_FILE_LIST *.cpp *.hpp *.h) + add_custom_target(clangformat COMMAND ${CLANGFORMAT_EXE} -style=file -i ${FORMAT_SOURCE_FILE_LIST} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +endif() ############################# # Testing steps