* 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:
+117
-2
@@ -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
@@ -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 ;
|
||||
|
||||
@@ -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 = ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user