[CMake] CMake, CUDA and compilation database.

Urs nab+cmake at lampshade.ch
Fri Oct 19 11:38:58 EDT 2018


Yes,

after more reading and thinking, I think it might need some adaptation 
of the tools. CMake targets NVCC, I was kinda hoping that it would spew 
out the nvcc options that could then be fed to the tools I want to yo use.

But those specific tools are all clang based, so they probably don't 
know about nvcc commands. I don't know how genric that compilation 
database is. (although for what I want, the tools probably only need gcc 
compatible flags, like -D and -I to recognise defines and include paths. 
If you tell them to work in C++ mode, you can actually get them to run 
on *.cu files as clang knows about CUDA, so they just need to know about 
include paths.)

Maybe it would work if I made a CMake file without using NVCC to target 
clang directly as a specific compiler for *.cu file.

So from what I currently understand, what you suggest might be the 
simplest. Parse the verbose output and make my own compilation database.

Thanks,

Urs



On 10/19/18 5:26 PM, Dmitry Mikushin wrote:
> Presuming makefile target, would it help if after CMake you do "make 
> VERBOSE=1" ? Verbose mode should show all compilation commands, maybe 
> you could further parse them into the format you want.
>
> Kind regards,
> - Dmitry.
>
> пт, 19 окт. 2018 г. в 18:17, Urs <nab+cmake at lampshade.ch 
> <mailto:nab%2Bcmake at lampshade.ch>>:
>
>     Hi,
>
>     I'm trying to get CMake to output a compilation database for my
>     project
>     using gcc and CUDA (nvcc). I'd use the compile_commands.json file for
>     rtags navigation in emacs and clang-tidy inspection.
>
>     To do that, I just added
>
>     set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
>
>     to my CMakeLists.txt
>
>     But it looks like the output I get is only having the information for
>     the *.cpp files. It looks like the *.cu files are all compiled as
>     external objects taht have their own cmake code in subroutines and
>     are
>     not built by the Makefile generator.
>
>     I'm not a cmake expert, is what I'm trying to do possible? Am I doing
>     something wrong somewhere?
>
>     Thanks,
>
>     Urs
>
>     -- 
>
>     Powered by www.kitware.com <http://www.kitware.com>
>
>     Please keep messages on-topic and check the CMake FAQ at:
>     http://www.cmake.org/Wiki/CMake_FAQ
>
>     Kitware offers various services to support the CMake community.
>     For more information on each offering, please visit:
>
>     CMake Support: http://cmake.org/cmake/help/support.html
>     CMake Consulting: http://cmake.org/cmake/help/consulting.html
>     CMake Training Courses: http://cmake.org/cmake/help/training.html
>
>     Visit other Kitware open-source projects at
>     http://www.kitware.com/opensource/opensource.html
>
>     Follow this link to subscribe/unsubscribe:
>     https://cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20181019/efac9d6f/attachment.html>


More information about the CMake mailing list