diff cmake/IrccdOptions.cmake @ 510:6ec510722582

CMake: enable vera++ as code checking, closes #603
author David Demelier <markand@malikania.fr>
date Thu, 19 Oct 2017 13:01:39 +0200
parents 0b156b82b8c1
children 928a40398dec
line wrap: on
line diff
--- a/cmake/IrccdOptions.cmake	Mon Oct 16 13:47:05 2017 +0200
+++ b/cmake/IrccdOptions.cmake	Thu Oct 19 13:01:39 2017 +0200
@@ -29,6 +29,7 @@
 # WITH_MAN              Install manpages (default: on, off for Windows)
 # WITH_PKGCONFIG        Install pkg-config files (default: on, off for Windows (except MinGW))
 # WITH_PLUGIN_<NAME>    Enable or disable the specified plugin (default: on)
+# WITH_VERA             Enable style checking using vera (default: on)
 #
 # Note: the option() commands for WITH_PLUGIN_<name> variables are defined automatically from the IRCCD_PLUGINS
 # list.
@@ -79,6 +80,7 @@
 option(WITH_DOXYGEN "Enable doxygen" Off)
 option(WITH_MAN "Install man pages" ${DEFAULT_MAN})
 option(WITH_PKGCONFIG "Enable pkg-config file" ${DEFAULT_PKGCONFIG})
+option(WITH_VERA "Enable vera++" On)
 
 #
 # Installation paths.
@@ -164,6 +166,30 @@
     set(WITH_HTML FALSE)
 endif ()
 
+find_program(VERA_EXECUTABLE vera++)
+
+if (VERA_EXECUTABLE)
+    if (WITH_VERA)
+        execute_process(
+            COMMAND ${VERA_EXECUTABLE} --version
+            OUTPUT_VARIABLE VERA_VERSION
+        )
+
+        if (${VERA_VERSION} VERSION_LESS "1.3.0")
+            set(WITH_VERA Off)
+            set(WITH_VERA_MSG "No (1.3.0 or greater required)")
+        else ()
+            set(WITH_VERA_MSG "Yes")
+        endif ()
+    else ()
+        set(WITH_VERA Off)
+        set(WITH_VERA_MSG "No (disabled by user)")
+    endif ()
+else ()
+    set(WITH_VERA Off)
+    set(WITH_VERA_MSG "No (vera++ not found)")
+endif ()
+
 #
 # Determine if allowed to package.
 # -------------------------------------------------------------------