ktigcc.pro 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. TEMPLATE = app
  2. LANGUAGE = C++
  3. VERSION = 1.80
  4. CONFIG -= debug_and_release debug_and_release_target
  5. CONFIG += qt warn_on qdbus assistant
  6. !win32:CONFIG += debug
  7. QT += xml qt3support
  8. LIBS += -lktexteditor -lkutils -lkdeui -lkdecore -lkio -lkparts -lkde3support
  9. HEADERS += tpr.h \
  10. ktigcc.h \
  11. preferences.h \
  12. srcfile.h \
  13. tiemu.h \
  14. tiemu_stub.h \
  15. callbacks.h \
  16. parsing.h \
  17. colorlistitem.h \
  18. completion.h \
  19. srcfilewin.h \
  20. projectoptions.h \
  21. programoptions.h \
  22. preferencesdlg.h \
  23. mainform.h \
  24. errorlist.h \
  25. programoutput.h \
  26. functions.h \
  27. newsdlg.h \
  28. toolsdlg.h \
  29. toolprops.h \
  30. selectstyle.h \
  31. selectcolors.h \
  32. customstyle.h \
  33. wordlist.h
  34. SOURCES += ktigcc.cpp \
  35. preferences.cpp \
  36. tpr.cpp \
  37. tiemu_stub.cpp \
  38. callbacks.cpp \
  39. parsing.cpp \
  40. completion.cpp \
  41. srcfilewin.cpp \
  42. projectoptions.cpp \
  43. programoptions.cpp \
  44. preferencesdlg.cpp \
  45. mainform.cpp \
  46. errorlist.cpp \
  47. programoutput.cpp \
  48. functions.cpp \
  49. newsdlg.cpp \
  50. toolsdlg.cpp \
  51. toolprops.cpp \
  52. selectstyle.cpp \
  53. selectcolors.cpp \
  54. customstyle.cpp \
  55. wordlist.cpp
  56. FORMS = srcfilewin.ui \
  57. projectoptions.ui \
  58. programoptions.ui \
  59. preferencesdlg.ui \
  60. mainform.ui \
  61. errorlist.ui \
  62. programoutput.ui \
  63. functions.ui \
  64. newsdlg.ui \
  65. toolsdlg.ui \
  66. toolprops.ui \
  67. selectstyle.ui \
  68. selectcolors.ui \
  69. customstyle.ui \
  70. wordlist.ui
  71. RESOURCES += icons.qrc
  72. # If this is not used, a build from /usr/.... will generate
  73. # Makefiles with relative paths for install. This totally
  74. # fucks up using INSTALL_ROOT for a staged install.
  75. # See http://bugs.debian.org/180240
  76. # (Thanks to Debian for the fix for this qmake stupidity.)
  77. QMAKE_PROJECT_DEPTH=1
  78. UI_DIR = .ui
  79. MOC_DIR = .moc
  80. OBJECTS_DIR = .obj
  81. win32 {
  82. KDEPREFIX = $$(KDEPREFIX)
  83. isEmpty(KDEPREFIX) {
  84. win32-cross-g++ {
  85. error(Please source cross-mingw32-ktigcc.sh to set up the cross-build environment.)
  86. } else {
  87. # Try running kde4-config, however chances are it's not in the path or it was compiled with a bad prefix.
  88. KDEPREFIX = $$system(kde4-config --prefix)
  89. isEmpty(KDEPREFIX):error(KDE 4 kdelibs not found, set KDEPREFIX.)
  90. !exists($$KDEPREFIX):error(KDE 4 kdelibs not found, set KDEPREFIX.)
  91. }
  92. }
  93. KDEINCDIR = $$KDEPREFIX/include
  94. # $$KDEINCDIR/mingw contains the kdewin32 headers, defining stuff like mkdtemp.
  95. INCLUDEPATH += $$KDEINCDIR/mingw $$KDEINCDIR
  96. LIBS += -lkdewin32
  97. QMAKE_LIBDIR = $$KDEPREFIX/lib $$QMAKE_LIBDIR
  98. } else {
  99. KDEPREFIX = $$system(kde4-config --prefix)
  100. isEmpty(KDEPREFIX):error(KDE 4 kdelibs required.)
  101. exists($$KDEPREFIX/include/kde4/KDE) {
  102. KDEINCDIR = $$KDEPREFIX/include/kde4
  103. } else:exists($$KDEPREFIX/include/kde/KDE) {
  104. KDEINCDIR = $$KDEPREFIX/include/kde
  105. } else {
  106. KDEINCDIR = $$KDEPREFIX/include
  107. }
  108. INCLUDEPATH += $$KDEINCDIR
  109. KDELIBDIR = $$KDEPREFIX/lib$$system(kde4-config --libsuffix)
  110. !equals(KDELIBDIR,/usr/lib):!equals(KDELIBDIR,/usr/lib64) {
  111. QMAKE_LIBDIR = $$KDELIBDIR $$QMAKE_LIBDIR
  112. !darwin-*:!macx-* {
  113. LIBS += -Wl,--rpath,"$$KDELIBDIR"
  114. }
  115. }
  116. }
  117. GLIB2_MINVERSION = 2.0.0
  118. HAVE_GLIB2 = $$system(pkg-config --atleast-version=$$GLIB2_MINVERSION glib-2.0 && echo yes || echo no)
  119. !equals(HAVE_GLIB2,yes):error(glib2 $$GLIB2_MINVERSION or higher required.)
  120. PKGCONFIG_CFLAGS += $$system(pkg-config --cflags glib-2.0)
  121. LIBS += $$system(pkg-config --libs glib-2.0)
  122. TICONV_MINVERSION = 0.0.1
  123. HAVE_TICONV = $$system(pkg-config --atleast-version=$$TICONV_MINVERSION ticonv && echo yes || echo no)
  124. !equals(HAVE_TICONV,yes):error(libticonv $$TICONV_MINVERSION or higher required.)
  125. PKGCONFIG_CFLAGS += $$system(pkg-config --cflags ticonv)
  126. LIBS += $$system(pkg-config --libs ticonv)
  127. TICABLES_MINVERSION = 0.1.3
  128. HAVE_TICABLES = $$system(pkg-config --atleast-version=$$TICABLES_MINVERSION ticables2 && echo yes || echo no)
  129. !equals(HAVE_TICABLES,yes):error(libticables2 $$TICABLES_MINVERSION or higher required.)
  130. PKGCONFIG_CFLAGS += $$system(pkg-config --cflags ticables2)
  131. LIBS += $$system(pkg-config --libs ticables2)
  132. TIFILES_MINVERSION = 0.0.9
  133. HAVE_TIFILES = $$system(pkg-config --atleast-version=$$TIFILES_MINVERSION tifiles2 && echo yes || echo no)
  134. !equals(HAVE_TIFILES,yes):error(libtifiles2 $$TIFILES_MINVERSION or higher required.)
  135. PKGCONFIG_CFLAGS += $$system(pkg-config --cflags tifiles2)
  136. LIBS += $$system(pkg-config --libs tifiles2)
  137. TICALCS_MINVERSION = 0.2.4
  138. HAVE_TICALCS = $$system(pkg-config --atleast-version=$$TICALCS_MINVERSION ticalcs2 && echo yes || echo no)
  139. !equals(HAVE_TICALCS,yes):error(libticalcs2 $$TICALCS_MINVERSION or higher required.)
  140. PKGCONFIG_CFLAGS += $$system(pkg-config --cflags ticalcs2)
  141. LIBS += $$system(pkg-config --libs ticalcs2)
  142. win32 {
  143. # Hack out hardcoded prefix from the glib2 binary package's pkg-config file.
  144. HARDCODED_GLIB_PREFIX = $$system(pkg-config --variable=prefix glib-2.0)
  145. PKGCONFIG_CFLAGS ~= s!$$HARDCODED_GLIB_PREFIX!$$KDEPREFIX!g
  146. LIBS ~= s!$$HARDCODED_GLIB_PREFIX!$$KDEPREFIX!g
  147. }
  148. TIGCC = $$(TIGCC)
  149. isEmpty(TIGCC) {
  150. TIGCC = /usr/local/tigcc
  151. }
  152. target.path = $$TIGCC/bin
  153. documentation.path = $$TIGCC/doc/ktigcc
  154. documentation.files = COPYING NEWS ChangeLog
  155. INSTALLS += target documentation
  156. CXXFLAGS = $$(CXXFLAGS)
  157. isEmpty(CXXFLAGS) {
  158. debug {
  159. CXXFLAGS = -Os -g
  160. } else {
  161. CXXFLAGS = -Os -s -fomit-frame-pointer
  162. }
  163. }
  164. *-g++*:CXXFLAGS += -DHAVE_STDINT_H
  165. # Test for a subtle API change between the official 3.80.3 release and the snapshot used by the kde-windows developers.
  166. exists($$KDEINCDIR/ksharedconfig.h):CXXFLAGS += -DHAVE_KSHAREDCONFIG_H
  167. QMAKE_CXXFLAGS_DEBUG = $$CXXFLAGS -Wno-non-virtual-dtor $$PKGCONFIG_CFLAGS
  168. QMAKE_CXXFLAGS_RELEASE = $$CXXFLAGS -Wno-non-virtual-dtor $$PKGCONFIG_CFLAGS
  169. QMAKE_LFLAGS_RELEASE = -s
  170. DISTFILES += $${documentation.files} INSTALL configure KTIGCC.anjuta fedora/ktigcc.spec images/*.png images/copyright.txt mingw/cross-mingw32-ktigcc.sh mingw/mkspecs/win32-cross-g++/qmake.conf mingw/mkspecs/win32-cross-g++/qplatformdefs.h
  171. distbz2.target = dist-bzip2
  172. distbz2.commands = $(MKDIR) .obj/ktigcc-$$VERSION && $(COPY_FILE) -p --parents ktigcc.pro $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$DISTFILES $$OBJECTS_DIR/ktigcc-$$VERSION/ && (cd $$OBJECTS_DIR && $(TAR) ktigcc-$${VERSION}.tar.bz2 -j ktigcc-$$VERSION) && $(MOVE) $$OBJECTS_DIR/ktigcc-$${VERSION}.tar.bz2 . && $(DEL_FILE) -r $$OBJECTS_DIR/ktigcc-$$VERSION
  173. rpm.target = rpm
  174. rpm.commands = rpmbuild -ta ktigcc-$${VERSION}.tar.bz2
  175. rpm.depends = distbz2
  176. QMAKE_EXTRA_UNIX_TARGETS += distbz2 rpm