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_optionsadd_compile_definitionslink_librariesadd_definitionsinclude_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>_FLAGSThese properties should be set for a target - not modified globally
-
Closing commands with clauses
endifendfunctionendmacroendforeach
Example:
macro(foo ...) ... endmacro(foo) -
Set/unset including
ENVCACHE
-
../..intarget_sourcesfunction -
Set/unset
PARENT_SCOPEoutside 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|