Emulate C99/C++11 __func__ for Visual C++.
Reapply r201910. MSVC gets __func__ defined explicitly, even though it
can't build anything here.
Undef helper macros after using them.
Don't mix the plain and keyword signatures of target_link_libraries.