From c9fce821ee4af29e28e23ac02eba61a4db6525af Mon Sep 17 00:00:00 2001 From: miqlas <5569059+extrowerk@users.noreply.github.com> Date: Mon, 9 Apr 2018 18:24:54 +0200 Subject: [PATCH] Cppcheck 1.83 (#2422) * CPPCheck: new recipe * Cleanup --- dev-util/cppcheck/cppcheck-1.83.recipe | 69 +++++++++++++++++ .../cppcheck/patches/cppcheck-1.83.patchset | 76 +++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 dev-util/cppcheck/cppcheck-1.83.recipe create mode 100644 dev-util/cppcheck/patches/cppcheck-1.83.patchset diff --git a/dev-util/cppcheck/cppcheck-1.83.recipe b/dev-util/cppcheck/cppcheck-1.83.recipe new file mode 100644 index 000000000..251545502 --- /dev/null +++ b/dev-util/cppcheck/cppcheck-1.83.recipe @@ -0,0 +1,69 @@ +SUMMARY="A static analysis tool for C/C++ code" +DESCRIPTION="Cppcheck provides unique code analysis to detect bugs and focuses on \ +detecting undefined behaviour and dangerous coding constructs. The goal is \ +to detect only real errors in the code (i.e. have very few false positives). + +Features: +* Unique code analysis that detect various kinds of bugs in your code. +* Both command line interface and graphical user interface are available. +* Cppcheck has a strong focus on detecting undefined behaviour." +HOMEPAGE="http://cppcheck.sourceforge.net/" +COPYRIGHT="2007-2018 Cppcheck team" +LICENSE="GNU GPL v3" +REVISION="1" +SOURCE_URI="https://github.com/danmar/cppcheck/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="7d3656762beee8087e234a796c900c84b004ac241301106b6a2c01ef2beff095" +PATCHES="cppcheck-$portVersion.patchset" + +ARCHITECTURES="!x86_gcc2 ?x86 x86_64" +SECONDARY_ARCHITECTURES="?x86" + +PROVIDES=" + cppcheck$secondaryArchSuffix = $portVersion + cmd:cppcheck$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libpcre$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libpcre$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +defineDebugInfoPackage cppcheck$secondaryArchSuffix \ + $binDir/cppcheck + +BUILD() +{ + mkdir -p build + cd build + cmake .. \ + -DUSE_CLANG=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTS=ON \ + -DHAVE_RULES=ON \ + $cmakeDirArgs + + make $jobArgs +} + +INSTALL() +{ + cd build + make install +} + +TEST() +{ + cd build + make test +} diff --git a/dev-util/cppcheck/patches/cppcheck-1.83.patchset b/dev-util/cppcheck/patches/cppcheck-1.83.patchset new file mode 100644 index 000000000..cfc06cc2f --- /dev/null +++ b/dev-util/cppcheck/patches/cppcheck-1.83.patchset @@ -0,0 +1,76 @@ +From b4973d8327b89e44c43fc696f5454821c0a665f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Thu, 5 Apr 2018 17:55:26 +0200 +Subject: Haiku patches + + +diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp +index bfaa398..8a3cd8c 100644 +--- a/cli/cppcheckexecutor.cpp ++++ b/cli/cppcheckexecutor.cpp +@@ -52,7 +52,7 @@ + # include + + # undef _XOPEN_SOURCE +-#elif !defined(__OpenBSD__) ++#elif !defined(__OpenBSD__) && !defined(__HAIKU__) + # include + #endif + #ifdef __linux__ +diff --git a/cli/filelister.cpp b/cli/filelister.cpp +index ff2112b..86dfa0e 100644 +--- a/cli/filelister.cpp ++++ b/cli/filelister.cpp +@@ -204,6 +204,7 @@ static void addFiles2(std::map &files, + + new_path = path + '/' + dir_result->d_name; + ++#ifndef __HAIKU__ + if (dir_result->d_type == DT_DIR || (dir_result->d_type == DT_UNKNOWN && FileLister::isDirectory(new_path))) { + if (recursive && !ignored.match(new_path)) { + addFiles2(files, new_path, extra, recursive, ignored); +@@ -213,6 +214,7 @@ static void addFiles2(std::map &files, + files[new_path] = file_stat.st_size; + } + } ++#endif + } + closedir(dir); + } else +diff --git a/cli/threadexecutor.cpp b/cli/threadexecutor.cpp +index bc73870..fea5e25 100644 +--- a/cli/threadexecutor.cpp ++++ b/cli/threadexecutor.cpp +@@ -150,7 +150,7 @@ int ThreadExecutor::handleRead(int rpipe, unsigned int &result) + + bool ThreadExecutor::checkLoadAverage(size_t nchildren) + { +-#if defined(__CYGWIN__) || defined(__QNX__) // getloadavg() is unsupported on Cygwin, Qnx. ++#if defined(__CYGWIN__) || defined(__QNX__) || defined(__HAIKU__) // getloadavg() is unsupported on Cygwin, Qnx, Haiku. + return true; + #else + if (!nchildren || !_settings.loadAverage) { +diff --git a/cmake/compileroptions.cmake b/cmake/compileroptions.cmake +index 8f6e957..17b3d1c 100644 +--- a/cmake/compileroptions.cmake ++++ b/cmake/compileroptions.cmake +@@ -5,9 +5,13 @@ set(EXTRA_C_FLAGS_DEBUG "-DDEBUG -O0") + if (USE_CLANG) + set (CMAKE_C_COMPILER_ID "Clang") + set (CMAKE_CXX_COMPILER_ID "Clang") +- set (CMAKE_C_COMPILER "/usr/bin/clang") +- set (CMAKE_CXX_COMPILER "/usr/bin/clang++") +- ++ if (NOT HAIKU) ++ set (CMAKE_C_COMPILER "/usr/bin/clang") ++ set (CMAKE_CXX_COMPILER "/usr/bin/clang++") ++ else (NOT HAIKU) ++ set (CMAKE_C_COMPILER "/bin/clang") ++ set (CMAKE_CXX_COMPILER "/bin/clang++") ++ endif (NOT HAIKU) + set (CMAKE_C_FLAGS "-std=c99") + set (CMAKE_C_FLAGS_DEBUG "-g") + set (CMAKE_C_FLAGS_RELEASE "-O2") +-- +2.16.2 +