9db3116226
Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
79 lines
3.0 KiB
CMake
79 lines
3.0 KiB
CMake
#=============================================================================
|
|
# 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
|
|
|
|
# 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)
|
|
|
|
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)
|
|
mark_as_advanced(KWSTYLE_USE_MSVC_FORMAT)
|
|
|
|
if(KWSTYLE_USE_VIM_FORMAT)
|
|
set(KWSTYLE_ARGUMENTS -vim ${KWSTYLE_ARGUMENTS})
|
|
endif()
|
|
|
|
if(KWSTYLE_USE_MSVC_FORMAT)
|
|
set(KWSTYLE_ARGUMENTS -msvc ${KWSTYLE_ARGUMENTS})
|
|
endif()
|
|
|
|
configure_file(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMake.kws.xml.in
|
|
${CMake_BINARY_DIR}/CMake.kws.xml)
|
|
configure_file(${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeMoreChecks.kws.xml.in
|
|
${CMake_BINARY_DIR}/CMakeMoreChecks.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(MoreStyleChecks
|
|
COMMAND ${KWSTYLE_EXECUTABLE}
|
|
-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"
|
|
)
|
|
|
|
add_custom_target(StyleCheck DEPENDS ${CMake_BINARY_DIR}/KWStyleReport.txt)
|
|
endif()
|