get_filename_component(XBINDIR "${proto_xbindir}" ABSOLUTE)
get_filename_component(xrootdir "${XBINDIR}" PATH)
set(XLIBDIR "${xrootdir}/lib/X11")
+set(XKBDIR "${xrootdir}/share/X11")
check_function_exists(getpassphrase HAVE_GETPASSPHRASE)
check_function_exists(vsyslog HAVE_VSYSLOG)
/* X libraries directory */
#cmakedefine XLIBDIR "${XLIBDIR}"
+/* xkb resources directory */
+#cmakedefine XKBDIR "${XKBDIR}"
+
/* Number of bits in a file offset, on hosts where this is settable. */
#define _FILE_OFFSET_BITS 64
QString rulesName = Rules::getRulesName();
if ( ! rulesName.isNull() ) {
- QString xkbParentDir;
-
- QString base(XLIBDIR);
- if( base.count('/') >= 3 ) {
- // .../usr/lib/X11 -> /usr/share/X11/xkb vs .../usr/X11/lib -> /usr/X11/share/X11/xkb
- QString delta = base.endsWith("X11") ? "/../../share/X11" : "/../share/X11";
- QDir baseDir(base + delta);
- if( baseDir.exists() ) {
- xkbParentDir = baseDir.absolutePath();
- }
- else {
- QDir baseDir(base + "/X11"); // .../usr/X11/lib/X11/xkb (old XFree)
- if( baseDir.exists() ) {
- xkbParentDir = baseDir.absolutePath();
- }
- }
- }
-
- if( xkbParentDir.isEmpty() ) {
- xkbParentDir = "/usr/share/X11";
- }
-
- rulesFile = QString("%1/xkb/rules/%2.xml").arg(xkbParentDir, rulesName);
+ rulesFile = QString("%1/xkb/rules/%2.xml").arg(XKBDIR, rulesName);
}
return rulesFile;