Skip to content

Commit 38e324a

Browse files
committed
build: qt: split locale resources. Fixes non-deterministic distcheck
The rcc tool is quirky and only honors files in the same directory as the qrc. When doing an out-of-tree build (as 'make distcheck' does), the generated translation files end up in a different path, so rcc can't find them. Split them up so that rcc is run twice: once for static source files and once for generated files.
1 parent 3d7399c commit 38e324a

File tree

4 files changed

+89
-78
lines changed

4 files changed

+89
-78
lines changed

src/Makefile.qt.include

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ QT_MOC = \
152152

153153
QT_QRC_CPP = qt/qrc_bitcoin.cpp
154154
QT_QRC = qt/bitcoin.qrc
155+
QT_QRC_LOCALE_CPP = qt/qrc_bitcoin_locale.cpp
156+
QT_QRC_LOCALE = qt/bitcoin_locale.qrc
155157

156158
PROTOBUF_CC = qt/paymentrequest.pb.cc
157159
PROTOBUF_H = qt/paymentrequest.pb.h
@@ -321,10 +323,10 @@ qt_libbitcoinqt_a_CPPFLAGS = $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
321323
$(QT_INCLUDES) $(QT_DBUS_INCLUDES) $(PROTOBUF_CFLAGS) $(QR_CFLAGS)
322324

323325
qt_libbitcoinqt_a_SOURCES = $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(QT_FORMS_UI) \
324-
$(QT_QRC) $(QT_TS) $(PROTOBUF_PROTO) $(RES_ICONS) $(RES_IMAGES) $(RES_MOVIES)
326+
$(QT_QRC) $(QT_QRC_LOCALE) $(QT_TS) $(PROTOBUF_PROTO) $(RES_ICONS) $(RES_IMAGES) $(RES_MOVIES)
325327

326328
nodist_qt_libbitcoinqt_a_SOURCES = $(QT_MOC_CPP) $(QT_MOC) $(PROTOBUF_CC) \
327-
$(PROTOBUF_H) $(QT_QRC_CPP)
329+
$(PROTOBUF_H) $(QT_QRC_CPP) $(QT_QRC_LOCALE_CPP)
328330

329331
# forms/foo.h -> forms/ui_foo.h
330332
QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI:.ui=.h))))
@@ -371,10 +373,16 @@ translate: qt/bitcoinstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_CPP)
371373
@test -n $(LUPDATE) || echo "lupdate is required for updating translations"
372374
$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) $^ -locations relative -no-obsolete -ts qt/locale/bitcoin_en.ts
373375

