mirror of
https://github.com/ttroy50/cmake-examples.git
synced 2025-12-18 12:14:36 +03:00
Update toc and headings #3
This commit is contained in:
@@ -1,13 +1,10 @@
|
|||||||
= CppCheck Static Analysis
|
= CppCheck Static Analysis
|
||||||
|
|
||||||
:toc:
|
:toc:
|
||||||
:toc-placement!:
|
:toc-placement!:
|
||||||
|
|
||||||
toc::[]
|
toc::[]
|
||||||
|
|
||||||
[[intro]]
|
# Introduction
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
This example shows how to call the
|
This example shows how to call the
|
||||||
http://cppcheck.sourceforge.net/[CppCheck] tool to do static analysis.
|
http://cppcheck.sourceforge.net/[CppCheck] tool to do static analysis.
|
||||||
@@ -45,9 +42,7 @@ cppcheck$ tree
|
|||||||
* subproject2/CMakeLists.txt - CMake commands for subproject 2
|
* subproject2/CMakeLists.txt - CMake commands for subproject 2
|
||||||
* subproject2/main2.cpp - source for a subproject that includes errors
|
* subproject2/main2.cpp - source for a subproject that includes errors
|
||||||
|
|
||||||
[[requirements]]
|
# Requirements
|
||||||
Requirements
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
To run this example you must have the CppCheck utility installed. On
|
To run this example you must have the CppCheck utility installed. On
|
||||||
Ubuntu you can install it as
|
Ubuntu you can install it as
|
||||||
@@ -57,20 +52,14 @@ Ubuntu you can install it as
|
|||||||
$ sudo apt-get install cppcheck
|
$ sudo apt-get install cppcheck
|
||||||
----
|
----
|
||||||
|
|
||||||
[[concepts]]
|
# Concepts
|
||||||
Concepts
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
[[adding-custom-package-modules]]
|
## Adding Custom Package Modules
|
||||||
Adding Custom Package Modules
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Custom modules can be used to find programs, libraries and header files
|
Custom modules can be used to find programs, libraries and header files
|
||||||
to include in your program.
|
to include in your program.
|
||||||
|
|
||||||
[[adding-a-custom-module]]
|
### Adding a custom module
|
||||||
Adding a custom module
|
|
||||||
++++++++++++++++++++++
|
|
||||||
|
|
||||||
The `cmake/modules/FindCppCheck.cmake` file contains the code to initialise a
|
The `cmake/modules/FindCppCheck.cmake` file contains the code to initialise a
|
||||||
custom package module.
|
custom package module.
|
||||||
@@ -114,9 +103,7 @@ Export the variables so that they can be seen from ccmake / cmake-gui
|
|||||||
and set in the cache. By default these will not be visible unless the
|
and set in the cache. By default these will not be visible unless the
|
||||||
view advanced flag is set.
|
view advanced flag is set.
|
||||||
|
|
||||||
[[setting-path-to-custom-modules]]
|
### Setting path to custom modules
|
||||||
Setting path to custom modules
|
|
||||||
++++++++++++++++++++++++++++++
|
|
||||||
|
|
||||||
The default path that CMake will search for modules is `/usr/share/cmake/Modules`.
|
The default path that CMake will search for modules is `/usr/share/cmake/Modules`.
|
||||||
To include custom modules you must tell CMake where to search for them.
|
To include custom modules you must tell CMake where to search for them.
|
||||||
@@ -137,9 +124,7 @@ To then add the package module to your CMakeLists.txt you can call
|
|||||||
find_package(CppCheck)
|
find_package(CppCheck)
|
||||||
----
|
----
|
||||||
|
|
||||||
[[parent-scope-variables]]
|
## Parent Scope Variables
|
||||||
Parent Scope Variables
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The scope of variables when they are declared / changed is typically in
|
The scope of variables when they are declared / changed is typically in
|
||||||
the function of file the are called. To make a change to a variable
|
the function of file the are called. To make a change to a variable
|
||||||
@@ -150,9 +135,7 @@ which is the caller of your scope, you should call it as follows:
|
|||||||
set(ALL_ANALYSIS_TARGETS "${ALL_ANALYSIS_TARGETS}" PARENT_SCOPE)
|
set(ALL_ANALYSIS_TARGETS "${ALL_ANALYSIS_TARGETS}" PARENT_SCOPE)
|
||||||
----
|
----
|
||||||
|
|
||||||
[[add_analysis-macro]]
|
## add_analysis macro
|
||||||
add_analysis macro
|
|
||||||
^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The +add_analysis()+ macro in `cmake/analysis.cmake` is the core idea for this
|
The +add_analysis()+ macro in `cmake/analysis.cmake` is the core idea for this
|
||||||
example. If cppcheck is available then a list of arguments are compiled
|
example. If cppcheck is available then a list of arguments are compiled
|
||||||
@@ -228,9 +211,7 @@ include(${CMAKE_SOURCE_DIR}/cmake/analysis.cmake)
|
|||||||
add_analysis(${PROJECT_NAME} SOURCES)
|
add_analysis(${PROJECT_NAME} SOURCES)
|
||||||
----
|
----
|
||||||
|
|
||||||
[[creating-a-target-to-call-other-targets]]
|
## Creating a target to call other targets
|
||||||
Creating a target to call other targets
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
In the top level CMakeLists.txt a custom target is created, which will call
|
In the top level CMakeLists.txt a custom target is created, which will call
|
||||||
all other analysis targets. This allows you to call `make analysis` and
|
all other analysis targets. This allows you to call `make analysis` and
|
||||||
@@ -260,9 +241,7 @@ endif()
|
|||||||
|
|
||||||
This adds the "make analysis" target which calls all the sub-targets.
|
This adds the "make analysis" target which calls all the sub-targets.
|
||||||
|
|
||||||
[[building-the-example]]
|
# Building the example
|
||||||
Building the example
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
[source,bash]
|
[source,bash]
|
||||||
----
|
----
|
||||||
@@ -337,9 +316,7 @@ make[1]: *** [CMakeFiles/analysis.dir/rule] Error 2
|
|||||||
make: *** [analysis] Error 2
|
make: *** [analysis] Error 2
|
||||||
----
|
----
|
||||||
|
|
||||||
[[extra-notes]]
|
# Extra Notes
|
||||||
Extra Notes
|
|
||||||
~~~~~~~~~~~
|
|
||||||
|
|
||||||
If you have a multiple folders levels, where one folder just points to
|
If you have a multiple folders levels, where one folder just points to
|
||||||
sub folders, such as below:
|
sub folders, such as below:
|
||||||
|
|||||||
Reference in New Issue
Block a user