diff --git a/dev-scripts/docker/AppImage/Dockerfile b/dev-scripts/docker/AppImage/Dockerfile new file mode 100644 index 0000000..7aa7388 --- /dev/null +++ b/dev-scripts/docker/AppImage/Dockerfile @@ -0,0 +1,58 @@ +FROM centos:6.8 +MAINTAINER Sergio Martins (sergio.martins@kdab.com) + +WORKDIR / +RUN yum update -y +RUN yum install -y git wget + +RUN wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo +RUN yum install -y devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ + +ENV PATH=/opt/rh/devtoolset-2/root/usr/bin/:$PATH + +# Copy appdir template +ADD clazy.AppDir /clazy.AppDir/ + +# Build Python +RUN wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz +RUN tar xzf Python-2.7.16.tgz +WORKDIR /Python-2.7.16 +RUN ./configure --enable-optimizations +RUN make -j8 altinstall +RUN ln -sf /usr/local/bin/python2.7 /usr/local/bin/python + +#Build CMake +WORKDIR / +RUN git clone https://github.com/Kitware/CMake.git +WORKDIR /CMake +RUN git checkout v3.15.4 +RUN ./configure --prefix=/usr/ +RUN make -j8 +RUN make install + +#Build LLVM +WORKDIR / +RUN wget -O - https://github.com/llvm/llvm-project/tarball/llvmorg-9.0.0 | tar xz +RUN mv llvm-llvm-project-* llvm-project +WORKDIR /llvm-project/ +RUN echo "LLVM sha1: `git rev-parse HEAD`" > /clazy.AppDir/sha1 + +RUN mkdir /root/build_llvm/ +WORKDIR /root/build_llvm/ +RUN cmake -DCMAKE_INSTALL_PREFIX=/usr/ -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON -DCLANG_ENABLE_CLANGD=OFF /llvm-project/llvm/ +RUN make -j8 +RUN make install +RUN make DESTDIR=/clazy.AppDir install +RUN rm -rf /clazy.AppDir/usr/include/ +RUN rm -rf /clazy.AppDir/usr/share/ +RUN rm -rf /clazy.AppDir/usr/lib/*.a +RUN rm -rf /clazy.AppDir/usr/lib/*.so* +RUN rm -rf /clazy.AppDir/usr/lib/cmake +RUN rm -rf /clazy.AppDir/usr/bin/ll* +WORKDIR /clazy.AppDir/usr/bin/ +RUN rm -rf bugpoint clang-change-namespace clang-doc clang-format verify-uselistorder c-index-test clang-include-fixer clang-query clang-rename clang-scan-deps diagtool find-all-symbols hmaptool obj2yaml sancov scan-build verify-uselistorderc-index-test clang-check clang-extdef-mapping clang-import-test clang-offload-bundler clang-refactor clang-reorder-fields clang-tidy dsymutil git-clang-format modularize opt sanstats scan-view yaml2obj +RUN chmod +x * + +#Clone clazy +WORKDIR / +RUN git clone https://github.com/KDE/clazy.git diff --git a/dev-scripts/docker/AppImage/clazy.AppDir/AppRun b/dev-scripts/docker/AppImage/clazy.AppDir/AppRun new file mode 100755 index 0000000..6c95dc6 --- /dev/null +++ b/dev-scripts/docker/AppImage/clazy.AppDir/AppRun @@ -0,0 +1,7 @@ +#!/bin/sh + +HERE="$(dirname "$(readlink -f "${0}")")" +export LD_LIBRARY_PATH=${HERE}/usr/lib:$LD_LIBRARY_PATH +export DYLD_LIBRARY_PATH=${HERE}/usr/lib:$DYLD_LIBRARY_PATH +export PATH=${HERE}/usr/bin:$PATH +exec "${HERE}/usr/bin/clazy" "$@" diff --git a/dev-scripts/docker/AppImage/clazy.AppDir/clazy.desktop b/dev-scripts/docker/AppImage/clazy.AppDir/clazy.desktop new file mode 100644 index 0000000..6a747e1 --- /dev/null +++ b/dev-scripts/docker/AppImage/clazy.AppDir/clazy.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=Clazy +Exec=clazy +Icon=clazy +Type=Application +Categories=Development; diff --git a/dev-scripts/docker/AppImage/clazy.AppDir/clazy.png b/dev-scripts/docker/AppImage/clazy.AppDir/clazy.png new file mode 100755 index 0000000..ecff717 Binary files /dev/null and b/dev-scripts/docker/AppImage/clazy.AppDir/clazy.png differ diff --git a/dev-scripts/docker/make_appimage.sh b/dev-scripts/docker/make_appimage.sh index 469d987..f4a9fba 100755 --- a/dev-scripts/docker/make_appimage.sh +++ b/dev-scripts/docker/make_appimage.sh @@ -1,46 +1,38 @@ # This script shouldn't be run directly, but instead invoked by make_appimage.py # which runs this script in a Centos 6.8 docker container to create an app image # Arguments # $1 clazy sha1 to build # $2 user uid to chown the files to before leaving docker -PATH=/opt/rh/python27/root/usr/bin:/opt/rh/devtoolset-6/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - -# edit here the LLVM version used -PATH=$PATH:/llvm900/bin/ - CC=gcc CXX=g++ -cp -r /clazy.AppDir /tmp/clazy_work/ +mkdir /tmp/clazy_work/ +cp -r /clazy.AppDir/ /tmp/clazy_work/ -cd /llvm -echo "LLVM sha1: `git rev-parse HEAD`" > /tmp/clazy_work/clazy.AppDir/sha1 -cd tools/clang -echo "Clang sha1: `git rev-parse HEAD`" >> /tmp/clazy_work/clazy.AppDir/sha1 cd /clazy echo "Clazy sha1: `git rev-parse HEAD`" >> /tmp/clazy_work/clazy.AppDir/sha1 git clean -fdx . git checkout . echo "Running git pull..." git pull echo "Checking out $1..." git checkout $1 echo "Building..." -cmake3 -DCMAKE_BUILD_TYPE=Release -DLINK_CLAZY_TO_LLVM=OFF -DCMAKE_INSTALL_PREFIX=/tmp/clazy_work/clazy.AppDir/usr . && make -j12 && make install +cmake -DCMAKE_BUILD_TYPE=Release -DLINK_CLAZY_TO_LLVM=OFF -DCMAKE_INSTALL_PREFIX=/tmp/clazy_work/clazy.AppDir/usr . && make -j12 && make install echo "Fixing permissions..." chown -R $2 /tmp/clazy_work/clazy.AppDir/ cp /clazy/README.md /tmp/clazy_work/clazy.AppDir/ cp /clazy/COPYING-LGPL2.txt /tmp/clazy_work/clazy.AppDir/ echo "Done" echo diff --git a/docs/checks/README-heap-allocated-small-trivial-type.md b/docs/checks/README-heap-allocated-small-trivial-type.md index 0996a86..b634535 100644 --- a/docs/checks/README-heap-allocated-small-trivial-type.md +++ b/docs/checks/README-heap-allocated-small-trivial-type.md @@ -1,9 +1,12 @@ # heap-allocated-small-trivial-type Warns when you're allocating small trivially copyable/destructible types on the heap. Example: ``` auto p = new QPoint(1, 1); + /// ... p just used locally in the scope ``` -Unneeded memory allocations are costly. +Unneeded memory allocations are costly. Make sure there's no change in behaviour +before fixing these warnings. This check is not enabled by default since there's +a certain amount of known false-positives.