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
File details
Details for the file cmake_checker-0.1.3.tar.gz
.
File metadata
- Download URL: cmake_checker-0.1.3.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ef6a9278b60aede070f30f65338c9682da7aa50316305cf93b4b28c10bcf59f |
|
MD5 | d94ce5940f93e710258f0e60359d8925 |
|
BLAKE2b-256 | 5d32efac3ef9aaf20e3796ee68f1d8a62a37a477899ee7db4859f063d1822dfc |
File details
Details for the file cmake_checker-0.1.3-py2.py3-none-any.whl
.
File metadata
- Download URL: cmake_checker-0.1.3-py2.py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b3250305cd5ef51a3801c8dda85680cf6e4e7abbded3e695bbe6a82f3c16249 |
|
MD5 | 400f5f24c7bcad105e06459b7798e0dc |
|
BLAKE2b-256 | 03331780fe1bca3c75209f5b7179682360bb88356fe67ac46b54fa225eab2462 |