Import 0.4.3 version in mainstream branch
[keepassx] / src / src.pro
1
2 CONFIG = qt uic resources thread stl warn_on
3 QT += xml
4
5 *-g++ : QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-compare
6
7 DEPENDPATH += crypto dialogs export forms import lib translations res
8 INCLUDEPATH += . lib crypto plugins/interfaces export import dialogs
9
10 MOC_DIR = ../build/moc
11 UI_DIR = ../build/ui
12 OBJECTS_DIR = ../build
13 RCC_DIR = ../build/rcc
14
15 isEqual(DEBUG,1){
16         CONFIG += debug
17 }
18 else {
19         CONFIG += release
20 }
21
22 isEqual(NOSTRIP,1) {
23         CONFIG += nostrip
24 }
25
26 # lipo and freebsd cannot handle precompiled headers (yet)
27 !isEqual(PRECOMPILED,1){
28         macx : isEqual(ARCH,UNIVERSAL) : PRECOMPILED = 0
29         freebsd-* : PRECOMPILED = 0
30 }
31
32 win32 : QMAKE_WIN32 = 1
33
34 #-------------------------------------------------------------------------------
35 #   Platform Specific: Unix (except MacOS X)
36 #-------------------------------------------------------------------------------
37 unix : !macx : !isEqual(QMAKE_WIN32,1){
38         isEmpty(PREFIX): PREFIX = /usr
39         !isEqual(AUTOTYPE,0){
40                 DEFINES += AUTOTYPE
41                 !isEqual(GLOBAL_AUTOTYPE,0){
42                         DEFINES += GLOBAL_AUTOTYPE
43                 }
44         }
45         TARGET = ../bin/keepassx
46         target.path = $${PREFIX}/bin
47         datai18n.files = ../share/keepassx/i18n/*.qm
48         datai18n.path = $${PREFIX}/share/keepassx/i18n
49         dataicons.files = ../share/keepassx/icons/*.png
50         dataicons.path = $${PREFIX}/share/keepassx/icons
51         datalicense.files = ../share/keepassx/license.html
52         datalicense.path = $${PREFIX}/share/keepassx
53         
54         shareapp.files = ../share/applications/*.desktop
55         shareapp.path = $${PREFIX}/share/applications
56         shararemime.files = ../share/mime/packages/*.xml
57         shararemime.path = $${PREFIX}/share/mime/packages
58         sharemimelnk.files = ../share/mimelnk/application/*.desktop
59         sharemimelnk.path = $${PREFIX}/share/mimelnk/application
60         sharepixmaps.files = ../share/pixmaps/*.xpm
61         sharepixmaps.path = $${PREFIX}/share/pixmaps
62         INSTALLS += datai18n dataicons datalicense
63         INSTALLS += shareapp shararemime sharemimelnk sharepixmaps
64         
65         contains(DEFINES,AUTOTYPE){
66                 LIBS += -lX11 -lXtst
67                 SOURCES += lib/HelperX11.cpp lib/AutoTypeX11.cpp
68                 HEADERS += lib/HelperX11.h lib/AutoTypeX11.h
69         }
70         contains(DEFINES,GLOBAL_AUTOTYPE){
71                 SOURCES += Application_X11.cpp lib/AutoTypeGlobalX11.cpp
72                 HEADERS += Application_X11.h lib/AutoTypeGlobalX11.h
73         }
74 #       SOURCES += main_unix.cpp
75 }
76
77
78 #-------------------------------------------------------------------------------
79 #   Platform Specific: MacOS X
80 #-------------------------------------------------------------------------------
81 macx {
82         isEmpty(PREFIX): PREFIX = /Applications
83         TARGET = ../bin/KeePassX
84         target.path = $${PREFIX}
85         data.files += ../share/keepassx
86         data.path = Contents/Resources
87         INSTALLS += data
88         LIBS += -framework CoreFoundation
89         isEqual(LINK,DYNAMIC){
90                 isEmpty(QT_FRAMEWORK_DIR): QT_FRAMEWORK_DIR = /Library/Frameworks
91                 private_frameworks.files += $${QT_FRAMEWORK_DIR}/QtCore.framework
92                 private_frameworks.files += $${QT_FRAMEWORK_DIR}/QtGui.framework
93                 private_frameworks.files += $${QT_FRAMEWORK_DIR}/QtXml.framework
94                 private_frameworks.path = Contents/Frameworks
95                 QMAKE_BUNDLE_DATA +=  private_frameworks
96         }
97         isEqual(LINK,STATIC){
98                 LIBS += -framework Carbon -framework AppKit -lz
99         }
100         QMAKE_BUNDLE_DATA += data
101         QMAKE_INFO_PLIST= ../share/macx_bundle/Info.plist
102         ICON = ../share/macx_bundle/icon.icns
103         CONFIG += app_bundle
104         isEqual(ARCH,UNIVERSAL){
105                 CONFIG += x86 ppc
106         }
107         isEqual(ARCH,INTEL): CONFIG += x86
108         isEqual(ARCH,PPC): CONFIG += ppc
109 #       SOURCES += main_macx.cpp
110 }
111
112 #-------------------------------------------------------------------------------
113 #   Platform Specific: Windows
114 #-------------------------------------------------------------------------------
115 isEqual(QMAKE_WIN32,1){
116         CONFIG += windows
117         isEmpty(PREFIX): PREFIX = "C:/Program\ files/KeePassX"
118         TARGET = ../bin/KeePassX
119         target.path = $${PREFIX}
120         data.files += ../share/keepassx/*
121         data.path = $${PREFIX}/share
122         INSTALLS += data
123         win32-msvc*: LIBS += advapi32.lib
124         !isEqual(INSTALL_QTLIB,0){
125                 qt_libs.files = $${QMAKE_LIBDIR_QT}/QtCore4.dll $${QMAKE_LIBDIR_QT}/QtGui4.dll $${QMAKE_LIBDIR_QT}/QtXml4.dll
126                 qt_libs.path = $${PREFIX}
127                 INSTALLS += qt_libs
128         }
129         RC_FILE = ../share/win_ico/keepassx.rc
130         QMAKE_LINK_OBJECT_SCRIPT = $${OBJECTS_DIR}/$${QMAKE_LINK_OBJECT_SCRIPT}
131 #       SOURCES += main_win32.cpp
132 }
133
134 INSTALLS += target
135
136 contains(DEFINES,GLOBAL_AUTOTYPE){
137         FORMS += forms/AutoTypeDlg.ui forms/TargetWindowDlg.ui
138         HEADERS += dialogs/AutoTypeDlg.h lib/AutoTypeTreeWidget.h dialogs/TargetWindowDlg.h
139         SOURCES += dialogs/AutoTypeDlg.cpp lib/AutoTypeTreeWidget.cpp dialogs/TargetWindowDlg.cpp
140 }
141
142 FORMS += forms/AboutDlg.ui \
143          forms/AddBookmarkDlg.ui \
144          forms/CalendarDlg.ui \
145          forms/CollectEntropyDlg.ui \
146          forms/CustomizeDetailViewDlg.ui \
147          forms/DatabaseSettingsDlg.ui \
148          forms/EditEntryDlg.ui \
149          forms/EditGroupDlg.ui \
150          forms/ExpiredEntriesDlg.ui \
151          forms/HelpDlg.ui \
152          forms/MainWindow.ui \
153          forms/ManageBookmarksDlg.ui \
154          forms/PasswordDlg.ui \
155          forms/PasswordGenDlg.ui \
156          forms/SearchDlg.ui \
157          forms/SelectIconDlg.ui \
158          forms/SettingsDlg.ui \
159          forms/SimplePasswordDlg.ui \
160 #         forms/TrashCanDlg.ui \
161          forms/WorkspaceLockedWidget.ui
162
163 TRANSLATIONS_KX = translations/keepassx-de_DE.ts \
164                   translations/keepassx-es_ES.ts \
165                   translations/keepassx-fi_FI.ts \
166                   translations/keepassx-fr_FR.ts \
167                   translations/keepassx-gl_ES.ts \
168                   translations/keepassx-hu_HU.ts \
169                   translations/keepassx-it_IT.ts \
170                   translations/keepassx-ja_JP.ts \
171                   translations/keepassx-nb_NO.ts \
172                   translations/keepassx-nl_NL.ts \
173                   translations/keepassx-pl_PL.ts \
174                   translations/keepassx-pt_PT.ts \
175                   translations/keepassx-ru_RU.ts \
176                   translations/keepassx-sk_SK.ts \
177                   translations/keepassx-sr_RS.ts \
178                   translations/keepassx-tr_TR.ts \
179                   translations/keepassx-uk_UA.ts \
180                   translations/keepassx-zh_CN.ts
181
182 # also update in translations_release.sh
183 TRANSLATIONS_DISABLED = translations/keepassx-cs_CZ.ts
184
185 TRANSLATIONS_QT = translations/qt_fi.ts \
186                   translations/qt_gl_ES.ts \
187                   translations/qt_hu.ts \
188                   translations/qt_it.ts \
189                   translations/qt_nl.ts \
190                   translations/qt_sr.ts \
191                   translations/qt_tr.ts
192
193 # missing Qt translation: nb_NO
194
195 TRANSLATIONS = $$TRANSLATIONS_KX $$TRANSLATIONS_DISABLED translations/keepassx-xx_XX.ts
196 #TRANSLATIONS_UPDATE = $$TRANSLATIONS_KX $$TRANSLATIONS_DISABLED translations/keepassx-xx_XX.ts
197 #TRANSLATIONS_COMPILE = $$TRANSLATIONS_KX $$TRANSLATIONS_QT
198
199 HEADERS += main.h \
200            mainwindow.h \
201            KpxConfig.h \
202            Database.h \
203            Kdb3Database.h \
204            lib/AutoType.h \
205            lib/bookmarks.h \
206            lib/EntryView.h \
207            lib/FileDialogs.h \
208            lib/GroupView.h \
209            lib/random.h \
210            lib/SecString.h \
211            lib/ShortcutWidget.h \
212            lib/tools.h \
213            lib/UrlLabel.h \
214            lib/WaitAnimationWidget.h \
215            crypto/aes.h \
216            crypto/aescpp.h \
217            crypto/aes_endian.h \
218            crypto/aes_types.h \
219            crypto/aesopt.h \
220            crypto/aestab.h \
221            crypto/arcfour.h \
222            crypto/blowfish.h \
223            crypto/sha256.h \
224            crypto/twoclass.h \
225            crypto/twofish.h \
226            crypto/yarrow.h \
227            apg/convert.h \
228            apg/owntypes.h \
229            apg/pronpass.h \
230            apg/randpass.h \
231            apg/smbl.h \
232            dialogs/AboutDlg.h \
233            dialogs/AddBookmarkDlg.h \
234            dialogs/CalendarDlg.h \
235            dialogs/CollectEntropyDlg.h \
236            dialogs/CustomizeDetailViewDlg.h \
237            dialogs/DatabaseSettingsDlg.h \
238            dialogs/EditEntryDlg.h \
239            dialogs/EditGroupDlg.h \
240            dialogs/ExpiredEntriesDlg.h \
241            dialogs/HelpDlg.h \
242            dialogs/ManageBookmarksDlg.h \
243            dialogs/PasswordDlg.h \
244            dialogs/PasswordGenDlg.h \
245            dialogs/SearchDlg.h \
246            dialogs/SelectIconDlg.h \
247            dialogs/SettingsDlg.h \
248            dialogs/SimplePasswordDlg.h \
249 #           dialogs/TrashCanDlg.h \
250            import/Import.h \
251 #           import/Import_GnuKeyRing.h \
252            import/Import_KeePassX_Xml.h \
253            import/Import_KWalletXml.h \
254            import/Import_PwManager.h \
255            export/Export.h \
256            export/Export_KeePassX_Xml.h \
257            export/Export_Txt.h \
258            plugins/interfaces/IFileDialog.h \
259            plugins/interfaces/IIconTheme.h \
260            plugins/interfaces/IGnomeInit.h \
261            plugins/interfaces/IKdeInit.h
262
263 SOURCES += main.cpp \
264            mainwindow.cpp \
265            KpxConfig.cpp \
266            Database.cpp \
267            Kdb3Database.cpp \
268            lib/bookmarks.cpp \
269            lib/EntryView.cpp \
270            lib/FileDialogs.cpp \
271            lib/GroupView.cpp \
272            lib/random.cpp \
273            lib/SecString.cpp \
274            lib/ShortcutWidget.cpp \
275            lib/tools.cpp \
276            lib/UrlLabel.cpp \
277            lib/WaitAnimationWidget.cpp \
278            crypto/aescrypt.c \
279            crypto/aeskey.c \
280            crypto/aes_modes.c \
281            crypto/aestab.c \
282            crypto/arcfour.cpp \
283            crypto/blowfish.cpp \
284            crypto/sha256.cpp \
285            crypto/twoclass.cpp \
286            crypto/twofish.cpp \
287            crypto/yarrow.cpp \
288            apg/convert.c \
289            apg/pronpass.c \
290            apg/randpass.c \
291            dialogs/AboutDlg.cpp \
292            dialogs/AddBookmarkDlg.cpp \
293            dialogs/CalendarDlg.cpp \
294            dialogs/CollectEntropyDlg.cpp \
295            dialogs/CustomizeDetailViewDlg.cpp \
296            dialogs/DatabaseSettingsDlg.cpp \
297            dialogs/EditEntryDlg.cpp \
298            dialogs/EditGroupDlg.cpp \
299            dialogs/ExpiredEntriesDlg.cpp \
300            dialogs/HelpDlg.cpp \
301            dialogs/ManageBookmarksDlg.cpp \
302            dialogs/PasswordDlg.cpp \
303            dialogs/PasswordGenDlg.cpp \
304            dialogs/SearchDlg.cpp \
305            dialogs/SelectIconDlg.cpp \
306            dialogs/SettingsDlg.cpp \
307            dialogs/SimplePasswordDlg.cpp \
308 #           dialogs/TrashCanDlg.cpp \
309            import/Import.cpp \
310 #           import/Import_GnuKeyRing.cpp \
311            import/Import_KeePassX_Xml.cpp \
312            import/Import_KWalletXml.cpp \
313            import/Import_PwManager.cpp \
314            export/Export.cpp \
315            export/Export_KeePassX_Xml.cpp \
316            export/Export_Txt.cpp
317
318 isEqual(PRECOMPILED,0) {
319         QMAKE_CXXFLAGS += -include keepassx.h
320 }
321 else {
322         CONFIG += precompile_header
323         PRECOMPILED_HEADER = keepassx.h
324 }
325
326 RESOURCES += res/resources.qrc
327
328 #isEmpty(QMAKE_LRELEASE) {
329 #       win32 {
330 #               QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
331 #       }
332 #       else {
333 #               QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease-qt4
334 #               !exists($$QMAKE_LRELEASE) : QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
335 #       }
336 #}
337
338 #exists($$QMAKE_LRELEASE) {
339 #       updateqm.input = TRANSLATIONS_COMPILE
340 #       updateqm.output = ../share/keepassx/i18n/${QMAKE_FILE_BASE}.qm
341 #       updateqm.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ../share/keepassx/i18n/${QMAKE_FILE_BASE}.qm
342 #       updateqm.CONFIG += no_link
343 #       
344 #       QMAKE_EXTRA_COMPILERS += updateqm
345 #       PRE_TARGETDEPS += compiler_updateqm_make_all
346 #}
347 #else {
348 #       message("*** lrelease not found - can't compile translation files")
349 #}