38be0d1383
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12
117 lines
4.0 KiB
Plaintext
117 lines
4.0 KiB
Plaintext
|
|
#global defaults
|
|
qtPrepareTool(QMAKE_MOC, moc)
|
|
isEmpty(MOC_DIR):MOC_DIR = .
|
|
isEmpty(QMAKE_H_MOD_MOC):QMAKE_H_MOD_MOC = moc_
|
|
isEmpty(QMAKE_EXT_CPP_MOC):QMAKE_EXT_CPP_MOC = .moc
|
|
|
|
# On Windows, put the includes into a .inc file which moc will read, if the project
|
|
# has too many includes. We do this to overcome a command-line limit on Win < XP
|
|
INCLUDETEMP=
|
|
WIN_INCLUDETEMP=
|
|
win32:count($$list($$INCLUDEPATH), 40, >) {
|
|
INCLUDETEMP = $$MOC_DIR/mocinclude.tmp
|
|
|
|
WIN_INCLUDETEMP=$$INCLUDETEMP
|
|
|
|
EOC = $$escape_expand(\\n\\t)
|
|
|
|
contains(TEMPLATE, "vc.*") {
|
|
# the VCPROJ generator will replace the \r\h with the coded \r\n: 

|
|
# No other generator understands the \h
|
|
if(win32-msvc2*|wince*msvc*): EOC = $$escape_expand(\\r\\h)
|
|
else: EOC = $$escape_expand(\\\\\\n\\t)
|
|
}
|
|
|
|
unset(INCFILELIST)
|
|
RET =
|
|
for(incfile, $$list($$INCLUDEPATH)) {
|
|
INCFILELIST = -I$$incfile
|
|
isEmpty(RET): RET += @echo $$INCFILELIST> $$WIN_INCLUDETEMP $$EOC
|
|
else: RET += @echo $$INCFILELIST>> $$WIN_INCLUDETEMP $$EOC
|
|
}
|
|
!isEmpty(INCFILELIST):RET += @echo $$INCFILELIST>> $$WIN_INCLUDETEMP $$EOC
|
|
|
|
build_pass|isEmpty(BUILDS) {
|
|
mocinclude.target = $$INCLUDETEMP
|
|
mocinclude.commands = $$RET
|
|
QMAKE_EXTRA_TARGETS += mocinclude
|
|
}
|
|
}
|
|
|
|
defineReplace(mocCmdBase) {
|
|
!isEmpty(WIN_INCLUDETEMP) {
|
|
RET =
|
|
contains(TEMPLATE, "vc.*") {
|
|
RET += $$mocinclude.commands
|
|
}
|
|
RET += $$QMAKE_MOC $(DEFINES) @$$WIN_INCLUDETEMP $$join(QMAKE_COMPILER_DEFINES, " -D", -D)
|
|
return($$RET)
|
|
}
|
|
return($$QMAKE_MOC $(DEFINES) $(INCPATH) $$join(QMAKE_COMPILER_DEFINES, " -D", -D))
|
|
}
|
|
|
|
#moc headers
|
|
moc_header.CONFIG = moc_verify
|
|
moc_header.dependency_type = TYPE_C
|
|
moc_header.commands = ${QMAKE_FUNC_mocCmdBase} ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
|
|
moc_header.output = $$MOC_DIR/$${QMAKE_H_MOD_MOC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)}
|
|
moc_header.input = HEADERS
|
|
moc_header.variable_out = SOURCES
|
|
moc_header.name = MOC ${QMAKE_FILE_IN}
|
|
!contains(TEMPLATE, "vc.*") {
|
|
!isEmpty(INCLUDETEMP):moc_header.depends += $$INCLUDETEMP
|
|
}
|
|
silent:moc_header.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_header.commands
|
|
QMAKE_EXTRA_COMPILERS += moc_header
|
|
INCREDIBUILD_XGE += moc_header
|
|
|
|
#moc sources
|
|
moc_source.CONFIG = no_link moc_verify
|
|
moc_source.dependency_type = TYPE_C
|
|
moc_source.commands = ${QMAKE_FUNC_mocCmdBase} ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
|
|
moc_source.output = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}
|
|
moc_source.input = SOURCES OBJECTIVE_SOURCES
|
|
moc_source.name = MOC ${QMAKE_FILE_IN}
|
|
!contains(TEMPLATE, "vc.*") {
|
|
!isEmpty(INCLUDETEMP):moc_source.depends += $$INCLUDETEMP
|
|
}
|
|
silent:moc_source.commands = @echo moc ${QMAKE_FILE_IN} && $$moc_source.commands
|
|
QMAKE_EXTRA_COMPILERS += moc_source
|
|
INCREDIBUILD_XGE += moc_source
|
|
|
|
#make sure we can include these files
|
|
moc_dir_short = $$MOC_DIR
|
|
contains(QMAKE_HOST.os,Windows):moc_dir_short ~= s,^.:,/,
|
|
contains(moc_dir_short, ^[/\\\\].*):INCLUDEPATH += $$MOC_DIR
|
|
else:INCLUDEPATH += $$OUT_PWD/$$MOC_DIR
|
|
|
|
# Backwards compatibility: Make shadow builds with default MOC_DIR work
|
|
# if the user did not add the source dir explicitly.
|
|
equals(MOC_DIR, .) {
|
|
CONFIG -= include_source_dir
|
|
CONFIG = include_source_dir $$CONFIG
|
|
}
|
|
|
|
#auto depend on moc
|
|
unix:!symbian:!no_mocdepend {
|
|
moc_source.depends += $$first(QMAKE_MOC)
|
|
moc_header.depends += $$first(QMAKE_MOC)
|
|
!contains(TARGET, moc) { #auto build moc
|
|
isEmpty(QMAKE_MOC_SRC):QMAKE_MOC_SRC = "$(QTDIR)/src/tools/moc"
|
|
make_moc.target = $$first(QMAKE_MOC)
|
|
make_moc.commands = (cd $$QMAKE_MOC_SRC && $(MAKE))
|
|
QMAKE_EXTRA_TARGETS += make_moc
|
|
}
|
|
}
|
|
|
|
#generate a mocclean
|
|
build_pass|isEmpty(BUILDS):mocclean.depends = compiler_moc_header_clean compiler_moc_source_clean
|
|
else:mocclean.CONFIG += recursive
|
|
QMAKE_EXTRA_TARGETS += mocclean
|
|
|
|
#generate a mocables
|
|
build_pass|isEmpty(BUILDS):mocables.depends = compiler_moc_header_make_all compiler_moc_source_make_all
|
|
else:mocables.CONFIG += recursive
|
|
QMAKE_EXTRA_TARGETS += mocables
|