diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt index 2f93f0f..ca46b81 100644 --- a/sources/CMakeLists.txt +++ b/sources/CMakeLists.txt @@ -35,9 +35,6 @@ option(BUILD_RPM_PACKAGE "Build rpm package" OFF) # build details option(BUILD_FUTURE "Build with the features which will be marked as stable later" OFF) option(BUILD_TESTING "Build with additional test abilities" OFF) -# some additional targets -set(CLANGFORMAT_EXECUTABLE "/usr/bin/clang-format" CACHE STRING "Path to clang-format executable") -set(CPPCHECK_EXECUTABLE "/usr/bin/cppcheck" CACHE STRING "Path to cppcheck executable") # generate changelog set(PROJECT_CHANGELOG "Changelog" CACHE INTERNAL "") @@ -72,6 +69,7 @@ set(PROJECT_LIBRARY awesomewidgets) include(libraries.cmake) include(clang-format.cmake) include(cppcheck.cmake) +include(coverity.cmake) get_directory_property(CMAKE_DEFINITIONS COMPILE_DEFINITIONS) configure_file(${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) diff --git a/sources/clang-format.cmake b/sources/clang-format.cmake index 8484fba..2c42b28 100644 --- a/sources/clang-format.cmake +++ b/sources/clang-format.cmake @@ -1,4 +1,5 @@ # additional target to perform clang-format run, requires clang-format +set(CLANGFORMAT_EXECUTABLE "/usr/bin/clang-format" CACHE STRING "Path to clang-format executable") # get all project files file(GLOB_RECURSE ALL_SOURCE_FILES *.cpp *.h *.h.in) diff --git a/sources/coverity.cmake b/sources/coverity.cmake new file mode 100644 index 0000000..137060b --- /dev/null +++ b/sources/coverity.cmake @@ -0,0 +1,29 @@ +# additional target to perform cppcheck run, requires cppcheck +set(COVERITY_COMMENT "" CACHE STRING "Coverity build comment") +set(COVERITY_DIRECTORY "cov-int" CACHE STRING "Path to coverity integration directory") +set(COVERITY_EMAIL "" CACHE STRING "Coverity user email") +set(COVERITY_EXECUTABLE "cov-build" CACHE STRING "Path to coverity build tool") +set(COVERITY_TOKEN "" CACHE STRING "Coverity token") +set(COVERITY_URL "https://scan.coverity.com/builds?project=Awesome+Widgets" CACHE STRING "Coverity project url") +set(CURL_EXECUTABLE "/usr/bin/curl" CACHE STRING "Path to curl executable") + +add_custom_target( + coverity + COMMAND ${COVERITY_EXECUTABLE} + --dir ${COVERITY_DIRECTORY} + make + COMMAND zip + -r ${PROJECT_NAME}.zip + ${COVERITY_DIRECTORY} +) + +add_custom_target( + coverity-upload + COMMAND ${CURL_EXECUTABLE} + --form token=${COVERITY_TOKEN} + --form email=${COVERITY_EMAIL} + --form file=@${PROJECT_NAME}.zip + --form version=${PROJECT_VERSION}-${PROJECT_COMMIT_SHA} + --form description=${COVERITY_COMMENT} + ${COVERITY_URL} +) diff --git a/sources/cppcheck.cmake b/sources/cppcheck.cmake index ac2a844..47fd6c8 100644 --- a/sources/cppcheck.cmake +++ b/sources/cppcheck.cmake @@ -1,4 +1,5 @@ # additional target to perform cppcheck run, requires cppcheck +set(CPPCHECK_EXECUTABLE "/usr/bin/cppcheck" CACHE STRING "Path to cppcheck executable") # get all project files # HACK this workaround is required to avoid qml files checking ^_^