annotate cmake/function/IrccdVeraCheck.cmake @ 601:48c6a1167245

CMake: give FindThreads a try
author David Demelier <markand@malikania.fr>
date Wed, 06 Dec 2017 21:47:11 +0100
parents 2c3122f23a04
children 27587ff92a64
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
510
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # IrccdVeraCheck.cmake -- CMake build system for irccd
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 # irccd_vera_check
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 # ----------------
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 # irccd_vera_check(target sources)
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 # Check the style source code using vera++.
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #
513
928a40398dec CMake: split options and conditions, closes #716
David Demelier <markand@malikania.fr>
parents: 510
diff changeset
27 # No-op if HAVE_VERA is Off.
510
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 # This macro add a post-build command to call vera++ program on the specified
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 # sources file for the given target.
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 #
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 function(irccd_vera_check target sources)
513
928a40398dec CMake: split options and conditions, closes #716
David Demelier <markand@malikania.fr>
parents: 510
diff changeset
34 if (HAVE_VERA)
510
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 set(valid ".cpp;.c;.hpp;.h")
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 # Cleanup non relevant files.
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 foreach (s ${sources})
584
2c3122f23a04 Misc: pet vera
David Demelier <markand@malikania.fr>
parents: 548
diff changeset
39 get_filename_component(s ${s} ABSOLUTE)
510
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 get_filename_component(ext ${s} EXT)
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 foreach (e ${valid})
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 if (${ext} STREQUAL ${e})
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 list(APPEND newsources ${s})
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 endif ()
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 endforeach ()
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 endforeach ()
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 add_custom_command(
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 TARGET ${target}
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 COMMAND
548
a7c0eb100760 CMake: import vera++ 1.3.0, closes #729
David Demelier <markand@malikania.fr>
parents: 513
diff changeset
52 $<TARGET_FILE:vera> -w --root ${CMAKE_SOURCE_DIR}/vera ${newsources}
510
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 VERBATIM
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 )
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 endif ()
6ec510722582 CMake: enable vera++ as code checking, closes #603
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 endfunction()