Fix bug#168 - "API documentation suggestions" and other fixes.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
This commit is contained in:
parent
9eddff5940
commit
3e0af488ee
6 changed files with 497 additions and 101 deletions
|
|
@ -1,91 +1,54 @@
|
|||
find_program(graphviz_exec dot)
|
||||
project(doc)
|
||||
|
||||
if (QT_SRC_DIR)
|
||||
set(DOC_DATA_DIR "${CMAKE_CURRENT_BINARY_DIR}/qdoc3-output")
|
||||
configure_file("pyside.qdocconf.in" "pyside.qdocconf" @ONLY)
|
||||
|
||||
if (NOT ${graphviz_exec} STREQUAL graphviz_exec-NOTFOUND)
|
||||
add_custom_target(qdoc3
|
||||
COMMAND qdoc3 pyside.qdocconf
|
||||
COMMENT "Running qdoc3 against Qt source code..."
|
||||
SOURCE "pyside.qdocconf")
|
||||
|
||||
add_custom_target(apidoc
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/rst
|
||||
COMMAND sphinx-build -b html ${CMAKE_CURRENT_BINARY_DIR}/rst htmldocs
|
||||
COMMAND sphinx-build -b html ${CMAKE_CURRENT_BINARY_DIR}/rst html
|
||||
)
|
||||
|
||||
# create conf.py based on conf.py.in
|
||||
configure_file("conf.py.in" "rst/conf.py" @ONLY)
|
||||
configure_file(typesystem_doc.xml.in typesystem_doc.xml @ONLY)
|
||||
|
||||
# copy pyside.qdocconf to qt source dir.
|
||||
configure_file("pyside.qdocconf" "${QT_SRC_DIR}/tools/qdoc3/test/pyside.qdocconf" @ONLY)
|
||||
set(DOC_DATA_DIR "${CMAKE_CURRENT_BINARY_DIR}/qt4xmldoc")
|
||||
set(ENV{QTDIR} ${QT_SRC_DIR} )
|
||||
|
||||
add_custom_target(qdoc3
|
||||
COMMAND QTDIR=${QT_SRC_DIR} qdoc3 pyside.qdocconf
|
||||
WORKING_DIRECTORY "${QT_SRC_DIR}/tools/qdoc3/test"
|
||||
COMMENT "Running qdoc3 against Qt source code..."
|
||||
SOURCE "pyside.qdocconf")
|
||||
|
||||
macro(create_doc module typesystem_path)
|
||||
string(REGEX REPLACE "^Qt" "" module_name ${module})
|
||||
string(TOLOWER ${module_name} module_name)
|
||||
add_custom_target("${module}-apidoc"
|
||||
COMMAND ${GENERATORRUNNER_BINARY} --generatorSet=qtdoc
|
||||
${pyside_BINARY_DIR}/global.h
|
||||
--include-paths=${QT_INCLUDE_DIR}:${QT_QTCORE_INCLUDE_DIR}
|
||||
--typesystem-paths=${pyside_SOURCE_DIR}:${${module}_BINARY_DIR}:${typesystem_path}
|
||||
${pyside_SOURCE_DIR}/${module}/typesystem_${module_name}.xml
|
||||
--library-source-dir=${QT_SRC_DIR}
|
||||
--documentation-only
|
||||
--documentation-data-dir=${DOC_DATA_DIR}
|
||||
--documentation-out-dir=${CMAKE_CURRENT_BINARY_DIR}/rst
|
||||
--documentation-code-snippets-dir=${CMAKE_CURRENT_SOURCE_DIR}/codesnippets
|
||||
WORKING_DIRECTORY ${${module}_SOURCE_DIR}
|
||||
|
||||
COMMENT "Running generator to generate documentation of ${module}..."
|
||||
add_custom_target("docrsts"
|
||||
COMMAND ${GENERATORRUNNER_BINARY} --generatorSet=qtdoc
|
||||
${pyside_BINARY_DIR}/global.h
|
||||
--include-paths="${QT_INCLUDE_DIR}${PATH_SEP}${QT_QTCORE_INCLUDE_DIR}"
|
||||
--api-version=${SUPPORTED_QT_VERSION}
|
||||
--typesystem-paths="${pyside_SOURCE_DIR}${PATH_SEP}${QtCore_SOURCE_DIR}${PATH_SEP}${QtDeclarative_SOURCE_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}${PATH_SEP}${QtHelp_SOURCE_DIR}${PATH_SEP}${QtMaemo5_SOURCE_DIR}${PATH_SEP}${QtMultimedia_SOURCE_DIR}${PATH_SEP}${QtNetwork_SOURCE_DIR}${PATH_SEP}${QtOpenGL_SOURCE_DIR}${PATH_SEP}${QtScript_SOURCE_DIR}${PATH_SEP}${QtScriptTools_SOURCE_DIR}${PATH_SEP}${QtSql_SOURCE_DIR}${PATH_SEP}${QtSvg_SOURCE_DIR}${PATH_SEP}${QtTest_SOURCE_DIR}${PATH_SEP}${QtUiTools_SOURCE_DIR}${PATH_SEP}${QtWebKit_SOURCE_DIR}${PATH_SEP}${QtXml_SOURCE_DIR}${PATH_SEP}${QtXmlPatterns_SOURCE_DIR}"
|
||||
--library-source-dir=${QT_SRC_DIR}
|
||||
--documentation-only
|
||||
--documentation-data-dir=${DOC_DATA_DIR}
|
||||
--output-directory=${CMAKE_CURRENT_BINARY_DIR}/rst
|
||||
--documentation-code-snippets-dir=${CMAKE_CURRENT_SOURCE_DIR}/codesnippets
|
||||
${CMAKE_CURRENT_BINARY_DIR}/typesystem_doc.xml
|
||||
WORKING_DIRECTORY ${${module}_SOURCE_DIR}
|
||||
COMMENT "Running generator to generate documentation..."
|
||||
)
|
||||
add_dependencies("${module}-apidoc" qdoc3)
|
||||
add_dependencies(apidoc "${module}-apidoc")
|
||||
endmacro()
|
||||
add_dependencies(apidoc docrsts)
|
||||
add_dependencies(docrsts qdoc3)
|
||||
|
||||
create_doc(QtCore "")
|
||||
create_doc(QtGui "${QtCore_SOURCE_DIR}")
|
||||
create_doc(QtHelp "${QtCore_SOURCE_DIR}:${QtGui_BINARY_DIR}:${QtGui_SOURCE_DIR}:${QtHelp_SOURCE_DIR}")
|
||||
create_doc(QtNetwork "${QtCore_SOURCE_DIR}")
|
||||
create_doc(QtOpengl "${QtCore_SOURCE_DIR}:${QtGui_BINARY_DIR}:${QtGui_SOURCE_DIR}:${QtOpenGL_SOURCE_DIR}")
|
||||
create_doc(QtSql "${QtCore_SOURCE_DIR}:${QtGui_BINARY_DIR}:${QtGui_SOURCE_DIR}:${QtSql_SOURCE_DIR}")
|
||||
create_doc(QtSvg "${QtCore_SOURCE_DIR}:${QtGui_SOURCE_DIR}:${QtGui_BINARY_DIR}")
|
||||
create_doc(QtUitools "${QtCore_SOURCE_DIR}:${QtGui_BINARY_DIR}:${QtGui_SOURCE_DIR}:${QtXml_SOURCE_DIR}:${QtUiTools_SOURCE_DIR}")
|
||||
create_doc(QtXml "${QtCore_SOURCE_DIR}")
|
||||
create_doc(QtWebKit "${QtCore_SOURCE_DIR}:${QtGui_SOURCE_DIR}:${QtGui_BINARY_DIR}:${QtNetwork_SOURCE_DIR}")
|
||||
create_doc(QtMultimedia "${QtCore_SOURCE_DIR}:${QtGui_SOURCE_DIR}:${QtGui_BINARY_DIR}")
|
||||
create_doc(QtScript "${QtCore_SOURCE_DIR}")
|
||||
create_doc(QtScriptTools "${QtCore_SOURCE_DIR}:${QtScript_SOURCE_DIR}:${QtGui_SOURCE_DIR}:${QtGui_BINARY_DIR}")
|
||||
create_doc(QtTest "${QtCore_SOURCE_DIR}:${QtGui_SOURCE_DIR}:${QtGui_BINARY_DIR}")
|
||||
create_doc(QtXmlPatterns "${QtCore_SOURCE_DIR}")
|
||||
create_doc(phonon "${QtCore_SOURCE_DIR}:${QtGui_SOURCE_DIR}:${QtGui_BINARY_DIR}")
|
||||
if (QT_QTDECLARATIVE_FOUND)
|
||||
create_doc(QtDeclarative "${QtCore_SOURCE_DIR}:${QtGui_SOURCE_DIR}:${QtGui_BINARY_DIR}:${QtNetwork_SOURCE_DIR}")
|
||||
endif()
|
||||
|
||||
#create devhelp file
|
||||
add_custom_target(apidevhelp
|
||||
COMMAND python;${CMAKE_CURRENT_SOURCE_DIR}/pyhtml2devhelp.py;${CMAKE_BINARY_DIR}/apidoc/html;index.html >
|
||||
${CMAKE_BINARY_DIR}/apidoc/html/PySide.devhelp;${BINDING_API_VERSION}&&;
|
||||
gzip;-9v;-f;${CMAKE_BINARY_DIR}/apidoc/html/PySide.devhelp
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_INSTALL_PREFIX}/share/devhelp/books"
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_INSTALL_PREFIX}/share/doc/${BINDING_NAME}/html" "${CMAKE_INSTALL_PREFIX}/share/devhelp/books/${BINDING_NAME}"
|
||||
)
|
||||
# #create devhelp file
|
||||
# add_custom_target(apidevhelp
|
||||
# COMMAND python;${CMAKE_CURRENT_SOURCE_DIR}/pyhtml2devhelp.py;${CMAKE_BINARY_DIR}/apidoc/html;index.html >
|
||||
# ${CMAKE_BINARY_DIR}/apidoc/html/PySide.devhelp;${BINDING_API_VERSION}&&;
|
||||
# gzip;-9v;-f;${CMAKE_BINARY_DIR}/apidoc/html/PySide.devhelp
|
||||
# COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_INSTALL_PREFIX}/share/devhelp/books"
|
||||
# COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_INSTALL_PREFIX}/share/doc/${BINDING_NAME}/html" "${CMAKE_INSTALL_PREFIX}/share/devhelp/books/${BINDING_NAME}"
|
||||
# )
|
||||
|
||||
#install files
|
||||
add_custom_target(apidocinstall
|
||||
COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/share/doc/${BINDING_NAME} && cp -rv ${CMAKE_BINARY_DIR}/apidoc/* ${CMAKE_INSTALL_PREFIX}/share/doc/${BINDING_NAME}
|
||||
COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/share/doc/PySide-${BINDING_API_VERSION} && cp -rv ${CMAKE_CURRENT_BINARY_DIR}/html/* ${CMAKE_INSTALL_PREFIX}/share/doc/PySide-${BINDING_API_VERSION}
|
||||
)
|
||||
|
||||
add_dependencies(apidocinstall apidevhelp)
|
||||
|
||||
else ()
|
||||
message(STATUS "Missing graphviz tool (dot), apidoc generation targets disabled.")
|
||||
endif ()
|
||||
|
||||
else ()
|
||||
message(STATUS "QT_SRC_DIR variable not set, apidoc generation targets disabled.")
|
||||
endif ()
|
||||
add_dependencies(apidocinstall apidoc)
|
||||
# add_dependencies(apidocinstall apidevhelp)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue