summaryrefslogtreecommitdiffstats
path: root/cmake/Coverity.cmake
diff options
context:
space:
mode:
authorJan Dalheimer <jan@dalheimer.de>2014-04-07 17:44:52 +0200
committerJan Dalheimer <jan@dalheimer.de>2014-04-07 17:44:52 +0200
commit3cd2b898e5bbf00d22647b2b114502c0a8076495 (patch)
treecff8e7bcd5c210c07011ffafaede79dc00b69082 /cmake/Coverity.cmake
parentdd7b6642a3b171734126b6b4a14236cfe6406fcf (diff)
parent17d4947b30f00a347d7fb8648040271e4b65f966 (diff)
downloadMultiMC-3cd2b898e5bbf00d22647b2b114502c0a8076495.tar
MultiMC-3cd2b898e5bbf00d22647b2b114502c0a8076495.tar.gz
MultiMC-3cd2b898e5bbf00d22647b2b114502c0a8076495.tar.lz
MultiMC-3cd2b898e5bbf00d22647b2b114502c0a8076495.tar.xz
MultiMC-3cd2b898e5bbf00d22647b2b114502c0a8076495.zip
Merge remote-tracking branch 'origin/develop' into feature_cmake_style
Conflicts: CMakeLists.txt
Diffstat (limited to 'cmake/Coverity.cmake')
-rw-r--r--cmake/Coverity.cmake35
1 files changed, 35 insertions, 0 deletions
diff --git a/cmake/Coverity.cmake b/cmake/Coverity.cmake
new file mode 100644
index 00000000..899d9852
--- /dev/null
+++ b/cmake/Coverity.cmake
@@ -0,0 +1,35 @@
+if(__COVERITY_CMAKE__)
+ return()
+endif()
+set(__COVERITY_CMAKE__ TRUE)
+
+include(GitFunctions)
+
+git_run(COMMAND config --get user.email DEFAULT "" OUTPUT_VAR GIT_EMAIL)
+git_run(COMMAND describe DEFAULT "" OUTPUT_VAR GIT_VERSION)
+
+set(MultiMC_COVERITY_TOKEN "" CACHE STRING "Coverity access token")
+set(MultiMC_COVERITY_EMAIL "${GIT_EMAIL}" CACHE STRING "Coverity email")
+
+set(MultiMC_COVERITY_TOOLS_DIR "${CMAKE_BINARY_DIR}/coverity_tools" CACHE PATH "Path to the coverity tools")
+
+find_program(CURL_EXECUTABLE NAMES curl PATHS /usr/bin)
+
+if(NOT CURL_EXECUTABLE STREQUAL "" AND NOT MultiMC_COVERITY_TOKEN STREQUAL "" AND NOT MultiMC_COVERITY_EMAIL STREQUAL "")
+ add_custom_target(coverity_configure
+ COMMAND ${MultiMC_COVERITY_TOOLS_DIR}/bin/cov-configure --comptype gcc --compiler ${CMAKE_C_COMPILER}
+ )
+ add_custom_target(coverity_create_tarball
+ COMMAND ${CMAKE_COMMAND} -E echo "Cleaning..." && ${CMAKE_MAKE_PROGRAM} clean
+ COMMAND ${CMAKE_COMMAND} -E echo "Building..." && ${MultiMC_COVERITY_TOOLS_DIR}/bin/cov-build --dir cov-int ${CMAKE_MAKE_PROGRAM} -j3
+ COMMAND ${CMAKE_COMMAND} -E echo "Creating tarball..." && ${CMAKE_COMMAND} -E tar cfz multimc_coverity.tgz cov-int/
+ COMMENT "Creating coverity build..."
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ )
+ add_custom_target(coverity_upload
+ COMMAND ${CURL_EXECUTABLE} --form project=02JanDal/MultiMC5 --form token=${MultiMC_COVERITY_TOKEN} --form email=${MultiMC_COVERITY_EMAIL} --form file=@multimc_coverity.tgz --form version=${MultiMC_GIT_COMMIT} --form description=${GIT_VERSION} http://scan5.coverity.com/cgi-bin/upload.py
+ DEPENDS coverity_create_tarball
+ COMMENT "Uploading to coverity..."
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ )
+endif()