df01982e44bd8bd49b9684787d2608735a4c885d
[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 += -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         !isEqual(INSTALL_QTLIB,0){
124                 qt_libs.files = $${QMAKE_LIBDIR_QT}/QtCore4.dll $${QMAKE_LIBDIR_QT}/QtGui4.dll $${QMAKE_LIBDIR_QT}/QtXml4.dll
125                 qt_libs.path = $${PREFIX}
126                 INSTALLS += qt_libs
127         }
128         RC_FILE = ../share/win_ico/keepassx.rc
129         QMAKE_LINK_OBJECT_SCRIPT = $${OBJECTS_DIR}/$${QMAKE_LINK_OBJECT_SCRIPT}
130 #       SOURCES += main_win32.cpp
131 }
132
133 INSTALLS += target
134
135 contains(DEFINES,GLOBAL_AUTOTYPE){
136         FORMS += forms/AutoTypeDlg.ui forms/TargetWindowDlg.ui
137         HEADERS += dialogs/AutoTypeDlg.h lib/AutoTypeTreeWidget.h dialogs/TargetWindowDlg.h
138         SOURCES += dialogs/AutoTypeDlg.cpp lib/AutoTypeTreeWidget.cpp dialogs/TargetWindowDlg.cpp
139 }
140
141 FORMS += forms/AboutDlg.ui \
142          forms/AddBookmarkDlg.ui \
143          forms/CalendarDlg.ui \
144          forms/CollectEntropyDlg.ui \
145          forms/CustomizeDetailViewDlg.ui \
146          forms/DatabaseSettingsDlg.ui \
147          forms/EditEntryDlg.ui \
148          forms/EditGroupDlg.ui \
149          forms/ExpiredEntriesDlg.ui \
150          forms/HelpDlg.ui \
151          forms/MainWindow.ui \
152          forms/ManageBookmarksDlg.ui \
153          forms/PasswordDlg.ui \
154          forms/PasswordGenDlg.ui \
155          forms/SearchDlg.ui \
156          forms/SelectIconDlg.ui \
157          forms/SettingsDlg.ui \
158          forms/SimplePasswordDlg.ui \
159 #         forms/TrashCanDlg.ui \
160          forms/WorkspaceLockedWidget.ui
161
162 TRANSLATIONS_KX = translations/keepassx-de_DE.ts \
163                   translations/keepassx-es_ES.ts \
164                   translations/keepassx-fi_FI.ts \
165                   translations/keepassx-fr_FR.ts \
166                   translations/keepassx-gl_ES.ts \
167                   translations/keepassx-hu_HU.ts \
168                   translations/keepassx-it_IT.ts \
169                   translations/keepassx-ja_JP.ts \
170                   translations/keepassx-nb_NO.ts \
171                   translations/keepassx-nl_NL.ts \
172                   translations/keepassx-pl_PL.ts \
173                   translations/keepassx-ru_RU.ts \
174                   translations/keepassx-tr_TR.ts \
175                   translations/keepassx-uk_UA.ts \
176                   translations/keepassx-zh_CN.ts
177
178 TRANSLATIONS_DISABLED = translations/keepassx-cs_CZ.ts
179
180 TRANSLATIONS_QT = translations/qt_fi.ts \
181                   translations/qt_hu.ts \
182                   translations/qt_it.ts \
183                   translations/qt_nl.ts \
184                   translations/qt_tr.ts
185
186 TRANSLATIONS = $$TRANSLATIONS_KX $$TRANSLATIONS_DISABLED translations/keepassx-xx_XX.ts
187 #TRANSLATIONS_UPDATE = $$TRANSLATIONS_KX $$TRANSLATIONS_DISABLED translations/keepassx-xx_XX.ts
188 #TRANSLATIONS_COMPILE = $$TRANSLATIONS_KX $$TRANSLATIONS_QT
189
190 HEADERS += main.h \
191            mainwindow.h \
192            KpxConfig.h \
193            Database.h \
194            Kdb3Database.h \
195            lib/AutoType.h \
196            lib/bookmarks.h \
197            lib/EntryView.h \
198            lib/FileDialogs.h \
199            lib/GroupView.h \
200            lib/random.h \
201            lib/SecString.h \
202            lib/ShortcutWidget.h \
203            lib/tools.h \
204            lib/UrlLabel.h \
205            lib/WaitAnimationWidget.h \
206            crypto/aes.h \
207            crypto/aescpp.h \
208            crypto/aes_endian.h \
209            crypto/aes_types.h \
210            crypto/aesopt.h \
211            crypto/aestab.h \
212            crypto/arcfour.h \
213            crypto/blowfish.h \
214            crypto/sha256.h \
215            crypto/twoclass.h \
216            crypto/twofish.h \
217            crypto/yarrow.h \
218            apg/convert.h \
219            apg/owntypes.h \
220            apg/pronpass.h \
221            apg/randpass.h \
222            apg/smbl.h \
223            dialogs/AboutDlg.h \
224            dialogs/AddBookmarkDlg.h \
225            dialogs/CalendarDlg.h \
226            dialogs/CollectEntropyDlg.h \
227            dialogs/CustomizeDetailViewDlg.h \
228            dialogs/DatabaseSettingsDlg.h \
229            dialogs/EditEntryDlg.h \
230            dialogs/EditGroupDlg.h \
231            dialogs/ExpiredEntriesDlg.h \
232            dialogs/HelpDlg.h \
233            dialogs/ManageBookmarksDlg.h \
234            dialogs/PasswordDlg.h \
235            dialogs/PasswordGenDlg.h \
236            dialogs/SearchDlg.h \
237            dialogs/SelectIconDlg.h \
238            dialogs/SettingsDlg.h \
239            dialogs/SimplePasswordDlg.h \
240 #           dialogs/TrashCanDlg.h \
241            import/Import.h \
242 #           import/Import_GnuKeyRing.h \
243            import/Import_KeePassX_Xml.h \
244            import/Import_KWalletXml.h \
245            import/Import_PwManager.h \
246            export/Export.h \
247            export/Export_KeePassX_Xml.h \
248            export/Export_Txt.h \
249            plugins/interfaces/IFileDialog.h \
250            plugins/interfaces/IIconTheme.h \
251            plugins/interfaces/IGnomeInit.h \
252            plugins/interfaces/IKdeInit.h
253
254 SOURCES += main.cpp \
255            mainwindow.cpp \
256            KpxConfig.cpp \
257            Database.cpp \
258            Kdb3Database.cpp \
259            lib/bookmarks.cpp \
260            lib/EntryView.cpp \
261            lib/FileDialogs.cpp \
262            lib/GroupView.cpp \
263            lib/random.cpp \
264            lib/SecString.cpp \
265            lib/ShortcutWidget.cpp \
266            lib/tools.cpp \
267            lib/UrlLabel.cpp \
268            lib/WaitAnimationWidget.cpp \
269            crypto/aescrypt.c \
270            crypto/aeskey.c \
271            crypto/aes_modes.c \
272            crypto/aestab.c \
273            crypto/arcfour.cpp \
274            crypto/blowfish.cpp \
275            crypto/sha256.cpp \
276            crypto/twoclass.cpp \
277            crypto/twofish.cpp \
278            crypto/yarrow.cpp \
279            apg/convert.c \
280            apg/pronpass.c \
281            apg/randpass.c \
282            dialogs/AboutDlg.cpp \
283            dialogs/AddBookmarkDlg.cpp \
284            dialogs/CalendarDlg.cpp \
285            dialogs/CollectEntropyDlg.cpp \
286            dialogs/CustomizeDetailViewDlg.cpp \
287            dialogs/DatabaseSettingsDlg.cpp \
288            dialogs/EditEntryDlg.cpp \
289            dialogs/EditGroupDlg.cpp \
290            dialogs/ExpiredEntriesDlg.cpp \
291            dialogs/HelpDlg.cpp \
292            dialogs/ManageBookmarksDlg.cpp \
293            dialogs/PasswordDlg.cpp \
294            dialogs/PasswordGenDlg.cpp \
295            dialogs/SearchDlg.cpp \
296            dialogs/SelectIconDlg.cpp \
297            dialogs/SettingsDlg.cpp \
298            dialogs/SimplePasswordDlg.cpp \
299 #           dialogs/TrashCanDlg.cpp \
300            import/Import.cpp \
301 #           import/Import_GnuKeyRing.cpp \
302            import/Import_KeePassX_Xml.cpp \
303            import/Import_KWalletXml.cpp \
304            import/Import_PwManager.cpp \
305            export/Export.cpp \
306            export/Export_KeePassX_Xml.cpp \
307            export/Export_Txt.cpp
308
309 isEqual(PRECOMPILED,0) {
310         QMAKE_CXXFLAGS += -include keepassx.h
311 }
312 else {
313         CONFIG += precompile_header
314         PRECOMPILED_HEADER = keepassx.h
315 }
316
317 RESOURCES += res/resources.qrc
318
319 #isEmpty(QMAKE_LRELEASE) {
320 #       win32 {
321 #               QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
322 #       }
323 #       else {
324 #               QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease-qt4
325 #               !exists($$QMAKE_LRELEASE) : QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
326 #       }
327 #}
328
329 #exists($$QMAKE_LRELEASE) {
330 #       updateqm.input = TRANSLATIONS_COMPILE
331 #       updateqm.output = ../share/keepassx/i18n/${QMAKE_FILE_BASE}.qm
332 #       updateqm.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ../share/keepassx/i18n/${QMAKE_FILE_BASE}.qm
333 #       updateqm.CONFIG += no_link
334 #       
335 #       QMAKE_EXTRA_COMPILERS += updateqm
336 #       PRE_TARGETDEPS += compiler_updateqm_make_all
337 #}
338 #else {
339 #       message("*** lrelease not found - can't compile translation files")
340 #}