From 67adf3b32a4c77e1fe2aa619687514ee4de52253 Mon Sep 17 00:00:00 2001 From: firewave Date: Tue, 12 Apr 2022 12:43:58 +0200 Subject: [PATCH 1/3] moved `xmllint` lookup to findDependencies.cmake --- CMakeLists.txt | 1 - cmake/findDependencies.cmake | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a65938d2d57..319aefe2ca0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,6 @@ file(GLOB addons "addons/*.py") file(GLOB cfgs "cfg/*.cfg") file(GLOB platforms "platforms/*.xml") -find_program(LIBXML2_XMLLINT_EXECUTABLE xmllint) if (LIBXML2_XMLLINT_EXECUTABLE) add_custom_target(validateCFG ${LIBXML2_XMLLINT_EXECUTABLE} --noout ${CMAKE_SOURCE_DIR}/cfg/cppcheck-cfg.rng) foreach(cfg ${cfgs}) diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake index 918f3d5a5d3..f1acaf1ae09 100644 --- a/cmake/findDependencies.cmake +++ b/cmake/findDependencies.cmake @@ -52,3 +52,5 @@ endif() if (USE_BOOST) find_package(Boost COMPONENTS container QUIET) endif() + +find_program(LIBXML2_XMLLINT_EXECUTABLE xmllint) From 97faeca10092f78d5a936b66c145e8bdfc058ae5 Mon Sep 17 00:00:00 2001 From: firewave Date: Tue, 12 Apr 2022 12:44:16 +0200 Subject: [PATCH 2/3] findDependencies.cmake: always perform Python interpreter lookup --- cmake/findDependencies.cmake | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake index f1acaf1ae09..49a7c0ee27e 100644 --- a/cmake/findDependencies.cmake +++ b/cmake/findDependencies.cmake @@ -19,15 +19,13 @@ endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) -if (NOT USE_MATCHCOMPILER_OPT MATCHES "Off") - find_package(PythonInterp 3 QUIET) +find_package(PythonInterp 3 QUIET) +if (NOT PYTHONINTERP_FOUND) + set(PYTHONINTERP_FOUND "") + find_package(PythonInterp 2.7 QUIET) if (NOT PYTHONINTERP_FOUND) - set(PYTHONINTERP_FOUND "") - find_package(PythonInterp 2.7 QUIET) - if (NOT PYTHONINTERP_FOUND) - message(WARNING "No python interpreter found. Therefore, the match compiler is switched off.") - set(USE_MATCHCOMPILER_OPT "Off") - endif() + message(WARNING "No python interpreter found. Therefore, the match compiler is switched off.") + set(USE_MATCHCOMPILER_OPT "Off") endif() endif() From f1cfeaa1bac7d43ca543c7c7a7cd59e873fd5728 Mon Sep 17 00:00:00 2001 From: firewave Date: Tue, 12 Apr 2022 12:44:56 +0200 Subject: [PATCH 3/3] added make targets `checkCWEEntries`, `validateXML` and `validateRules` to CMake --- CMakeLists.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 319aefe2ca0..edc824ad7dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,27 @@ if (LIBXML2_XMLLINT_EXECUTABLE) add_custom_target(validateCFG-${cfgname} ${LIBXML2_XMLLINT_EXECUTABLE} --noout --relaxng ${CMAKE_SOURCE_DIR}/cfg/cppcheck-cfg.rng ${cfg}) add_dependencies(validateCFG validateCFG-${cfgname}) endforeach() + + add_custom_target(errorlist-xml $ --errorlist > ${CMAKE_BINARY_DIR}/errorlist.xml + DEPENDS cppcheck) + + add_custom_target(example-xml $ --xml --enable=all --inconclusive --max-configs=1 ${CMAKE_SOURCE_DIR}/samples 2> ${CMAKE_BINARY_DIR}/example.xml + DEPENDS cppcheck) + + add_custom_target(createXMLExamples DEPENDS errorlist-xml example-xml) + + if (PYTHON_EXECUTABLE) + add_custom_target(checkCWEEntries ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/listErrorsWithoutCWE.py -F ${CMAKE_BINARY_DIR}/errorlist.xml + DEPENDS errorlist-xml) + endif() + + add_custom_target(validateXML ${LIBXML2_XMLLINT_EXECUTABLE} --noout ${CMAKE_SOURCE_DIR}/cppcheck-errors.rng + COMMAND ${LIBXML2_XMLLINT_EXECUTABLE} --noout --relaxng ${CMAKE_SOURCE_DIR}/cppcheck-errors.rng ${CMAKE_BINARY_DIR}/errorlist.xml + COMMAND ${LIBXML2_XMLLINT_EXECUTABLE} --noout --relaxng ${CMAKE_SOURCE_DIR}/cppcheck-errors.rng ${CMAKE_BINARY_DIR}/example.xml + DEPENDS createXMLExamples + ) + + add_custom_target(validateRules ${LIBXML2_XMLLINT_EXECUTABLE} --noout ${CMAKE_SOURCE_DIR}/rules/*.xml) endif() if (BUILD_TESTS)