rockbox/rbutil/rbutilqt/rbutilqt.pro
Dominik Riebeling f65170f1df Add config option to disable ccache during build.
When building releases in a temporary folder using ccache doesn't help, as the path of the source files is also used for identification. Disabling ccache makes it not cache objects that are likely to be never needed again (i.e. the next build will use a different file).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22922 a1c6a512-1295-4272-9138-f99709370657
2009-10-04 16:41:24 +00:00

294 lines
6.9 KiB
Prolog

# ccache
unix:!mac:!noccache {
CCACHE = $$system(which ccache)
!isEmpty(CCACHE) {
message("using ccache")
QMAKE_CXX = ccache g++
QMAKE_CC = ccache gcc
}
}
OBJECTS_DIR = $$OUT_PWD/build/o
UI_DIR = $$OUT_PWD/build/ui
MOC_DIR = $$OUT_PWD/build/moc
RCC_DIR = $$OUT_PWD/build/rcc
# check version of Qt installation
VER = $$find(QT_VERSION, ^4\.[3-9]+.*)
isEmpty(VER) {
!isEmpty(QT_VERSION) error("Qt found:" $$[QT_VERSION])
error("Qt >= 4.3 required!")
}
message("Qt version used:" $$VER)
RBBASE_DIR = $$_PRO_FILE_PWD_
RBBASE_DIR = $$replace(RBBASE_DIR,/rbutil/rbutilqt,)
message("Rockbox Base dir: "$$RBBASE_DIR)
# add a custom rule for pre-building librbspeex
!mac {
rbspeex.commands = @$(MAKE) TARGET_DIR=$$OUT_PWD/ -C $$RBBASE_DIR/tools/rbspeex librbspeex.a
}
mac {
rbspeex.commands = @$(MAKE) TARGET_DIR=$$OUT_PWD/ -C $$RBBASE_DIR/tools/rbspeex librbspeex-universal
}
QMAKE_EXTRA_TARGETS += rbspeex
PRE_TARGETDEPS += rbspeex
# rule for creating ctags file
tags.commands = ctags -R --c++-kinds=+p --fields=+iaS --extra=+q $(SOURCES)
tags.depends = $(SOURCES)
QMAKE_EXTRA_TARGETS += tags
# add a custom rule for making the translations
lrelease.commands = $$[QT_INSTALL_BINS]/lrelease -silent $$_PRO_FILE_
QMAKE_EXTRA_TARGETS += lrelease
!dbg {
PRE_TARGETDEPS += lrelease
}
#custom rules for libucl.a
!mac {
libucl.commands = @$(MAKE) TARGET_DIR=$$OUT_PWD/ -C $$RBBASE_DIR/tools/ucl/src libucl.a
}
mac {
libucl.commands = @$(MAKE) TARGET_DIR=$$OUT_PWD/ -C $$RBBASE_DIR/tools/ucl/src libucl-universal
}
QMAKE_EXTRA_TARGETS += libucl
PRE_TARGETDEPS += libucl
#custom rules for libmkamsboot.a
!mac {
libmkamsboot.commands = @$(MAKE) TARGET_DIR=$$OUT_PWD/ -C $$RBBASE_DIR/rbutil/mkamsboot libmkamsboot.a
}
mac {
libmkamsboot.commands = @$(MAKE) TARGET_DIR=$$OUT_PWD/ -C $$RBBASE_DIR/rbutil/mkamsboot libmkamsboot-universal
}
QMAKE_EXTRA_TARGETS += libmkamsboot
PRE_TARGETDEPS += libmkamsboot
SOURCES += rbutilqt.cpp \
main.cpp \
install.cpp \
base/httpget.cpp \
configure.cpp \
zip/zip.cpp \
zip/unzip.cpp \
base/zipinstaller.cpp \
progressloggergui.cpp \
installtalkwindow.cpp \
base/talkfile.cpp \
base/talkgenerator.cpp \
base/autodetection.cpp \
../ipodpatcher/ipodpatcher.c \
../sansapatcher/sansapatcher.c \
../chinachippatcher/chinachip.c \
browsedirtree.cpp \
themesinstallwindow.cpp \
base/uninstall.cpp \
uninstallwindow.cpp \
base/utils.cpp \
preview.cpp \
base/encoders.cpp \
encttscfggui.cpp \
base/encttssettings.cpp \
base/tts.cpp \
../../tools/wavtrim.c \
../../tools/voicefont.c \
base/voicefile.cpp \
createvoicewindow.cpp \
base/rbsettings.cpp \
base/rbunzip.cpp \
base/rbzip.cpp \
base/system.cpp \
sysinfo.cpp \
systrace.cpp \
base/bootloaderinstallbase.cpp \
base/bootloaderinstallmi4.cpp \
base/bootloaderinstallhex.cpp \
base/bootloaderinstallipod.cpp \
base/bootloaderinstallsansa.cpp \
base/bootloaderinstallfile.cpp \
base/bootloaderinstallchinachip.cpp \
base/bootloaderinstallams.cpp \
../../tools/mkboot.c \
../../tools/iriver.c
HEADERS += rbutilqt.h \
install.h \
base/httpget.h \
configure.h \
zip/zip.h \
zip/unzip.h \
zip/zipentry_p.h \
zip/unzip_p.h \
zip/zip_p.h \
version.h \
base/zipinstaller.h \
installtalkwindow.h \
base/talkfile.h \
base/talkgenerator.h \
base/autodetection.h \
base/progressloggerinterface.h \
progressloggergui.h \
../ipodpatcher/ipodpatcher.h \
../ipodpatcher/ipodio.h \
../ipodpatcher/parttypes.h \
../sansapatcher/sansapatcher.h \
../sansapatcher/sansaio.h \
../chinachippatcher/chinachip.h \
irivertools/h100sums.h \
irivertools/h120sums.h \
irivertools/h300sums.h \
browsedirtree.h \
themesinstallwindow.h \
base/uninstall.h \
uninstallwindow.h \
base/utils.h \
preview.h \
base/encoders.h \
encttscfggui.h \
base/encttssettings.h \
base/tts.h \
../../tools/wavtrim.h \
../../tools/voicefont.h \
base/voicefile.h \
createvoicewindow.h \
base/rbsettings.h \
base/rbunzip.h \
base/rbzip.h \
sysinfo.h \
base/system.h \
systrace.h \
base/bootloaderinstallbase.h \
base/bootloaderinstallmi4.h \
base/bootloaderinstallhex.h \
base/bootloaderinstallipod.h \
base/bootloaderinstallsansa.h \
base/bootloaderinstallfile.h \
base/bootloaderinstallchinachip.h \
base/bootloaderinstallams.h \
../../tools/mkboot.h \
../../tools/iriver.h
# Needed by QT on Win
INCLUDEPATH = $$_PRO_FILE_PWD_ $$_PRO_FILE_PWD_/irivertools $$_PRO_FILE_PWD_/zip $$_PRO_FILE_PWD_/zlib $$_PRO_FILE_PWD_/base
INCLUDEPATH += $$RBBASE_DIR/rbutil/ipodpatcher $$RBBASE_DIR/rbutil/sansapatcher $$RBBASE_DIR/tools/rbspeex $$RBBASE_DIR/tools
DEPENDPATH = $$INCLUDEPATH
LIBS += -L$$OUT_PWD -lrbspeex -lmkamsboot -lucl
TEMPLATE = app
dbg {
CONFIG += debug thread qt warn_on
DEFINES -= QT_NO_DEBUG_OUTPUT
message("debug")
}
!dbg {
CONFIG += release thread qt
DEFINES -= QT_NO_DEBUG_OUTPUT
DEFINES += NODEBUG
message("release")
}
TARGET = rbutilqt
FORMS += rbutilqtfrm.ui \
aboutbox.ui \
installfrm.ui \
progressloggerfrm.ui \
configurefrm.ui \
browsedirtreefrm.ui \
installtalkfrm.ui \
themesinstallfrm.ui \
uninstallfrm.ui \
previewfrm.ui \
createvoicefrm.ui \
sysinfofrm.ui \
systracefrm.ui
RESOURCES += $$_PRO_FILE_PWD_/rbutilqt.qrc
win32 {
RESOURCES += $$_PRO_FILE_PWD_/rbutilqt-win.qrc
}
!dbg {
RESOURCES += $$_PRO_FILE_PWD_/rbutilqt-lang.qrc
}
TRANSLATIONS += lang/rbutil_de.ts \
lang/rbutil_fi.ts \
lang/rbutil_fr.ts \
lang/rbutil_gr.ts \
lang/rbutil_he.ts \
lang/rbutil_ja.ts \
lang/rbutil_nl.ts \
lang/rbutil_pt.ts \
lang/rbutil_pt_BR.ts \
lang/rbutil_tr.ts \
lang/rbutil_zh_CN.ts \
lang/rbutil_zh_TW.ts \
QT += network
DEFINES += RBUTIL _LARGEFILE64_SOURCE
win32 {
SOURCES += ../ipodpatcher/ipodio-win32.c
SOURCES += ../ipodpatcher/ipodio-win32-scsi.c
SOURCES += ../sansapatcher/sansaio-win32.c
RC_FILE = rbutilqt.rc
LIBS += -lsetupapi -lnetapi32
}
unix {
SOURCES += ../ipodpatcher/ipodio-posix.c
SOURCES += ../sansapatcher/sansaio-posix.c
}
unix:!static:!libusb1 {
LIBS += -lusb
}
unix:!static:libusb1 {
DEFINES += LIBUSB1
LIBS += -lusb-1.0
}
unix:static {
# force statically linking of libusb. Libraries that are appended
# later will get linked dynamically again.
LIBS += -Wl,-Bstatic -lusb -Wl,-Bdynamic
}
macx {
QMAKE_MAC_SDK=/Developer/SDKs/MacOSX10.4u.sdk
QMAKE_LFLAGS_PPC=-mmacosx-version-min=10.4 -arch ppc
QMAKE_LFLAGS_X86=-mmacosx-version-min=10.4 -arch i386
CONFIG+=x86 ppc
LIBS += -L/usr/local/lib -framework IOKit
INCLUDEPATH += /usr/local/include
QMAKE_INFO_PLIST = Info.plist
RC_FILE = icons/rbutilqt.icns
# rule for creating a dmg file
dmg.commands = hdiutil create -ov -srcfolder rbutilqt.app/ rbutil.dmg
QMAKE_EXTRA_TARGETS += dmg
}
static {
QTPLUGIN += qtaccessiblewidgets
LIBS += -L$$(QT_BUILD_TREE)/plugins/accessible -lqtaccessiblewidgets
LIBS += -L.
DEFINES += STATIC
message("using static plugin")
}
unix {
target.path = /usr/local/bin
INSTALLS += target
}