Procházet zdrojové kódy

ENH: add KWStyle support

Bill Hoffman před 18 roky
rodič
revize
3c45e181cf

+ 1 - 1
Utilities/CMakeLists.txt

@@ -1,4 +1,4 @@
-SUBDIRS(Doxygen)
+SUBDIRS(Doxygen KWStyle)
 
 SET(CMD_DIR ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR})
 IF(WIN32)

+ 9 - 0
Utilities/KWStyle/CMake.kws.xml.in

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<Description>
+<LineLength>79</LineLength>
+<Header>"@CMAKE_SOURCE_DIR@/Utilities/KWStyle/Headers",false,true</Header>
+<Functions>
+<regex>[A-Z]</regex>
+<length>100</length>
+</Functions>
+</Description>

+ 13 - 0
Utilities/KWStyle/CMakeFiles.txt.in

@@ -0,0 +1,13 @@
+@CMAKE_SOURCE_DIR@/Source/*.txx
+@CMAKE_SOURCE_DIR@/Source/*.cxx
+@CMAKE_SOURCE_DIR@/Source/*.h*
+@CMAKE_SOURCE_DIR@/Source/CPack/*.txx
+@CMAKE_SOURCE_DIR@/Source/CPack/*.cxx
+@CMAKE_SOURCE_DIR@/Source/CPack/*.h*
+@CMAKE_SOURCE_DIR@/Source/CTest/*.txx
+@CMAKE_SOURCE_DIR@/Source/CTest/*.cxx
+@CMAKE_SOURCE_DIR@/Source/CTest/*.h*
+@CMAKE_SOURCE_DIR@/Source/CurseDialog/*.h*
+@CMAKE_SOURCE_DIR@/Source/CurseDialog/*.cxx
+@CMAKE_SOURCE_DIR@/Source/CurseDialog/*.txx
+-f (Lexer\.cxx)

+ 41 - 0
Utilities/KWStyle/CMakeLists.txt

@@ -0,0 +1,41 @@
+#-----------------------------------------------------------------------------
+# CMake uses KWStyle for checking the coding style
+OPTION(CMAKE_USE_KWSTYLE "Run KWStyle in order to check for violations of the coding standard." OFF)
+MARK_AS_ADVANCED(CMAKE_USE_KWSTYLE)
+
+IF(CMAKE_USE_KWSTYLE)
+  FIND_PROGRAM(KWSTYLE_EXECUTABLE
+  NAMES KWStyle 
+  PATHS
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware Inc.\\KWStyle 1.0.0]/bin"
+  )
+  MARK_AS_ADVANCED(KWSTYLE_EXECUTABLE)
+
+  OPTION(KWSTYLE_USE_VIM_FORMAT "Set KWStyle to generate errors with a VIM-compatible format." OFF)
+  OPTION(KWSTYLE_USE_MSVC_FORMAT "Set KWStyle to generate errors with a VisualStudio-compatible format." OFF)
+  MARK_AS_ADVANCED(KWSTYLE_USE_VIM_FORMAT)
+  MARK_AS_ADVANCED(KWSTYLE_USE_MSVC_FORMAT)
+
+  IF(KWSTYLE_USE_VIM_FORMAT)
+    SET(KWSTYLE_ARGUMENTS -vim ${KWSTYLE_ARGUMENTS})
+  ENDIF(KWSTYLE_USE_VIM_FORMAT)
+
+  IF(KWSTYLE_USE_MSVC_FORMAT)
+    SET(KWSTYLE_ARGUMENTS -msvc ${KWSTYLE_ARGUMENTS})
+  ENDIF(KWSTYLE_USE_MSVC_FORMAT)
+
+  CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/Utilities/KWStyle/CMake.kws.xml.in
+               ${CMAKE_BINARY_DIR}/CMake.kws.xml)
+
+  CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/Utilities/KWStyle/CMakeFiles.txt.in
+                 ${CMAKE_BINARY_DIR}/CMakeKWSFiles.txt)
+
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${CMAKE_BINARY_DIR}/KWStyleReport.txt
+    COMMAND ${KWSTYLE_EXECUTABLE}
+    ARGS    -xml ${CMAKE_BINARY_DIR}/CMake.kws.xml -o ${CMAKE_SOURCE_DIR}/Utilities/KWStyle/CMakeOverwrite.txt -v ${KWSTYLE_ARGUMENTS} -D ${CMAKE_BINARY_DIR}/CMakeKWSFiles.txt 
+    COMMENT "Coding Style Checker"
+    )
+  ADD_CUSTOM_TARGET(StyleCheck DEPENDS ${CMAKE_BINARY_DIR}/KWStyleReport.txt)
+ENDIF(CMAKE_USE_KWSTYLE)
+

+ 0 - 0
Utilities/KWStyle/CMakeOverwrite.txt


+ 16 - 0
Utilities/KWStyle/Headers/CMakeHeader.h

@@ -0,0 +1,16 @@
+/*=========================================================================
+
+  Program:   CMake - Cross-Platform Makefile Generator
+  Module:    $RCSfile$
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+  Copyright (c) 2002 Kitware, Inc., Insight Consortium.  All rights reserved.
+  See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+     This software is distributed WITHOUT ANY WARRANTY; without even 
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/