From 080f483b21b8ed48490fac01cd9281890ffa6471 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Tue, 13 Jul 2010 10:51:57 +0000 Subject: [PATCH] Make locale kit Hybrid build aware, so that the catalog add-ons will be available for gcc4 applications. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37490 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/HaikuImage | 7 +++++-- src/kits/locale/LocaleRoster.cpp | 20 ++++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 747d32e05b..88d628a7ce 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -51,8 +51,9 @@ SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bootman bzip2 query quit rc readlink ReadOnlyBootPrompt reindex release renice rlog rm rmattr rmindex rmdir roster route - safemode screen_blanker screenmode screenshot sdiff setdecor settype setversion - setvolume setwep seq sha1sum shar shred shuf shutdown sleep sort spamdbm + safemode screen_blanker screenmode screenshot sdiff setdecor settype + setversion setvolume setwep seq sha1sum shar shred shuf shutdown sleep sort + spamdbm split stat strace stty su sum sync sysinfo tac tail tcpdump tcptester tee telnet telnetd test timeout top touch tput tr traceroute translate trash true truncate tsort tty @@ -518,6 +519,8 @@ AddFilesToHaikuHybridImage system add-ons Translators : $(SYSTEM_ADD_ONS_TRANSLATORS) : : true ; AddFilesToHaikuImage system add-ons locale catalogs : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ; +AddFilesToHaikuHybridImage system add-ons locale catalogs + : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) : : true ; AddFilesToHaikuImage system add-ons mail_daemon inbound_protocols : POP3 IMAP ; AddFilesToHaikuImage system add-ons mail_daemon outbound_protocols : SMTP ; AddFilesToHaikuImage system add-ons mail_daemon inbound_filters diff --git a/src/kits/locale/LocaleRoster.cpp b/src/kits/locale/LocaleRoster.cpp index f93e1d36d3..f612cc1878 100644 --- a/src/kits/locale/LocaleRoster.cpp +++ b/src/kits/locale/LocaleRoster.cpp @@ -290,7 +290,7 @@ RosterData::InitializeCatalogAddOns() // add info about embedded default catalog: BCatalogAddOnInfo *defaultCatalogAddOnInfo = new(std::nothrow) BCatalogAddOnInfo("Default", "", - DefaultCatalog::kDefaultCatalogAddOnPriority); + DefaultCatalog::kDefaultCatalogAddOnPriority); if (!defaultCatalogAddOnInfo) return; @@ -309,10 +309,26 @@ RosterData::InitializeCatalogAddOns() BDirectory addOnFolder; char buf[4096]; status_t err; - for (int f=0; folders[f]>=0; ++f) { + for (int f = 0; folders[f]>=0; ++f) { find_directory(folders[f], &addOnPath); BString addOnFolderName(addOnPath.Path()); addOnFolderName << "/locale/catalogs"; + + system_info info; + if (get_system_info(&info) == B_OK + && (info.abi & B_HAIKU_ABI_MAJOR) + != (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR)) { + switch (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR) { + case B_HAIKU_ABI_GCC_2: + addOnFolderName << "/gcc2"; + break; + case B_HAIKU_ABI_GCC_4: + addOnFolderName << "/gcc4"; + break; + } + } + + err = addOnFolder.SetTo(addOnFolderName.String()); if (err != B_OK) continue;