CMakeLists.txt 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #=============================================================================
  2. # CMake - Cross Platform Makefile Generator
  3. # Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
  4. #
  5. # Distributed under the OSI-approved BSD License (the "License");
  6. # see accompanying file Copyright.txt for details.
  7. #
  8. # This software is distributed WITHOUT ANY WARRANTY; without even the
  9. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. # See the License for more information.
  11. #=============================================================================
  12. #-----------------------------------------------------------------------------
  13. # CMake uses KWStyle for checking the coding style
  14. OPTION(CMAKE_USE_KWSTYLE "Run KWStyle in order to check for violations of the coding standard." OFF)
  15. MARK_AS_ADVANCED(CMAKE_USE_KWSTYLE)
  16. IF(CMAKE_USE_KWSTYLE)
  17. FIND_PROGRAM(KWSTYLE_EXECUTABLE
  18. NAMES KWStyle
  19. PATHS
  20. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware Inc.\\KWStyle 1.0.0]/bin"
  21. )
  22. MARK_AS_ADVANCED(KWSTYLE_EXECUTABLE)
  23. OPTION(KWSTYLE_USE_VIM_FORMAT "Set KWStyle to generate errors with a VIM-compatible format." OFF)
  24. OPTION(KWSTYLE_USE_MSVC_FORMAT "Set KWStyle to generate errors with a VisualStudio-compatible format." OFF)
  25. MARK_AS_ADVANCED(KWSTYLE_USE_VIM_FORMAT)
  26. MARK_AS_ADVANCED(KWSTYLE_USE_MSVC_FORMAT)
  27. IF(KWSTYLE_USE_VIM_FORMAT)
  28. SET(KWSTYLE_ARGUMENTS -vim ${KWSTYLE_ARGUMENTS})
  29. ENDIF(KWSTYLE_USE_VIM_FORMAT)
  30. IF(KWSTYLE_USE_MSVC_FORMAT)
  31. SET(KWSTYLE_ARGUMENTS -msvc ${KWSTYLE_ARGUMENTS})
  32. ENDIF(KWSTYLE_USE_MSVC_FORMAT)
  33. CONFIGURE_FILE(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMake.kws.xml.in
  34. ${CMake_BINARY_DIR}/CMake.kws.xml)
  35. CONFIGURE_FILE(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeMoreChecks.kws.xml.in
  36. ${CMake_BINARY_DIR}/CMakeMoreChecks.kws.xml)
  37. CONFIGURE_FILE(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeFiles.txt.in
  38. ${CMake_BINARY_DIR}/CMakeKWSFiles.txt)
  39. ADD_CUSTOM_COMMAND(
  40. OUTPUT ${CMake_BINARY_DIR}/KWStyleReport.txt
  41. COMMAND ${KWSTYLE_EXECUTABLE}
  42. 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
  43. COMMENT "Coding Style Checker"
  44. )
  45. ADD_CUSTOM_TARGET(MoreStyleChecks
  46. COMMAND ${KWSTYLE_EXECUTABLE}
  47. -xml ${CMake_BINARY_DIR}/CMakeMoreChecks.kws.xml -html ${CMake_BINARY_DIR}/html -o ${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeOverwrite.txt -v ${KWSTYLE_ARGUMENTS} -D ${CMake_BINARY_DIR}/CMakeKWSFiles.txt
  48. COMMENT "Coding Style Checker, more checks enabled"
  49. )
  50. ADD_CUSTOM_TARGET(StyleCheck DEPENDS ${CMake_BINARY_DIR}/KWStyleReport.txt)
  51. ENDIF(CMAKE_USE_KWSTYLE)