include(compat.qdocconf)
include(macros.qdocconf)
include(qt-cpp-ignore.qdocconf)
include(qt-html-templates.qdocconf)
include(qt-defines.qdocconf)

project                 = QMake
description             = QMake Manual
url                     = http://qt.nokia.com/doc/4.7

indexes                 = $QT_BUILD_TREE/doc-build/html-qt/qt.index

qhp.projects            = qmake

qhp.qmake.file                = qmake.qhp
qhp.qmake.namespace           = com.trolltech.qmake.474
qhp.qmake.virtualFolder       = qdoc
qhp.qmake.indexTitle          = QMake Manual
qhp.qmake.extraFiles          = images/bg_l.png \
                             images/bg_l_blank.png \
							 images/bg_ll_blank.png \
							 images/bg_ul_blank.png \
							 images/header_bg.png \
                             images/bg_r.png \
                             images/box_bg.png \
                             images/breadcrumb.png \
                             images/bullet_gt.png \
                             images/bullet_dn.png \
                             images/bullet_sq.png \
                             images/bullet_up.png \
                             images/arrow_down.png \
                             images/feedbackground.png \
                             images/horBar.png \
                             images/page.png \
                             images/page_bg.png \
                             images/sprites-combined.png \
                             images/spinner.gif \
                             images/stylesheet-coffee-plastique.png \
                             images/taskmenuextension-example.png \
                             images/coloreditorfactoryimage.png \
                             images/dynamiclayouts-example.png \
                             scripts/functions.js \
                             scripts/jquery.js \
                             scripts/narrow.js \
                             scripts/superfish.js \
                             style/narrow.css \
                             style/superfish.css \
                             style/style_ie6.css \
                             style/style_ie7.css \
                             style/style_ie8.css \
                             style/style.css

qhp.qmake.filterAttributes    = qt 4.7.4 tools qmake
qhp.qmake.customFilters.qmake.name = qmake Manual
qhp.qmake.customFilters.qmake.filterAttributes = qt tools qmake
qhp.qmake.subprojects         = manual
qhp.qmake.subprojects.manual.title = Manual
qhp.qmake.subprojects.manual.indexTitle = qmake Manual
qhp.qmake.subprojects.manual.selectors = fake:page

language                = Cpp

sources                 = $QT_SOURCE_TREE/doc/src/development/qmake-manual.qdoc

sources.fileextensions  = "*.cpp *.qdoc"

exampledirs             = $QT_SOURCE_TREE \
                          $QT_SOURCE_TREE/examples \
                          $QT_SOURCE_TREE/doc/src

imagedirs               = $QT_SOURCE_TREE/doc/src/images \
			  $QT_SOURCE_TREE/doc/src/template/images
outputdir               = $QT_BUILD_TREE/doc-build/html-qmake
base                    = file:$QT_BUILD_TREE/doc-build/html-qmake
