[CMake] FindCUDA ignores project dependencies when separable compilation is on

James Bigler jamesbigler at gmail.com
Tue Jan 6 11:30:47 EST 2015


On Tue, Jan 6, 2015 at 8:54 AM, Irwin Zaid <irwin.zaid at physics.ox.ac.uk>
wrote:

> Okay, an update on this.
>
> 2) This is trickier and, unfortunately, still not working. We are already
> adding -fPIC to CMAKE_CXX_FLAGS, should that not be enough? I also tried
> adding it to both CMAKE_CXX_FLAGS_DEBUG and CMAKE_CXX_FLAGS_RELEASE, with
> no effect.
>
> Looking into FindCUDA.CMake at CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS, I
> find code very similar to what you are describing. Are you saying that in
> addition to what is below, we need to add what you proposed? This is what I
> see.
>
> --
>
>
It can be put here (before this foreach).


> foreach(config ${CUDA_configuration_types})
> string(TOUPPER ${config} config_upper)
> # Add config specific flags
> foreach(f ${CUDA_NVCC_FLAGS_${config_upper}})
> list(APPEND config_specific_flags $<$<CONFIG:${config}>:${f}>)
> endforeach()
> set(important_host_flags)
> _cuda_get_important_host_flags(important_host_flags
> ${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}})
> foreach(f ${important_host_flags})
> list(APPEND flags $<$<CONFIG:${config}>:-Xcompiler>
> $<$<CONFIG:${config}>:${f}>)
> endforeach()
> endforeach()
>
>
Or it can be put here (or after the foreach).

I'm concerned that the flag didn't show up after adding it to the _DEBUG or
_RELEASE variants.  If you could add a few message commands around that
might help see what is going on.  The flag needs to be propagated.

You could sprinkle a few commands like this:
message("going to run COMMAND ${CUDA_NVCC_EXECUTABLE} ${nvcc_flags} -dlink
${object_files} -o ${output_file}
        ${flags}")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150106/e25b8b02/attachment.html>


More information about the CMake mailing list