Browse Source

Merge topic 'add-kwstyle-test'

3a0d632 KWStyle Test: Activate by default if KWStyle is found
91704ef Tests: Add a KWStyle test, equivalent to the make StyleCheck target
David Cole 14 năm trước cách đây
mục cha
commit
a0ec7a00d5
2 tập tin đã thay đổi với 35 bổ sung6 xóa
  1. 13 0
      Tests/CMakeLists.txt
  2. 22 6
      Utilities/KWStyle/CMakeLists.txt

+ 13 - 0
Tests/CMakeLists.txt

@@ -2122,6 +2122,19 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
     --test-command IncludeDirectories)
   LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/IncludeDirectories")
 
+  IF(CMAKE_USE_KWSTYLE AND KWSTYLE_EXECUTABLE)
+    # The "make StyleCheck" command line as a test. If the test fails, look
+    # for lines like "Error #0 (624) Line length exceed 88 (max=79)" in the
+    # output to find where the style errors are...
+    ADD_TEST(KWStyle ${KWSTYLE_EXECUTABLE}
+      -xml ${CMake_BINARY_DIR}/CMake.kws.xml
+      -o ${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeOverwrite.txt
+      -v
+      -D ${CMake_BINARY_DIR}/CMakeKWSFiles.txt
+      )
+    SET_TESTS_PROPERTIES(KWStyle PROPERTIES
+      WORKING_DIRECTORY ${CMake_BINARY_DIR}/Utilities/KWStyle)
+  ENDIF()
 ENDIF(BUILD_TESTING)
 
 SUBDIRS(CMakeTests)

+ 22 - 6
Utilities/KWStyle/CMakeLists.txt

@@ -12,17 +12,34 @@
 
 #-----------------------------------------------------------------------------
 # 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
+# Search for a built-from-source KWStyle under Dashboards/Support on a typical
+# dashboard machines:
+#
+SET(home "$ENV{HOME}")
+IF(NOT home)
+  STRING(REPLACE "\\" "/" home "$ENV{USERPROFILE}")
+ENDIF()
+
+FIND_PROGRAM(KWSTYLE_EXECUTABLE
   NAMES KWStyle 
   PATHS
   "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware Inc.\\KWStyle 1.0.0]/bin"
+  "${home}/Dashboards/Support/KWStyle/bin"
   )
-  MARK_AS_ADVANCED(KWSTYLE_EXECUTABLE)
+MARK_AS_ADVANCED(KWSTYLE_EXECUTABLE)
+
+SET(CMAKE_USE_KWSTYLE_DEFAULT OFF)
+IF(KWSTYLE_EXECUTABLE)
+  SET(CMAKE_USE_KWSTYLE_DEFAULT ON)
+ENDIF()
 
+OPTION(CMAKE_USE_KWSTYLE
+  "Add StyleCheck target and KWStyle test: run KWStyle to check for coding standard violations."
+  ${CMAKE_USE_KWSTYLE_DEFAULT})
+MARK_AS_ADVANCED(CMAKE_USE_KWSTYLE)
+
+IF(CMAKE_USE_KWSTYLE)
   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)
@@ -59,4 +76,3 @@ IF(CMAKE_USE_KWSTYLE)
 
   ADD_CUSTOM_TARGET(StyleCheck DEPENDS ${CMake_BINARY_DIR}/KWStyleReport.txt)
 ENDIF(CMAKE_USE_KWSTYLE)
-