[CMake] compiling .cpp/.cxx with CUDA compiler

Kai Germaschewski kai.germaschewski at gmail.com
Tue Jul 2 14:19:20 EDT 2019


For background, a bunch of projects help writing portable C++ code that can
be compiled into CUDA device code as one option, e.g. hemi, kokkos, RAJA (
https://devblogs.nvidia.com/simple-portable-parallel-c-hemi-2/). As a
consequence, if available those source files need to be compiled with the
CUDA compiler, but with the regular C++ compiler otherwise.

I'm wondering whether there is a clean way to support this in a cmake
build. Renaming my source files to `.cu` is bad if I'm on the system
without CUDA. I figured out that I can set the LANGUAGE property on a given
.cpp/.cxx source file to CUDA to have it compiled with CMAKE_CUDA_COMPILER,
but that's quite a hassle to do for every source file. Kokkos instead
creates a `nvcc_wrapper` script which one is supposed to use as
CMAKE_CXX_COMPILER, but that definitely seems like a kludge to me (and
giving me troubles).

Things would probably be much better for me if there was a way to change
the default language for .cxx / .cpp extensions. Is there a way to do this?

--Kai
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190702/29d4d6f3/attachment.html>


More information about the CMake mailing list