374-
$(QT_QRC_CPP): $(QT_QRC) $(QT_QM) $(QT_FORMS_H) $(RES_ICONS) $(RES_IMAGES) $(RES_MOVIES) $(PROTOBUF_H)
376+
$(QT_QRC_LOCALE_CPP): $(QT_QRC_LOCALE) $(QT_QM)
375377
@test -f $(RCC)
376-
$(AM_V_GEN) cd $(srcdir); QT_SELECT=$(QT_SELECT) $(RCC) -name bitcoin $< | \
377-
$(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $(abs_builddir)/$@
378+
@test -f $(@D)/$(<F) || cp -f $< $(@D)
379+
$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name bitcoin_locale $(@D)/$(<F) | \
380+
$(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@
381+
382+
$(QT_QRC_CPP): $(QT_QRC) $(QT_FORMS_H) $(RES_ICONS) $(RES_IMAGES) $(RES_MOVIES) $(PROTOBUF_H)
383+
@test -f $(RCC)
384+
$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name bitcoin $< | \
385+
$(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@
378386

379387
CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno
380388

src/qt/bitcoin.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@ int main(int argc, char *argv[])
475475
#endif
476476

477477
Q_INIT_RESOURCE(bitcoin);
478+
Q_INIT_RESOURCE(bitcoin_locale);
478479
BitcoinApplication app(argc, argv);
479480
#if QT_VERSION > 0x050100
480481
// Generate high-dpi pixmaps

src/qt/bitcoin.qrc

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -84,77 +84,4 @@
8484
<file alias="spinner-033">res/movies/spinner-033.png</file>
8585
<file alias="spinner-034">res/movies/spinner-034.png</file>
8686
</qresource>
87-
<qresource prefix="/translations">
88-
<file alias="ach">locale/bitcoin_ach.qm</file>
89-
<file alias="af_ZA">locale/bitcoin_af_ZA.qm</file>
90-
<file alias="ar">locale/bitcoin_ar.qm</file>
91-
<file alias="be_BY">locale/bitcoin_be_BY.qm</file>
92-
<file alias="bg">locale/bitcoin_bg.qm</file>
93-
<file alias="bs">locale/bitcoin_bs.qm</file>
94-
<file alias="ca_ES">locale/bitcoin_ca_ES.qm</file>
95-
<file alias="ca">locale/bitcoin_ca.qm</file>
96-
<file alias="ca@valencia">locale/[email protected]</file>
97-
<file alias="cmn">locale/bitcoin_cmn.qm</file>
98-
<file alias="cs">locale/bitcoin_cs.qm</file>
99-
<file alias="cy">locale/bitcoin_cy.qm</file>
100-
<file alias="da">locale/bitcoin_da.qm</file>
101-
<file alias="de">locale/bitcoin_de.qm</file>
102-
<file alias="el_GR">locale/bitcoin_el_GR.qm</file>
103-
<file alias="en">locale/bitcoin_en.qm</file>
104-
<file alias="eo">locale/bitcoin_eo.qm</file>
105-
<file alias="es_CL">locale/bitcoin_es_CL.qm</file>
106-
<file alias="es_DO">locale/bitcoin_es_DO.qm</file>
107-
<file alias="es_MX">locale/bitcoin_es_MX.qm</file>
108-
<file alias="es">locale/bitcoin_es.qm</file>
109-
<file alias="es_UY">locale/bitcoin_es_UY.qm</file>
110-
<file alias="et">locale/bitcoin_et.qm</file>
111-
<file alias="eu_ES">locale/bitcoin_eu_ES.qm</file>
112-
<file alias="fa_IR">locale/bitcoin_fa_IR.qm</file>
113-
<file alias="fa">locale/bitcoin_fa.qm</file>
114-
<file alias="fi">locale/bitcoin_fi.qm</file>
115-
<file alias="fr_CA">locale/bitcoin_fr_CA.qm</file>
116-
<file alias="fr">locale/bitcoin_fr.qm</file>
117-
<file alias="gl">locale/bitcoin_gl.qm</file>
118-
<file alias="gu_IN">locale/bitcoin_gu_IN.qm</file>
119-
<file alias="he">locale/bitcoin_he.qm</file>
120-
<file alias="hi_IN">locale/bitcoin_hi_IN.qm</file>
121-
<file alias="hr">locale/bitcoin_hr.qm</file>
122-
<file alias="hu">locale/bitcoin_hu.qm</file>
123-
<file alias="id_ID">locale/bitcoin_id_ID.qm</file>
124-
<file alias="it">locale/bitcoin_it.qm</file>
125-
<file alias="ja">locale/bitcoin_ja.qm</file>
126-
<file alias="ka">locale/bitcoin_ka.qm</file>
127-
<file alias="kk_KZ">locale/bitcoin_kk_KZ.qm</file>
128-
<file alias="ko_KR">locale/bitcoin_ko_KR.qm</file>
129-
<file alias="ky">locale/bitcoin_ky.qm</file>
130-
<file alias="la">locale/bitcoin_la.qm</file>
131-
<file alias="lt">locale/bitcoin_lt.qm</file>
132-
<file alias="lv_LV">locale/bitcoin_lv_LV.qm</file>
133-
<file alias="mn">locale/bitcoin_mn.qm</file>
134-
<file alias="ms_MY">locale/bitcoin_ms_MY.qm</file>
135-
<file alias="nb">locale/bitcoin_nb.qm</file>
136-
<file alias="nl">locale/bitcoin_nl.qm</file>
137-
<file alias="pam">locale/bitcoin_pam.qm</file>
138-
<file alias="pl">locale/bitcoin_pl.qm</file>
139-
<file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
140-
<file alias="pt_PT">locale/bitcoin_pt_PT.qm</file>
141-
<file alias="ro_RO">locale/bitcoin_ro_RO.qm</file>
142-
<file alias="ru">locale/bitcoin_ru.qm</file>
143-
<file alias="sah">locale/bitcoin_sah.qm</file>
144-
<file alias="sk">locale/bitcoin_sk.qm</file>
145-
<file alias="sl_SI">locale/bitcoin_sl_SI.qm</file>
146-
<file alias="sq">locale/bitcoin_sq.qm</file>
147-
<file alias="sr">locale/bitcoin_sr.qm</file>
148-
<file alias="sv">locale/bitcoin_sv.qm</file>
149-
<file alias="th_TH">locale/bitcoin_th_TH.qm</file>
150-
<file alias="tr">locale/bitcoin_tr.qm</file>
151-
<file alias="uk">locale/bitcoin_uk.qm</file>
152-
<file alias="ur_PK">locale/bitcoin_ur_PK.qm</file>
153-
<file alias="uz@Cyrl">locale/[email protected]</file>
154-
<file alias="vi">locale/bitcoin_vi.qm</file>
155-
<file alias="vi_VN">locale/bitcoin_vi_VN.qm</file>
156-
<file alias="zh_CN">locale/bitcoin_zh_CN.qm</file>
157-
<file alias="zh_HK">locale/bitcoin_zh_HK.qm</file>
158-
<file alias="zh_TW">locale/bitcoin_zh_TW.qm</file>
159-
</qresource>
16087
</RCC>

src/qt/bitcoin_locale.qrc

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<!DOCTYPE RCC><RCC version="1.0">
2+
<qresource prefix="/translations">
3+
<file alias="ach">locale/bitcoin_ach.qm</file>
4+
<file alias="af_ZA">locale/bitcoin_af_ZA.qm</file>
5+
<file alias="ar">locale/bitcoin_ar.qm</file>
6+
<file alias="be_BY">locale/bitcoin_be_BY.qm</file>
7+
<file alias="bg">locale/bitcoin_bg.qm</file>
8+
<file alias="bs">locale/bitcoin_bs.qm</file>
9+
<file alias="ca_ES">locale/bitcoin_ca_ES.qm</file>
10+
<file alias="ca">locale/bitcoin_ca.qm</file>
11+
<file alias="ca@valencia">locale/[email protected]</file>
12+
<file alias="cmn">locale/bitcoin_cmn.qm</file>
13+
<file alias="cs">locale/bitcoin_cs.qm</file>
14+
<file alias="cy">locale/bitcoin_cy.qm</file>
15+
<file alias="da">locale/bitcoin_da.qm</file>
16+
<file alias="de">locale/bitcoin_de.qm</file>
17+
<file alias="el_GR">locale/bitcoin_el_GR.qm</file>
18+
<file alias="en">locale/bitcoin_en.qm</file>
19+
<file alias="eo">locale/bitcoin_eo.qm</file>
20+
<file alias="es_CL">locale/bitcoin_es_CL.qm</file>
21+
<file alias="es_DO">locale/bitcoin_es_DO.qm</file>
22+
<file alias="es_MX">locale/bitcoin_es_MX.qm</file>
23+
<file alias="es">locale/bitcoin_es.qm</file>
24+
<file alias="es_UY">locale/bitcoin_es_UY.qm</file>
25+
<file alias="et">locale/bitcoin_et.qm</file>
26+
<file alias="eu_ES">locale/bitcoin_eu_ES.qm</file>
27+
<file alias="fa_IR">locale/bitcoin_fa_IR.qm</file>
28+
<file alias="fa">locale/bitcoin_fa.qm</file>
29+
<file alias="fi">locale/bitcoin_fi.qm</file>
30+
<file alias="fr_CA">locale/bitcoin_fr_CA.qm</file>
31+
<file alias="fr">locale/bitcoin_fr.qm</file>
32+
<file alias="gl">locale/bitcoin_gl.qm</file>
33+
<file alias="gu_IN">locale/bitcoin_gu_IN.qm</file>
34+
<file alias="he">locale/bitcoin_he.qm</file>
35+
<file alias="hi_IN">locale/bitcoin_hi_IN.qm</file>
36+
<file alias="hr">locale/bitcoin_hr.qm</file>
37+
<file alias="hu">locale/bitcoin_hu.qm</file>
38+
<file alias="id_ID">locale/bitcoin_id_ID.qm</file>
39+
<file alias="it">locale/bitcoin_it.qm</file>
40+
<file alias="ja">locale/bitcoin_ja.qm</file>
41+
<file alias="ka">locale/bitcoin_ka.qm</file>
42+
<file alias="kk_KZ">locale/bitcoin_kk_KZ.qm</file>
43+
<file alias="ko_KR">locale/bitcoin_ko_KR.qm</file>
44+
<file alias="ky">locale/bitcoin_ky.qm</file>
45+
<file alias="la">locale/bitcoin_la.qm</file>
46+
<file alias="lt">locale/bitcoin_lt.qm</file>
47+
<file alias="lv_LV">locale/bitcoin_lv_LV.qm</file>
48+
<file alias="mn">locale/bitcoin_mn.qm</file>
49+
<file alias="ms_MY">locale/bitcoin_ms_MY.qm</file>
50+
<file alias="nb">locale/bitcoin_nb.qm</file>
51+
<file alias="nl">locale/bitcoin_nl.qm</file>
52+
<file alias="pam">locale/bitcoin_pam.qm</file>
53+
<file alias="pl">locale/bitcoin_pl.qm</file>
54+
<file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
55+
<file alias="pt_PT">locale/bitcoin_pt_PT.qm</file>
56+
<file alias="ro_RO">locale/bitcoin_ro_RO.qm</file>
57+
<file alias="ru">locale/bitcoin_ru.qm</file>
58+
<file alias="sah">locale/bitcoin_sah.qm</file>
59+
<file alias="sk">locale/bitcoin_sk.qm</file>
60+
<file alias="sl_SI">locale/bitcoin_sl_SI.qm</file>
61+
<file alias="sq">locale/bitcoin_sq.qm</file>
62+
<file alias="sr">locale/bitcoin_sr.qm</file>
63+
<file alias="sv">locale/bitcoin_sv.qm</file>
64+
<file alias="th_TH">locale/bitcoin_th_TH.qm</file>
65+
<file alias="tr">locale/bitcoin_tr.qm</file>
66+
<file alias="uk">locale/bitcoin_uk.qm</file>
67+
<file alias="ur_PK">locale/bitcoin_ur_PK.qm</file>
68+
<file alias="uz@Cyrl">locale/[email protected]</file>
69+
<file alias="vi">locale/bitcoin_vi.qm</file>
70+
<file alias="vi_VN">locale/bitcoin_vi_VN.qm</file>
71+
<file alias="zh_CN">locale/bitcoin_zh_CN.qm</file>
72+
<file alias="zh_HK">locale/bitcoin_zh_HK.qm</file>
73+
<file alias="zh_TW">locale/bitcoin_zh_TW.qm</file>
74+
</qresource>
75+
</RCC>

0 commit comments

Comments
 (0)