-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake.sh
More file actions
114 lines (85 loc) · 3.14 KB
/
make.sh
File metadata and controls
114 lines (85 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
rm -rf ./build
rm -rf ./toremove
mkdir -p build
# -O3 - максимальная оптимизация. -O0 - без оптимизации.
# -Wall -Wextra - дополнительные предупреждения
# Производим формирование английской локали как загружаемой прямо внутрь исполняемого файла.
# Это не нужно
#localecpp=locale.cpp
#rm -rf locale.cpp
#echo -e 'const char* LOCALE_EN[] =\n{' > $localecpp
#sed 's/^/"/; s/$/"/' locale/messages_en.txt | sed '$s/$/,\nnullptr\n};/' >> $localecpp
# Вот это формирование шаблона для локали
# xgettext --c++ --package-name=vinny-sdel --from-code=UTF-8 -d vinny-sdel -o locale/vinny-sdel.pot main.cpp
#msginit -i locale/vinny-sdel.pot -l ru_RU.UTF-8 -o locale/ru_RU/LC_MESSAGES/vinny-sdel.po
#msginit -i locale/vinny-sdel.pot -l en_US.UTF-8 -o locale/en_US/LC_MESSAGES/vinny-sdel.po
g++ -std=c++20 -Wall -Wextra -O3 -o ./build/sdel main.cpp
if [ $? -ne 0 ]
then
echo
echo "Ошибка: компиляция не удалась!" >&2
echo
exit 1
fi
echo "Компиляция прошла успешно"
find locale -name "*.po" -type f | while read po_file; do
mo_file="${po_file%.po}.mo"
rm -f $mo_file
# msgmerge --update $po_file locale/vinny-sdel.pot
msgfmt -c -o "$mo_file" "$po_file" > /dev/null 2>&1
if [ ! -f $mo_file ]
then
echo
echo "for $po_file"
#msgfmt -c -v -o "$mo_file" "$po_file"
fi
done
# Тесты
echo
echo "Пробный запуск программы без параметров."
./build/sdel
echo
echo
echo "Пробный запуск программы с параметром vv."
echo '0123456789abcdefg' >> ./build/toremove
rm -rf toremove
mkdir -p toremove
ln -s ../build/toremove ./toremove/link; ln -s ../locale/ ./toremove/lc; ln -s notexists ./toremove/ne
./build/sdel vv -- ./toremove
r=$?
if [[ $r -ne 0 || -f $mo_file ]]
then
echo "Провальный запуск. exit=$r"
else
echo "Успешный запуск. exit=$r"
fi
echo
echo
echo "Пробный запуск программы с параметром vv и tempd."
echo '0123456789abcdefg' >> ./build/toremove
rm -rf toremove
mkdir -p toremove
ln -s ../build/toremove ./toremove/link; ln -s ../locale/ ./toremove/lc; ln -s notexists ./toremove/ne
./build/sdel vv tempd /usr/bin tempd /usr/share tempd /etc -- ./toremove
r=$?
if [[ $r -ne 0 || -f $mo_file ]]
then
echo "Провальный запуск. exit=$r"
else
echo "Успешный запуск. exit=$r"
fi
echo
echo
echo "Пробный запуск программы без параметра v (должен быть пустой вывод)."
echo '0123456789abcdefg' >> ./build/toremove
rm -rf toremove
mkdir -p toremove
ln -s ../build/toremove ./toremove/link; ln -s ../locale/ ./toremove/lc; ln -s notexists ./toremove/ne
./build/sdel tempd /usr/bin tempd /usr/share tempd /etc -- ./toremove
r=$?
if [[ $r -ne 0 || -f $mo_file ]]
then
echo "Провальный запуск. exit=$r"
else
echo "Успешный запуск. exit=$r"
fi