Review Request 119875: add support for Clang Static Analyzer and improve build configuration

Milian Wolff mail at milianw.de
Thu Aug 21 09:47:12 BST 2014



> On Aug. 20, 2014, 10:15 p.m., Albert Astals Cid wrote:
> > Why is this per repo? This should be in a place all repos get the nice stuff without having to do work.
> > 
> > A static Makefile and a configure.sh seem like very bad ideas to me. Why do you need those over cmake?
> 
> Mathieu Tarral wrote:
>     > Why is this per repo?
>     
>     Because i didn't know how to implement it in another way.
>     Another idea is to implement it as a plugin in the krazy framework,
>     so you can run it over any KDE repo without having them to implement it in their code.
>     
>     > Why do you need those over cmake?
>     
>     For new developers, it avoids them to learn some CMake specific variables like CMAKE_INSTALL_PREFIX and CMAKE_CXX_COMPILER.
>     And for developers in general, it allows them to configure the project really quickly.
>     It's like a very little abstraction to the CMake interface.
> 
> Milian Wolff wrote:
>     The makefile and configure script are a really bad idea. Maybe you think its simpler for newcomers, I find it highly confusing. You need to know CMake in KDE, so use CMake everywhere. Furthermore, this will otherwise not work on Windows etc.
>     
>     Generally, I think such a feature should probably go into CMake itself, or be put into our ECM if possible. The different analysers (note: there are multiple, just one 'analysis' target is not enough) should be chosen by setting CMAKE_BUILD_TYPE to something like TSAN or ASAN or ...

Oh and FTR: afaik one can also do something like this already:

    mkdir build-asan
    cd build-asan
    CXX=clang++ -fsanitize=address cmake ..
    make

But maybe it won't pass the proper linker flags then. But I'm sure there are ways to do that as well.


- Milian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119875/#review64948
-----------------------------------------------------------


On Aug. 20, 2014, 10:11 p.m., Mathieu Tarral wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119875/
> -----------------------------------------------------------
> 
> (Updated Aug. 20, 2014, 10:11 p.m.)
> 
> 
> Review request for KDE Base Apps.
> 
> 
> Repository: kde-baseapps
> 
> 
> Description
> -------
> 
> This patch add the support of the Clang Static Analyzer (http://clang-analyzer.llvm.org/) implemented using a CMake target.
> For each project in the main tree, it creates a <project_name>_static_analysis target which sets the c++-analyzer compiler
> and then call scan-build. (see the cmake module for details)
> 
> As I couldn't find how to change the compiler for a specific target in CMake, I had to create another a CMake sub-build tree
> named static_analysis_named in the main CMake build tree, and then reconfigure the project by forcing
> the C++ compiler to c++-analyzer.
> 
> Also I added a configure.sh script that allow to set the build options very easily, using dialog.
> So, new developers can change the compiler or set the install prefix without having to know
> the specific CMake variables.
> 
> And finally i added a root Makefile, so you don't have to stay in the build directory to
> compile your targets.
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt b06ba01fff7cee445fcc0b896cef041bd4c34fc8 
>   Makefile PRE-CREATION 
>   cmake/modules/clang_static_analysis.cmake PRE-CREATION 
>   configure.sh PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/119875/diff/
> 
> 
> Testing
> -------
> 
> For configure.sh :
> ./configure.sh
> ./configure.sh -c
> ./configure.sh -b
> ./configuer.sh -p
> 
> for clang static analyzer
> ./configure.sh
> make dolphin_static_analysis
> 
> 
> Thanks,
> 
> Mathieu Tarral
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20140821/f115a616/attachment.htm>


More information about the kde-core-devel mailing list