-
Notifications
You must be signed in to change notification settings - Fork 1
[ci][cmake] Add clean code ci #55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
2d9d7d8
a5b00a9
69dc003
3e1324b
09c747a
95a931c
0844d9c
b4c9aa4
ad53305
79d24f1
c8c71a0
9422034
ef988d5
66b57df
4615988
239d940
a826cff
a0e5a09
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
|
|
||
| name: Clean code | ||
|
|
||
| defaults: | ||
| run: | ||
| shell: bash | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: [ main ] | ||
| push: | ||
| branches: [ main ] | ||
|
|
||
| env: | ||
| BUILD_TYPE: Release | ||
|
|
||
| jobs: | ||
|
|
||
| cppCheck: | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install cppCheck | ||
| run: sudo apt install -y cppcheck | ||
|
|
||
| - name: Configure CMake | ||
| run: cmake -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | ||
|
|
||
| - name: CppCheck | ||
| run: | ||
| cppcheck --version | ||
| && cmake --build ${{github.workspace}}/build --target hub-cppCheck | ||
|
|
||
|
|
||
| doxygen: | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: ssciwr/doxygen-install@v1.3.0 | ||
|
|
||
| - name: Configure CMake | ||
| run: cmake -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DHUB_BUILD_DOC=ON | ||
|
|
||
| - name: Doxygen | ||
| run: | ||
| doxygen --version && | ||
| cmake --build ${{github.workspace}}/build --target hub-doc-doxygen | ||
|
|
||
|
|
||
| format: | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install clang-format | ||
| run: | ||
| sudo apt install -y clang-format | ||
| && clang-format --version | ||
|
|
||
| - name: Install cmake-format | ||
| run: | ||
| sudo apt install -y cmake-format | ||
| && echo "cmake-format version $(cmake-format --version)" | ||
|
|
||
| - name: Configure CMake | ||
| run: cmake -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | ||
|
|
||
| # todo please uncomment these above lines when project was fully formated | ||
| # - name: Format | ||
| # run: cmake --build ${{github.workspace}}/build --target hub-format | ||
| # && git diff --exit-code | ||
|
|
||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this file coming from another project ?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In Findcppcheck.cmake line 20-28 :
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Seems compatible with MPL
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization The copyright notices in the Software and this entire statement, including THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,168 @@ | ||
| # - try to find cppcheck tool | ||
| # | ||
| # Cache Variables: | ||
| # CPPCHECK_EXECUTABLE | ||
| # | ||
| # Non-cache variables you might use in your CMakeLists.txt: | ||
| # CPPCHECK_FOUND | ||
| # CPPCHECK_UNUSEDFUNC_ARG | ||
| # CPPCHECK_STYLE_ARG | ||
| # CPPCHECK_QUIET_ARG | ||
| # CPPCHECK_INCLUDEPATH_ARG | ||
| # CPPCHECK_FAIL_REGULAR_EXPRESSION | ||
| # CPPCHECK_WARN_REGULAR_EXPRESSION | ||
| # CPPCHECK_MARK_AS_ADVANCED - whether to mark our vars as advanced even | ||
| # if we don't find this program. | ||
| # | ||
| # Requires these CMake modules: | ||
| # FindPackageHandleStandardArgs (known included with CMake >=2.6.2) | ||
| # | ||
| # Original Author: | ||
| # 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net> | ||
| # http://academic.cleardefinition.com | ||
| # Iowa State University HCI Graduate Program/VRAC | ||
| # | ||
| # Copyright Iowa State University 2009-2010. | ||
| # Distributed under the Boost Software License, Version 1.0. | ||
| # (See accompanying file LICENSE_1_0.txt or copy at | ||
| # https://www.boost.org/LICENSE_1_0.txt) | ||
|
|
||
| file(TO_CMAKE_PATH "${CPPCHECK_ROOT_DIR}" CPPCHECK_ROOT_DIR) | ||
| set(CPPCHECK_ROOT_DIR | ||
| "${CPPCHECK_ROOT_DIR}" | ||
| CACHE PATH "Path to search for cppcheck") | ||
| mark_as_advanced(CPPCHECK_ROOT_DIR) | ||
|
|
||
| # cppcheck app bundles on Mac OS X are GUI, we want command line only | ||
| set(_oldappbundlesetting ${CMAKE_FIND_APPBUNDLE}) | ||
| set(CMAKE_FIND_APPBUNDLE NEVER) | ||
|
|
||
| # If we have a custom path, look there first. | ||
| if(CPPCHECK_ROOT_DIR) | ||
| find_program( | ||
| CPPCHECK_EXECUTABLE | ||
| NAMES cppcheck cli | ||
| PATHS "${CPPCHECK_ROOT_DIR}" | ||
| PATH_SUFFIXES cli | ||
| NO_DEFAULT_PATH) | ||
| endif() | ||
|
|
||
| find_program(CPPCHECK_EXECUTABLE NAMES cppcheck) | ||
|
|
||
| # Restore original setting for appbundle finding | ||
| set(CMAKE_FIND_APPBUNDLE ${_oldappbundlesetting}) | ||
|
|
||
| if(CPPCHECK_EXECUTABLE) | ||
| # Find out where our test file is | ||
| get_filename_component(_cppcheckmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) | ||
| set(_cppcheckdummyfile "${_cppcheckmoddir}/Findcppcheck.cpp") | ||
|
|
||
| # common to all version of cppcheck | ||
| set(CPPCHECK_QUIET_ARG --quiet) | ||
| set(CPPCHECK_FORCE_ARG --force) | ||
| set(CPPCHECK_VERBOSE_ARG --verbose) | ||
| set(CPPCHECK_INCLUDEPATH_ARG -I) | ||
| set(CPPCHECK_DEFINITION_ARG -D) | ||
| set(CPPCHECK_ALL_ARG --enable=all) | ||
|
|
||
| # Check for the two types of command line arguments by just trying them | ||
| execute_process( | ||
| COMMAND ${CPPCHECK_EXECUTABLE} --enable=style ${CPPCHECK_QUIET_ARG} ${_cppcheckdummyfile} | ||
| RESULT_VARIABLE _cppcheck_enable_style_result | ||
| OUTPUT_QUIET ERROR_QUIET) | ||
|
|
||
| if("${_cppcheck_enable_style_result}" EQUAL 0) | ||
|
|
||
| set(CPPCHECK_STYLE_ARG --enable=style) | ||
|
|
||
| # How to display errors and warnings: | ||
| if(MSVC) | ||
| set(CPPCHECK_TEMPLATE_ARG --template vs) | ||
| set(CPPCHECK_FAIL_REGULAR_EXPRESSION "[(]error[)]") | ||
| set(CPPCHECK_WARN_REGULAR_EXPRESSION "[(]style[)]") | ||
| else() | ||
| ## This is about the IDE, not the compiler for formatting support. Many IDE's | ||
| ## support the gcc style error messages. | ||
| set(CPPCHECK_TEMPLATE_ARG --template gcc) | ||
| set(CPPCHECK_FAIL_REGULAR_EXPRESSION " error: ") | ||
| set(CPPCHECK_WARN_REGULAR_EXPRESSION " style: ") | ||
| endif() | ||
|
|
||
| else() | ||
| message("This file supports only version of cppcheck is newer than 1.43!") | ||
|
|
||
| endif() | ||
|
|
||
| execute_process( | ||
| COMMAND ${CPPCHECK_EXECUTABLE} --enable=unusedFunctions ${CPPCHECK_QUIET_ARG} ${_cppcheckdummyfile} | ||
| RESULT_VARIABLE _cppcheck_enable_unused_functions_results | ||
| OUTPUT_QUIET ERROR_QUIET) | ||
|
|
||
| if("${_cppcheck_enable_unused_functions_results}" EQUAL 0) | ||
| set(CPPCHECK_UNUSEDFUNC_ARG --enable=unusedFunctions) | ||
| else() | ||
| execute_process( | ||
| COMMAND ${CPPCHECK_EXECUTABLE} --enable=unusedFunction ${CPPCHECK_QUIET_ARG} ${_cppcheckdummyfile} | ||
| RESULT_VARIABLE _cppcheck_enable_unused_function_results | ||
| OUTPUT_QUIET ERROR_QUIET) | ||
|
|
||
| if("${_cppcheck_enable_unused_function_results}" EQUAL 0) | ||
| set(CPPCHECK_UNUSEDFUNC_ARG --enable=unusedFunction) | ||
| else() | ||
| set(CPPCHECK_UNUSEDFUNC_ARG) | ||
| endif() | ||
|
|
||
| endif() | ||
|
|
||
| execute_process( | ||
| COMMAND ${CPPCHECK_EXECUTABLE} --enable=information ${CPPCHECK_QUIET_ARG} ${_cppcheckdummyfile} | ||
| RESULT_VARIABLE _cppcheck_enable_information_results | ||
| OUTPUT_QUIET ERROR_QUIET) | ||
|
|
||
| if("${_cppcheck_enable_information_results}" EQUAL 0) | ||
| # supported since | ||
| set(CPPCHECK_INFORMATION_ARG --enable=information) | ||
| else() | ||
| set(CPPCHECK_INFORMATION_ARG) | ||
| endif() | ||
|
|
||
| execute_process( | ||
| COMMAND ${CPPCHECK_EXECUTABLE} --enable=missingInclude ${CPPCHECK_QUIET_ARG} ${_cppcheckdummyfile} | ||
| RESULT_VARIABLE _cppcheck_missingInclude_results | ||
| OUTPUT_QUIET ERROR_QUIET) | ||
|
|
||
| if("${_cppcheck_missingInclude_results}" EQUAL 0) | ||
| # supported since | ||
| set(CPPCHECK_MISSING_INCLUDE_ARG --enable=missingInclude) | ||
| else() | ||
| set(CPPCHECK_MISSING_INCLUDE_ARG) | ||
| endif() | ||
|
|
||
| endif() | ||
|
|
||
| set(CPPCHECK_ALL | ||
| "${CPPCHECK_EXECUTABLE} ${CPPCHECK_POSSIBLEERROR_ARG} ${CPPCHECK_UNUSEDFUNC_ARG} ${CPPCHECK_STYLE_ARG} ${CPPCHECK_QUIET_ARG} ${CPPCHECK_INCLUDEPATH_ARG} some/include/path" | ||
| ) | ||
|
|
||
| include(FindPackageHandleStandardArgs) | ||
| find_package_handle_standard_args( | ||
| cppcheck | ||
| DEFAULT_MSG | ||
| CPPCHECK_ALL | ||
| CPPCHECK_EXECUTABLE | ||
| CPPCHECK_UNUSEDFUNC_ARG | ||
| CPPCHECK_STYLE_ARG | ||
| CPPCHECK_INFORMATION_ARG | ||
| CPPCHECK_MISSING_INCLUDE_ARG | ||
| CPPCHECK_ALL_ARG | ||
| CPPCHECK_INCLUDEPATH_ARG | ||
| CPPCHECK_DEFINITION_ARG | ||
| CPPCHECK_QUIET_ARG | ||
| CPPCHECK_FORCE_ARG | ||
| CPPCHECK_VERBOSE_ARG) | ||
|
|
||
| if(CPPCHECK_FOUND OR CPPCHECK_MARK_AS_ADVANCED) | ||
| mark_as_advanced(CPPCHECK_ROOT_DIR) | ||
| endif() | ||
|
|
||
| mark_as_advanced(CPPCHECK_EXECUTABLE) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| /** | ||
| * \file Findcppcheck.cpp | ||
| * \brief Dummy C++ source file used by CMake module Findcppcheck.cmake | ||
| * | ||
| * \author | ||
| * Ryan Pavlik, 2009-2010 | ||
| * <rpavlik@iastate.edu> | ||
| * http://academic.cleardefinition.com/ | ||
| * | ||
| */ | ||
|
|
||
|
|
||
|
|
||
| int main(int argc, char* argv[]) | ||
| { | ||
| return 0; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still needed ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needed when #27 pushing