Browser engines like WebKit are (with some work) portable to any platform with a C++ compiler: that's how the current Haiku browser is built.
No. You just use gcc. Like everyone else.
But implementing `drawButton()`, `blitToScreen()` and similar is in no way similar to implementing a C++ compiler, as you implied.
An example of a port is here, in this directory: https://trac.webkit.org/browser/trunk/Source/WebCore/platfor...