* reintegrated gsoc-locale-kit branch into trunk - there's more

work to do, but it's about time to give this code more exposure.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33176 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Oliver Tappe
2009-09-18 22:23:34 +00:00
parent e7443fd575
commit 75f1522155
3330 changed files with 2093685 additions and 921 deletions
+117 -2
View File
@@ -204,8 +204,10 @@ rule ResComp
DEFINES on $(1) = $(defines) ;
CCDEFS on $(1) = [ FDefines $(defines) ] ;
HDRS on $(1) = [ FIncludes $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) : $(localIncludesOption) ] ;
RCHDRS on $(1) = [ FIncludes $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) : "-I " ] ;
HDRS on $(1) = [ FIncludes $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS)
: $(localIncludesOption) ] ;
RCHDRS on $(1) = [ FIncludes $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS)
: "-I " ] ;
CC on $(1) = $(cc) ;
# set up other vars
@@ -266,3 +268,116 @@ actions ResAttr1
fi
$(2[1]) -O -o "$(1)" "$(2[2-])"
}
# Localization rules
# Extract catalog entries from the sourcefile and put the output textfile in
# target. This output file is then used to create the binary catalog with
# linkcatkeys.
rule ExtractCatalogEntries target : source : signature
{
# get compiler and defines for the platform
local headers ;
local sysHeaders ;
local cc ;
local defines ;
local localIncludesOption ;
local systemIncludesOption ;
on $(target) { # use on $(target) variable values
headers = $(HAIKU_CONFIG_HEADERS) $(SEARCH_SOURCE) $(SUBDIRHDRS)
$(HDRS) ;
sysHeaders = $(SUBDIRSYSHDRS) $(SYSHDRS) ;
defines = $(DEFINES) ;
if $(PLATFORM) = host {
sysHeaders += $(HOST_HDRS) ;
defines += $(HOST_DEFINES) ;
if $(USES_BE_API) {
sysHeaders += $(HOST_BE_API_HEADERS) ;
}
defines += $(HOST_DEFINES) ;
cc = $(HOST_CC) ;
localIncludesOption = $(HOST_LOCAL_INCLUDES_OPTION) ;
systemIncludesOption = $(HOST_SYSTEM_INCLUDES_OPTION) ;
} else {
sysHeaders += $(TARGET_HDRS) ;
defines += $(TARGET_DEFINES) ;
defines += $(TARGET_DEFINES) ;
cc = $(TARGET_CC) ;
localIncludesOption = $(TARGET_LOCAL_INCLUDES_OPTION) ;
systemIncludesOption = $(TARGET_SYSTEM_INCLUDES_OPTION) ;
}
}
DEFINES on $(target) = $(defines) ;
CCDEFS on $(target) = [ FDefines $(defines) ] ;
HDRS on $(target) = [ FIncludes $(headers) : $(localIncludesOption) ]
$(includesSeparator)
[ FSysIncludes $(sysHeaders) : $(systemIncludesOption) ] ;
CC on $(target) = $(cc) ;
LOCALE_KIT_SIGNATURE on $(target) = $(signature) ;
SEARCH on $(source) += $(SEARCH_SOURCE) ;
MakeLocatePlatform $(target) ;
Depends $(target) : $(source) <build>collectcatkeys ;
LocalClean clean : $(target) ;
ExtractCatalogEntries1 $(target) : <build>collectcatkeys $(source) ;
}
actions ExtractCatalogEntries1
{
$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
cat "$(2[2-])" | $(CC) -E $(CCDEFS) $(HDRS) - > "$(1)".pre
$(2[1]) -s $(LOCALE_KIT_SIGNATURE) -p -o "$(1)" "$(1)".pre
}
# Link catalog entries from given catkey file into output compiled catalog file.
# Compiled catalog file will then be copied into the image, but only if the
# fingerprint matches the one from the untranslated catalog for the same file.
rule LinkApplicationCatalog target : sources : signature : language
{
MakeLocateArch $(target) ;
LOCALE_KIT_SIGNATURE on $(target) = $(signature) ;
Depends $(target) : $(sources) <build>linkcatkeys ;
LocalClean clean : $(target) ;
LinkApplicationCatalog1 $(target)
: <build>linkcatkeys $(language) $(sources) ;
}
actions LinkApplicationCatalog1
{
$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
$(2[1]) "$(2[3-])" -l $(2[2]:B) -v -s $(LOCALE_KIT_SIGNATURE) -o "$(1)"
}
# General rules to invoke from jamfiles and that do (almost) everything related
# to localization
rule DoCatalogs appName # Application name
: signature # Application MIME signature (must match the one
# declared in the sourcecode)
: sources # List of cpp files where to search keys
: generatedCatalog # Name of the generated catalog (most probably
# english.catalog)
: translatedCatalogs # List of available translations
{
genCat = [ FGristFiles $(generatedCatalog) ] ;
ExtractCatalogEntries $(genCat:S=.catkeys) : $(sources) : $(signature) ;
LinkApplicationCatalog $(genCat) : $(genCat:S=.catkeys)
: $(signature) : $(genCat:B) ;
for catalog in $(translatedCatalogs)
{
LinkApplicationCatalog $(catalog:B).catalog : $(catalog)
: $(signature) : $(catalog:B) ;
}
AddFilesToHaikuImage system etc locale catalogs $(signature) :
$(genCat) $(translatedCatalogs:B).catalog ;
}
+33 -15
View File
@@ -29,20 +29,18 @@ if $(HAIKU_ATA_STACK) = 1 {
SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bootman bzip2
cal cat catattr checkfs chgrp chmod chop chown chroot cksum clear
clockconfig cmp comm compress copyattr CortexAddOnHost cp
clockconfig cmp collectcatkeys comm compress copyattr CortexAddOnHost cp
csplit ctags cut date dc dd desklink df diff diff3 dircolors dirname
draggers driveinfo dstcheck du
draggers driveinfo dstcheck du dumpcatalog
echo eject env error expand expr
factor false fdinfo ffm filepanel find finddir fmt fold fortune frcode
ftp ftpd
funzip fwcontrol
ftp ftpd funzip fwcontrol
gawk $(X86_ONLY)gdb getlimits grep groups gzip gzexe
hd head hey hostname
id ident ifconfig <bin>install installsound iroster isvolume
$(IDE_ONLY)ideinfo $(IDE_ONLY)idestatus
join
keymap kill less lessecho lesskey link listarea listattr
listimage listdev
join keymap kill
less lessecho lesskey link linkcatkeys listarea listattr listimage listdev
listport listres listsem listusb ln locate logger login logname ls lsindex
makebootable md5sum merge message mimeset mkdos mkdir mkfifo mkfs mkindex
modifiers mount mount_nfs mountvolume mv
@@ -71,19 +69,31 @@ SYSTEM_APPS = AboutSystem ActivityMonitor CharacterMap CodyCam DeskCalc DiskProb
ShowImage SoundRecorder StyledEdit Terminal TextSearch TV Workspaces
;
SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations E-mail
FileTypes Fonts Keyboard Keymap Media Mouse Network OpenGL Printers
FileTypes Fonts Keyboard Keymap Locale Media Mouse Network OpenGL Printers
Screen ScreenSaver Sounds Time Touchpad <preference>Tracker VirtualMemory
;
SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo
GLTeapot Haiku3d Mandelbrot Pairs Playground Pulse Sudoku Gradients
;
SYSTEM_LIBS = libalm.so libbe.so libbsd.so libbnetapi.so libdebug.so
libdevice.so libfluidsynth.so libfreetype.so libgame.so libGL.so libgnu.so
libilmimf.so libjpeg.so liblinprog.so liblpsolve55.so libmail.so libmedia.so
libmidi.so libmidi2.so libnetwork.so libpng.so <revisioned>libroot.so
libscreensaver.so libtextencoding.so libtracker.so libtranslation.so
ICU_LIBS = libicu-common.so libicu-data.so libicu-i18n.so
;
SYSTEM_LIBS =
libalm.so
libbe.so libbsd.so libbnetapi.so
libdebug.so libdevice.so
libfluidsynth.so libfreetype.so
libgame.so libGL.so libgnu.so
libilmimf.so
libjpeg.so
liblinprog.so liblocale.so liblpsolve55.so
libmail.so libmedia.so libmidi.so libmidi2.so
libnetwork.so
libpng.so
<revisioned>libroot.so
libscreensaver.so
libtextencoding.so libtracker.so libtranslation.so
libz.so
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++)
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) $(ICU_LIBS)
;
SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server mail_daemon
media_addon_server media_server midi_server net_server print_server
@@ -109,6 +119,7 @@ SYSTEM_ADD_ONS_TRANSLATORS = BMPTranslator EXRTranslator GIFTranslator
RAWTranslator RTF-Translator SGITranslator STXTTranslator TGATranslator
TIFFTranslator WonderBrushTranslator
;
SYSTEM_ADD_ONS_LOCALE_CATALOGS = <catalog-addon>zeta <catalog-addon>plaintext ;
SYSTEM_ADD_ONS_MEDIA = cortex_audioadapter.media_addon cortex_flanger.media_addon
dvb.media_addon
hmulti_audio.media_addon
@@ -352,7 +363,8 @@ AddFilesToHaikuImage system data artwork : $(logoArtwork) ;
AddDirectoryToHaikuImage system data sounds ;
# Add mail provider infos.
AddFilesToHaikuImage home config settings Mail ProviderInfo : $(HAIKU_PROVIDER_INFOS) ;
AddFilesToHaikuImage home config settings Mail ProviderInfo :
$(HAIKU_PROVIDER_INFOS) ;
# Mail spell check dictionaries
local spellFiles = words geekspeak ;
@@ -361,6 +373,11 @@ SEARCH on $(spellFiles)
= [ FDirName $(HAIKU_TOP) src apps mail ] ;
AddFilesToHaikuImage system etc word_dictionary : $(spellFiles) ;
# Locale kit language files
local languageDir = [ FDirName $(HAIKU_TOP) src data etc locale languages ] ;
local languages = [ Glob $(languageDir) : *.language ] ;
AddFilesToHaikuImage system data locale languages : $(languages) ;
local etcFiles = bash_completion inputrc profile teapot.data ;
etcFiles = $(etcFiles:G=etc) ;
SEARCH on $(etcFiles) = [ FDirName $(HAIKU_TOP) data etc ] ;
@@ -462,6 +479,7 @@ AddFilesToHaikuImage system add-ons opengl
: Mesa\ Software\ Renderer ;
AddFilesToHaikuHybridImage system add-ons Translators
: $(SYSTEM_ADD_ONS_TRANSLATORS) : : true ;
AddFilesToHaikuImage system add-ons locale catalogs : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ;
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 : Match\ Header Spam\ Filter R5\ Daemon\ Filter ;
+4 -4
View File
@@ -354,8 +354,8 @@ rule FStandardOSHeaders
add-ons/input_server add-ons/registrar
add-ons/screen_saver
add-ons/tracker app device drivers game interface
kernel media mail midi midi2 net opengl storage support
translation ;
kernel locale media mail midi midi2 net opengl storage
support translation ;
return [ FDirName $(HAIKU_TOP) headers os ]
[ PublicHeaders $(osIncludes) ] ;
@@ -367,8 +367,8 @@ rule FStandardHeaders
add-ons/input_server add-ons/registrar
add-ons/screen_saver
add-ons/tracker app device drivers game interface
kernel media mail midi midi2 net opengl storage support
translation ;
kernel locale media mail midi midi2 net opengl storage
support translation ;
local headers = ;