Don't alter source levels anymore

- Build them in another directory.
- That "other" directory is the cmake binary dir.
dev-ui
Didier Raboud 2013-01-02 10:19:04 +01:00
parent 1b2ee98e27
commit 124133ec9f
2 changed files with 14 additions and 8 deletions

View File

@ -5,7 +5,7 @@ find_program(PO4A po4a)
if(PO4A) if(PO4A)
add_custom_command(OUTPUT levels_i18n add_custom_command(OUTPUT levels_i18n
COMMAND ./gen_levels_xml.sh COMMAND ./gen_levels_xml.sh ${CMAKE_CURRENT_BINARY_DIR}/
COMMAND touch ${CMAKE_CURRENT_BINARY_DIR}/levels_i18n COMMAND touch ${CMAKE_CURRENT_BINARY_DIR}/levels_i18n
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Handle level instruction translations" COMMENT "Handle level instruction translations"
@ -13,6 +13,5 @@ if(PO4A)
add_custom_target(translate_levels ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/levels_i18n) add_custom_target(translate_levels ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/levels_i18n)
endif() endif()
file(GLOB levelfiles "${CMAKE_CURRENT_SOURCE_DIR}/*.txt") file(GLOB levelfiles "${CMAKE_CURRENT_BINARY_DIR}/*.txt")
list(REMOVE_ITEM levelfiles "${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt")
install(FILES ${levelfiles} DESTINATION ${COLOBOT_INSTALL_DATA_DIR}/levels/) install(FILES ${levelfiles} DESTINATION ${COLOBOT_INSTALL_DATA_DIR}/levels/)

View File

@ -2,6 +2,13 @@
set -e set -e
outdir=$1
if [ -z "$outdir" ] || [ "$outdir" = "." ] || [ ! -d $outdir ]; then
echo "No existing output directory provided; syntax is : $0 output_directory"
return 1;
fi
lang_short="E F" # P" lang_short="E F" # P"
lang_long="en fr" # pl" lang_long="en fr" # pl"
@ -31,6 +38,7 @@ fi
for lang in $lang_short; do for lang in $lang_short; do
dot="."; dot=".";
langcode=""; langcode="";
src_dotlang=".$lang";
case $lang in case $lang in
E) dot="";; E) dot="";;
F) langcode=fr;; F) langcode=fr;;
@ -42,7 +50,7 @@ for lang in $lang_short; do
echo "<h1><!-- Level: $levelfile --></h1>" >> $allsfile echo "<h1><!-- Level: $levelfile --></h1>" >> $allsfile
for key in Title Resume ScriptName; do for key in Title Resume ScriptName; do
for subkey in text resume; do for subkey in text resume; do
subval=$(grep "^$key.$lang.*$subkey" $levelfileorig | sed -e "s/^.*$subkey=\"\([^\"]*\)\".*$/\1/") subval=$(grep "^$key$src_dotlang.*$subkey" $levelfileorig | sed -e "s/^.*$subkey=\"\([^\"]*\)\".*$/\1/")
# Always write entries, even when empty, otherwise breaks po4a-gettextize # Always write entries, even when empty, otherwise breaks po4a-gettextize
echo "<${key}_$subkey>$levelfile:$subval</${key}_$subkey>" >> $destfile echo "<${key}_$subkey>$levelfile:$subval</${key}_$subkey>" >> $destfile
echo "<p type=\"$key $subkey\">$levelfile:$subval</p>" >> $allsfile echo "<p type=\"$key $subkey\">$levelfile:$subval</p>" >> $allsfile
@ -114,9 +122,9 @@ echo -n "* Inject translation in level files: "
for levelfile in $(ls *.txt); do for levelfile in $(ls *.txt); do
rootfilename=$(echo $levelfile | sed 's/\.txt$//g') rootfilename=$(echo $levelfile | sed 's/\.txt$//g')
mv $levelfile $levelfile.old
for lang in $lang_long; do for lang in $lang_long; do
dotlang=".$lang" dotlang=".$lang"
langcode="";
case $lang in case $lang in
en) dotlang=""; langcode=".E";; en) dotlang=""; langcode=".E";;
fr) langcode=".F";; fr) langcode=".F";;
@ -134,13 +142,12 @@ for levelfile in $(ls *.txt); do
fi fi
done done
if [ -n "$lineend" ]; then if [ -n "$lineend" ]; then
echo "$key$langcode$lineend" >> $levelfile echo "$key$langcode$lineend" >> $outdir/$levelfile
fi fi
done done
fi fi
done done
sed -e '/^Title/d;/^Resume/d;/^ScriptName/d' $levelfile.old >> $levelfile sed -e '/^Title/d;/^Resume/d;/^ScriptName/d' $levelfile >> $outdir/$levelfile
rm $levelfile.old
done done
echo "done." echo "done."