diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2dbbacf48871e644de50f35429056bb0355f5679..bbb0c2240d5f2db8ae37e57ac5fc652da76dad61 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -105,3 +105,86 @@ create_release: --ref "$CI_COMMIT_SHA" \ --job-token "$CI_JOB_TOKEN" \ --assets-link="{'name':'VirtualFluidsSingularityImage_OpenMPI','url':'','type':'other','filepath':'Containers/VirtualFluidsOpenMPI.sif'}" + - build/bin/basicsTests + + +############################################################################### +## ## +## Deploy: Code analysis ## +## ## +############################################################################### + +clangBuildAnalyzer: + stage: test + + rules: + - when: manual + + before_script: + - export DEBIAN_FRONTEND=noninteractive + - apt-get update + - cmake --version + - mpirun --version + - export CC=clang + - export CXX=clang++ + - $CXX --version + - cd /tmp + - git clone https://github.com/aras-p/ClangBuildAnalyzer.git + - cd ClangBuildAnalyzer + - cmake . + - make + - export PATH+=:$(pwd) + + script: + - mkdir $CI_PROJECT_DIR/build + - cd $CI_PROJECT_DIR/build + - cmake .. -DBUILD_VF_CPU=ON -DUSE_OPENMP=OFF -DCMAKE_CXX_FLAGS=-ftime-trace + - ClangBuildAnalyzer --start . + - make + - ClangBuildAnalyzer --stop . CBA + - ClangBuildAnalyzer --analyze CBA + + +include_what_you_use: + stage: test + + rules: + - when: manual + + before_script: + - export DEBIAN_FRONTEND=noninteractive + - apt-get update + - cd /tmp + - git clone https://github.com/include-what-you-use/include-what-you-use.git + - cd include-what-you-use + - git checkout clang_10 + - cmake . -DCMAKE_PREFIX_PATH=/usr/lib/llvm-10 + - make + - export PATH+=:$(pwd)/bin + + script: + - mkdir $CI_PROJECT_DIR/build + - cd $CI_PROJECT_DIR/build + - cmake .. -DBUILD_VF_CPU=ON -DUSE_OPENMP=OFF -DBUILD_VF_INCLUDE_WHAT_YOU_USE=ON + - make + + +cppcheck: + stage: test + + before_script: + - export DEBIAN_FRONTEND=noninteractive + - apt-get update + - apt-get install -y cppcheck + + script: + - cd $CI_PROJECT_DIR + - cppcheck --version + - cppcheck src --enable=all --xml 2> report.xml + - cppcheck-htmlreport --file=report.xml --report-dir=html_report --source-dir=. + + artifacts: + paths: + - html_report/ + + diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake index 14309caeb84668682f7ae013fead67b248f0e53c..6b7964dfda94853bbae5dad298895cfcbb58b50f 100644 --- a/CMake/VirtualFluidsMacros.cmake +++ b/CMake/VirtualFluidsMacros.cmake @@ -173,6 +173,21 @@ function(vf_add_library) status_lib("include-what-you-use enabled") endif() + # cppcheck + if(BUILD_VF_CPPCHECK) + find_program(CPPCHECK_PROGRAM NAMES cppcheck) + + if(NOT CPPCHECK_PROGRAM) + message(FATAL_ERROR "Could not find the program cppcheck") + endif() + + set_target_properties(${library_name} + PROPERTIES + CXX_CPPCHECK "${CPPCHECK_PROGRAM};--enable=all") + + status_lib("cppcheck enabled") + endif() + ################################################################# ### ADDITIONAL LINK LIBRARIES ### ################################################################# diff --git a/CMake/compilerflags/AppleClang.cmake b/CMake/compilerflags/AppleClang.cmake index 1887de8bf98ac6793cf8f6e2181d38db152ebfb9..aecc48fa5398c6418c2d47f5af243659128050bc 100644 --- a/CMake/compilerflags/AppleClang.cmake +++ b/CMake/compilerflags/AppleClang.cmake @@ -19,4 +19,4 @@ list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wall") list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wunreachable-code") list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-function") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-reorder-ctor") +list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-reorder") diff --git a/CMake/compilerflags/GNU.cmake b/CMake/compilerflags/GNU.cmake index 8f932429c9c8f43d25b9dcd238efcbc3ed7a5fe0..bd69600c60b89ddac120663de4716bf99528e87d 100644 --- a/CMake/compilerflags/GNU.cmake +++ b/CMake/compilerflags/GNU.cmake @@ -11,8 +11,10 @@ list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "-O3") # optimizat # all list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fPIC") # position independent code for shared libraries -LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-funroll-all-loops") +if(NOT BUILD_VF_INCLUDE_WHAT_YOU_USE) # optimization flag '-funroll-all-loops' is not supported for IWYU + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-funroll-all-loops") +endif() ############################################################################################################# # warnings diff --git a/CMakeLists.txt b/CMakeLists.txt index f6176bae09f384c35a01a025e3f0f5fc6ffc0858..e1540fd0a319739662cc2f50013da4f8975257c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,7 @@ option(BUILD_VF_GPU "Build VirtualFluids gpu variant" OFF) option(BUILD_VF_UNIT_TESTS "Build VirtualFluids unit tests" OFF) option(BUILD_VF_CLANG_TIDY "Add the clang tidy checks to the targets" OFF) option(BUILD_VF_INCLUDE_WHAT_YOU_USE "Add IWYU to the targets" OFF) +option(BUILD_VF_CPPCHECK "Add cppcheck to the targets" OFF) option(BUILD_SHARED_LIBS "" ON) diff --git a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h index b3de5c873ecb361049e25ec05e0660cf29d1dc30..627549dc991f31b543ca23e4c87e8520feb84af3 100644 --- a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h +++ b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h @@ -1,10 +1,9 @@ -#ifndef D3Q27INTRPOLATIOPROCESSOR_H_ -#define D3Q27INTRPOLATIOPROCESSOR_H_ +#ifndef INTERPOLATIONPROCESSOR_H +#define INTERPOLATIONPROCESSOR_H #include "BCArray3D.h" #include "BoundaryConditions.h" #include "DistributionArray3D.h" -#include "InterpolationProcessor.h" #include "LBMSystem.h" struct D3Q27ICell {