Add INTERFACE_LINK_LANGUAGES to support cross-language header-only libraries
When a static library is exported by
install(EXPORT) the generated imported target sets IMPORTED_LINK_INTERFACE_LANGUAGES to tell CMake in dependent projects what languages were used to compile the object files in the static library. CMake then ensures that the link line of targets linking that static library is generated in such a way that the language runtime libraries for those languages are available.
INTERFACE libraries are often used to express header-only libraries. Header files may introduce link dependencies into a project on the runtime libraries of other languages. For example it is possible for a C++ header to reference CUDA symbols. In order to properly express this dependency to CMake, we need a way to reference the CUDA runtime libraries. An
INTERFACE_LINK_LANGUAGES target property could play this role.