cmake/Utilities/KWStyle/CMakeLists.txt

79 lines
3.0 KiB
CMake
Raw Normal View History

2009-10-04 10:30:41 +03:00
#=============================================================================
# CMake - Cross Platform Makefile Generator
# Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
#-----------------------------------------------------------------------------
# CMake uses KWStyle for checking the coding style
2012-02-18 12:40:36 +02:00
# Search for a built-from-source KWStyle under Dashboards/Support on a typical
# dashboard machines:
#
2013-03-16 19:13:01 +02:00
set(home "$ENV{HOME}")
if(NOT home)
string(REPLACE "\\" "/" home "$ENV{USERPROFILE}")
endif()
2012-02-18 12:40:36 +02:00
2013-03-16 19:13:01 +02:00
find_program(KWSTYLE_EXECUTABLE
NAMES KWStyle
PATHS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware Inc.\\KWStyle 1.0.0]/bin"
2012-02-18 12:40:36 +02:00
"${home}/Dashboards/Support/KWStyle/bin"
)
2013-03-16 19:13:01 +02:00
mark_as_advanced(KWSTYLE_EXECUTABLE)
2012-02-18 12:40:36 +02:00
2013-03-16 19:13:01 +02:00
set(CMAKE_USE_KWSTYLE_DEFAULT OFF)
if(KWSTYLE_EXECUTABLE)
set(CMAKE_USE_KWSTYLE_DEFAULT ON)
endif()
2013-03-16 19:13:01 +02:00
option(CMAKE_USE_KWSTYLE
2012-02-18 12:40:36 +02:00
"Add StyleCheck target and KWStyle test: run KWStyle to check for coding standard violations."
${CMAKE_USE_KWSTYLE_DEFAULT})
2013-03-16 19:13:01 +02:00
mark_as_advanced(CMAKE_USE_KWSTYLE)
2012-02-18 12:40:36 +02:00
2013-03-16 19:13:01 +02:00
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)
mark_as_advanced(KWSTYLE_USE_MSVC_FORMAT)
2013-03-16 19:13:01 +02:00
if(KWSTYLE_USE_VIM_FORMAT)
set(KWSTYLE_ARGUMENTS -vim ${KWSTYLE_ARGUMENTS})
endif()
2013-03-16 19:13:01 +02:00
if(KWSTYLE_USE_MSVC_FORMAT)
set(KWSTYLE_ARGUMENTS -msvc ${KWSTYLE_ARGUMENTS})
endif()
2013-03-16 19:13:01 +02:00
configure_file(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMake.kws.xml.in
2010-11-13 01:00:53 +02:00
${CMake_BINARY_DIR}/CMake.kws.xml)
2013-03-16 19:13:01 +02:00
configure_file(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeMoreChecks.kws.xml.in
2010-11-13 01:00:53 +02:00
${CMake_BINARY_DIR}/CMakeMoreChecks.kws.xml)
2013-03-16 19:13:01 +02:00
configure_file(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeFiles.txt.in
2010-11-13 01:00:53 +02:00
${CMake_BINARY_DIR}/CMakeKWSFiles.txt)
2013-03-16 19:13:01 +02:00
add_custom_command(
2010-11-13 01:00:53 +02:00
OUTPUT ${CMake_BINARY_DIR}/KWStyleReport.txt
COMMAND ${KWSTYLE_EXECUTABLE}
2010-11-13 01:00:53 +02:00
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"
)
2013-03-16 19:13:01 +02:00
add_custom_target(MoreStyleChecks
COMMAND ${KWSTYLE_EXECUTABLE}
2010-11-13 01:00:53 +02:00
-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
COMMENT "Coding Style Checker, more checks enabled"
)
2013-03-16 19:13:01 +02:00
add_custom_target(StyleCheck DEPENDS ${CMake_BINARY_DIR}/KWStyleReport.txt)
endif()