Ensure that the correct version of Qt is always used.

With the introduction qt-4.8.6, Qt binaries were moved from /usr/bin to
/usr/$(get_libdir)/qt4/bin, leaving behind in their place symlinks to qtchooser.

There is no guarantee to which version of Qt these symlinks might point, so it
is necessary to find the correct version explicitly.

Once qmake is found, it is queried for the correct location of all other items.

Gentoo-bug: 547222

--- a/Modules/FindQt4.cmake
+++ b/Modules/FindQt4.cmake
@@ -482,13 +482,23 @@
 
   get_filename_component(qt_install_version "[HKEY_CURRENT_USER\\Software\\trolltech\\Versions;DefaultQtVersion]" NAME)
 
-  find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
-    PATHS
-      ENV QTDIR
-      "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]"
-    PATH_SUFFIXES bin
-    DOC "The qmake executable for the Qt installation to use"
-  )
+  if(CMAKE_BUILD_TYPE STREQUAL Gentoo)
+    find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
+      PATHS
+        $ENV{EPREFIX}/usr/${CMAKE_INSTALL_LIBDIR}/qt4/bin
+        $ENV{EPREFIX}/usr/bin
+        NO_DEFAULT_PATH
+      DOC "The qmake executable for the Qt installation to use"
+    )
+  else()
+    find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
+      PATHS
+        ENV QTDIR
+        "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]"
+      PATH_SUFFIXES bin
+      DOC "The qmake executable for the Qt installation to use"
+    )
+  endif()
 
   set(major 0)
   if (QT_QMAKE_EXECUTABLE)
