With CMAKE_VERBOSE_MAKEFILE on, CMake only enables verbosity for compilation, NOT linking
I'm using VS2017 RC. I initially thought this was a VS issue, and fought them over it not being a CMake issue. But, they finally explained themselves and are right.
When reading a .vcxproj, msbuild considers the default value of SuppressStartupBanner to be true within .ClCompile and .Link. When the tag is given being empty, it considers the value to be false. At least on newer versions. On VS10, and maybe some after, an actual value of false rather than no value caused a warning. See: http://public.kitware.com/Bug/view.php?id=12504
Anyways, when SuppressStartupBanner is true (which is the case if the tag does not exist), msbuild gives the /NoLogo option to cl.exe and link.exe. This option suppresses their copyright message, and more importantly the compile/link arguments/options.
Only when SuppressStartupBanner is false (or empty) does msbuild NOT give the /NoLogo option, so cl.exe and link.exe output the arguments/options they were given.
When CMAKE_VERBOSE_MAKEFILE is on, CMake generates .vcxproj files to have "" in Project.ItemDefinitionGroup[].ClCompile, but NOT in .Link. When CMAKE_VERBOSE_MAKEFILE is off, CMake does not generate anything for SuppressStartupBanner.
The way CMake currently works, then, is for CMAKE_VERBOSE_MAKEFILE to turn on verbosity for compiling (cl.exe) but NOT for linking (link.exe.) Because CMake does not write an empty or false SuppressStartupBanner tag into .Link in the .vcxproj, msbuild still gives link.exe the /NoLogo option, so no verbosity (arguments/options) are printed.
Source/cmVisualStudioGeneratorOptions.cxx line 113 appears to create the tag that winds up in .ClCompile. At quick glance, I don't see where this function specifies for the option to only be given for .ClCompile and not .Link, so I can't say if there's something wrong with this function, or if there's another spot where its logic needs to be duplicated to add an equivalent tag to .Link.
Original bug report to VS: https://developercommunity.visualstudio.com/content/problem/12822/vs-2017-rc-output-build-window-shows-options-for-c.html Second bug report where VS finally mentioned SuppressStartupBanner: https://developercommunity.visualstudio.com/content/problem/17932/vs-2017-rc-output-build-window-shows-options-for-c-1.html