diff --git a/CMakeLists.txt b/CMakeLists.txt
index 16a82546da8a04a714955ab224227f38262a39c4..d8d73d7e6405b6a83a50419f8b0db4e8a44e0811 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -162,6 +162,23 @@ else ()
   message(WARNING "clang-format no found!")
 endif()
 
+#------------------------------------------------------
+# search for clang-format
+
+find_program(CLAZY_STANDALONE clazy-standalone)
+if (CLAZY_STANDALONE)
+  add_custom_target(clazy-standalone
+    COMMAND ${CMAKE_COMMAND}
+    -DPUGS_SOURCE_DIR="${PUGS_SOURCE_DIR}"
+    -DPUGS_BINARY_DIR="${PUGS_BINARY_DIR}"
+    -DCLAZY_STANDALONE="${CLAZY_STANDALONE}"
+    -P ${PUGS_SOURCE_DIR}/cmake/ClazyStandaloneProcess.cmake
+    COMMENT "running ${CLAZY_STANDALONE} ..."
+    )
+else ()
+  message(WARNING "clazy-standalone no found!")
+endif()
+
 #------------------------------------------------------
 # C++ 17 flags
 if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
diff --git a/cmake/ClazyStandaloneProcess.cmake b/cmake/ClazyStandaloneProcess.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..45582a54e82da2f9b2cf32b0c658bfc054381a2c
--- /dev/null
+++ b/cmake/ClazyStandaloneProcess.cmake
@@ -0,0 +1,41 @@
+# --------------- runs clazy-standalone  ---------------
+
+if(PUGS_SOURCE_DIR AND CLAZY_STANDALONE)
+  # get C++ sources file list (ignoring packages)
+  file(GLOB_RECURSE ALL_SOURCE_FILES
+    ${PUGS_SOURCE_DIR}/src/**.[hc]pp
+    ${PUGS_SOURCE_DIR}/tests/**.[hc]pp)
+
+  # checks if VERBOSE was set
+  set(ECHO_CMD_TO "NONE")
+  if (DEFINED ENV{VERBOSE})
+    set(ECHO_CMD_TO "STDOUT")
+  endif()
+
+  # Trick to continue on error using make
+  if(DEFINED ENV{MAKEFLAGS})
+    string(FIND $ENV{MAKEFLAGS} "k" K_POSITION)
+    if (NOT(${K_POSITION} EQUAL "-1"))
+      set (CONTINUE_ON_ERROR "continue")
+    endif()
+  endif()
+
+  # apply style to the file list
+  foreach(SOURCE_FILE ${ALL_SOURCE_FILES})
+    string(REGEX REPLACE "^${PUGS_SOURCE_DIR}/" "" BASE_SOURCE_FILE "${SOURCE_FILE}")
+    execute_process(
+      COMMAND "${CMAKE_COMMAND}" -E env CLICOLOR_FORCE=1
+      "${CMAKE_COMMAND}" -E cmake_echo_color --green "Running clazy-standalone on ${BASE_SOURCE_FILE}")
+
+    execute_process(
+      COMMAND "${CLAZY_STANDALONE}" "-p=${PUGS_BINARY_DIR}" "${SOURCE_FILE}"
+      COMMAND_ECHO ${ECHO_CMD_TO}
+      RESULT_VARIABLE clazy_result)
+
+    if (NOT DEFINED CONTINUE_ON_ERROR)
+      if (NOT (${clazy_result} EQUAL "0"))
+	message(FATAL_ERROR)
+      endif()
+    endif()
+  endforeach()
+endif()