cmake-checker is a tool to search for violations to 'modern' cmake rules.
Project description
cmake-checker
cmake-checker is a tool to search for violations to 'modern' cmake rules.
Usage
usage: __main__.py [-h] [--warn-only] [--reporter {console,junit}]
[-o OUTPUT_FILE] [--whitelist WHITELIST]
PATH [PATH ...]
positional arguments:
PATH Path to the file or directory where the checks should
be done
optional arguments:
-h, --help show this help message and exit
--warn-only Program will return 0 even if violations are found
--reporter {console,junit}
Specify type of reporter to output
-o OUTPUT_FILE, --output-file OUTPUT_FILE
Output results to file with given name
--whitelist WHITELIST
Whitelist file with rules to ignore certain files or
dirs (.gitignore style)
What&Why tool warns about
-
file(GLOB ...)
- CMake will not track the dependencies of a new file on disk correctly. If no CMakeLists.txt file changes when a source is added or removed then the generated build system cannot know when to ask CMake to regenerate.
- You can't ensure that only files you want are added. Globbing may pick up stray files that you do not want.
-
Functions
add_compile_options
add_compile_definitions
link_libraries
add_definitions
include_directories
Functions work on directory scope instead of target scope. Every single one of listed functions has equivalent for target scope which should be used.
-
Properties
COMPILE_<LANG>_FLAGS
These properties should be set for a target - not modified globally
-
Closing commands with clauses
endif
endfunction
endmacro
endforeach
Example:
macro(foo ...) ... endmacro(foo)
-
Set/unset including
ENV
CACHE
-
../..
intarget_sources
function -
Set/unset
PARENT_SCOPE
outside of function declaration
Possibility to disable check
If you need to disable for any specific reasons checks you can do it using:
# cmake-check disable
...
# cmake-check enable
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cmake_checker-0.1.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b3250305cd5ef51a3801c8dda85680cf6e4e7abbded3e695bbe6a82f3c16249 |
|
MD5 | 400f5f24c7bcad105e06459b7798e0dc |
|
BLAKE2b-256 | 03331780fe1bca3c75209f5b7179682360bb88356fe67ac46b54fa225eab2462 |