In general I go with the source property approach, since you can pass
it a collection of files to be marked as CUDA.
If you are aware of when all sources have been added to a target you
can easily mark them all as cuda with:
get_target_property(source_files <target> SOURCES)
set_source_files_properties(${source_files} PROPERTIES LANGUAGE CUDA)
As far as changing the mapping of file extensions to languages, as far
as I am aware that is currently unsupported.
On Tue, Jul 2, 2019 at 2:19 PM Kai Germaschewski
<[email protected]> wrote:
>
> 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
>
>
>
> --
>
> Powered by 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
--
Powered by 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