From a3a608db3b35180ae91a6ebb800626de8c1d744a Mon Sep 17 00:00:00 2001 From: firewave Date: Sat, 30 Oct 2021 13:27:24 +0200 Subject: [PATCH 1/3] build UI dependencies before running clang-tidy --- cmake/clang_tidy.cmake | 6 ++++++ gui/CMakeLists.txt | 7 +++++-- tools/triage/CMakeLists.txt | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cmake/clang_tidy.cmake b/cmake/clang_tidy.cmake index 39389d6ae29..6c9986b0424 100644 --- a/cmake/clang_tidy.cmake +++ b/cmake/clang_tidy.cmake @@ -12,4 +12,10 @@ message(STATUS "RUN_CLANG_TIDY=${RUN_CLANG_TIDY}") if (RUN_CLANG_TIDY) # disable all compiler warnings since we are just interested in the tidy ones add_custom_target(run-clang-tidy ${RUN_CLANG_TIDY} -p=${CMAKE_BINARY_DIR} -j ${NPROC} -extra-arg=-w -quiet) + if (BUILD_GUI) + add_dependencies(run-clang-tidy gui-build-deps) + if (BUILD_TESTS) + add_dependencies(run-clang-tidy triage-build-ui-deps) + endif() + endif() endif() \ No newline at end of file diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt index 73921bb7b1b..8f88a996f6f 100644 --- a/gui/CMakeLists.txt +++ b/gui/CMakeLists.txt @@ -15,12 +15,15 @@ if (BUILD_GUI) QT5_WRAP_UI(uis_hdrs ${uis}) QT5_ADD_RESOURCES(resources "gui.qrc") QT5_ADD_TRANSLATION(qms ${tss}) - list(APPEND cppcheck-gui_SOURCES ${hdrs} ${srcs} ${uis_hdrs} ${resources} ${qms} $ $) + list(APPEND cppcheck-gui-deps ${hdrs} ${uis_hdrs} ${resources} ${qms} ) + add_custom_target(gui-build-deps SOURCES ${cppcheck-gui-deps}) + + list(APPEND cppcheck-gui_SOURCES ${srcs} $ $) if(USE_BUNDLED_TINYXML2) list(APPEND cppcheck-gui_SOURCES $) endif() - add_executable(cppcheck-gui ${cppcheck-gui_SOURCES}) + add_executable(cppcheck-gui ${cppcheck-gui-deps} ${cppcheck-gui_SOURCES}) set_target_properties(cppcheck-gui PROPERTIES AUTOMOC ON) target_include_directories(cppcheck-gui PRIVATE ${PROJECT_SOURCE_DIR}/lib/) if(USE_BUNDLED_TINYXML2) diff --git a/tools/triage/CMakeLists.txt b/tools/triage/CMakeLists.txt index ba0e5c875b0..0486d56d426 100644 --- a/tools/triage/CMakeLists.txt +++ b/tools/triage/CMakeLists.txt @@ -12,6 +12,7 @@ if (BUILD_GUI AND BUILD_TESTS) file(GLOB uis "*.ui") qt5_wrap_ui(uis_hdrs ${uis}) + add_custom_target(triage-build-ui-deps SOURCES ${hdrs} ${uis_hdrs}) add_executable( triage ${hdrs} From abdb7032baeffe32109352eef4a26709aef044a6 Mon Sep 17 00:00:00 2001 From: firewave Date: Sat, 30 Oct 2021 13:28:11 +0200 Subject: [PATCH 2/3] clang-tidy.yml: enabled GUI sources and build some dependencies for clang-tidy --- .github/workflows/clang-tidy.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/clang-tidy.yml b/.github/workflows/clang-tidy.yml index d87cdd1a7d3..ed7486a6edb 100644 --- a/.github/workflows/clang-tidy.yml +++ b/.github/workflows/clang-tidy.yml @@ -26,18 +26,18 @@ jobs: apt-get update apt-get install -y clang-tidy-13 - # uses "sudo" internally which is not available on docker by default - #- name: Install Qt - # uses: jurplel/install-qt-action@v2 - # with: - # modules: 'qtcharts' + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + install-deps: 'nosudo' + version: '5.15.2' + modules: 'qtcharts' - name: Prepare CMake run: | mkdir cmake.output cd cmake.output - # cannot include GUI since we need to generate the ui_*.h files first - cmake -G "Unix Makefiles" -DUSE_Z3=On -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=Off -DWITH_QCHART=Off .. + cmake -G "Unix Makefiles" -DUSE_Z3=On -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DBUILD_TESTS=On -DBUILD_GUI=On -DWITH_QCHART=On -DCMAKE_GLOBAL_AUTOGEN_TARGET=On .. cd .. - name: Clang-Tidy @@ -45,4 +45,5 @@ jobs: # make sure the precompiled headers exist make -C cmake.output lib/CMakeFiles/lib_objs.dir/cmake_pch.hxx.cxx make -C cmake.output test/CMakeFiles/testrunner.dir/cmake_pch.hxx.cxx + make -C cmake.output autogen cmake --build cmake.output --target run-clang-tidy 2> /dev/null From 54e52ae956aa6f7cd8ed41bbb6a1a3209e489998 Mon Sep 17 00:00:00 2001 From: firewave Date: Sun, 25 Apr 2021 11:33:12 +0200 Subject: [PATCH 3/3] work around missing dependency for Qt install step --- .github/workflows/clang-tidy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/clang-tidy.yml b/.github/workflows/clang-tidy.yml index ed7486a6edb..3cbb5effcfc 100644 --- a/.github/workflows/clang-tidy.yml +++ b/.github/workflows/clang-tidy.yml @@ -21,6 +21,7 @@ jobs: apt-get install -y cmake g++ make apt-get install -y z3 libz3-dev apt-get install -y libpcre3-dev + apt-get install -y libffi7 # work around missing dependency for Qt install step apt-get install -y software-properties-common add-apt-repository universe apt-get update