Check for coding style issues in CMake files
Clone or download
Latest commit 058c6c0 May 21, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin main: Exit with failure when errors are present Jun 22, 2015
cmakelint Add missing error package/stdargs category May 19, 2017
test Fix options file linelength Aug 15, 2016
.gitignore ignore setup.py artifacts Nov 10, 2012
.travis.yml travis-ci integration Nov 10, 2012
LICENSE Add Apache 2.0 license file Apr 2, 2016
README.md Fix typo Mar 2, 2017
setup.py Provide .exe wrapper on windows Apr 12, 2016

README.md

cmakelint parses CMake files and reports style issues.

cmakelint requires Python.

Installation

sudo pip install cmakelint

Usage

Syntax: cmakelint [--config=file] [--filter=-x,+y] <file> [file] ...
filter=-x,+y,...
  Specify a comma separated list of filters to apply

config=file
  Use the given file for configuration. By default the file
  $HOME/.cmakelintrc is used if it exists.  Use the value "None" to use no
  configuration file (./None for a file called literally None)
  Only the option "filter=" is currently supported in this file.

Run the --filter= option with no filter to see available options. Currently these are:

convention/filename
linelength
package/consistency
readability/logic
readability/mixedcase
readability/wonkycase
syntax
whitespace/eol
whitespace/extra
whitespace/indent
whitespace/mismatch
whitespace/newline
whitespace/tabs

An example .cmakelintrc file would be as follows:

filter=-whitespace/indent

With this file in your home directory, running these commands would have the same effect:

cmakelint.py CMakeLists.txt
cmakelint.py --filter=-whitespace/indent CMakeLists.txt

Output status codes

The program should exit with the following status codes:

  • 0 if everything went fine
  • 1 if an error message was issued
  • 32 on usage error

Changes

1.4

  • Add --quiet flag to suppress "Total Errors: 0"
  • Add --linelength=N flag to allow longer default lines (default remains 80)

1.3.4

  • fix false positives in indented blocks

1.3.3

  • fix crash on invalid # lint_cmake: pragma line
  • fix deprecation warning with Python 3.4
  • fix false positive warnings related to non-CMake quoted chunks (Issue #2)

1.3.2

  • return error code 0, 1, 32 on error

1.3.1

  • fix version number

1.3

  • individual CMake files can control filters with # lint_cmake: pragma comment
  • improved SetFilters function to allow spaces around the commas
  • use ${XDG_CONFIG_HOME} for the cmakelintrc file, with backwards compatible check for ~/.cmakelintrc

1.2.01

  • Published on pypi

1.2

  • Moved to github