J'ai trouvé sur le Web un exemple de fichier cmake et l'ai placé dans le sous-répertoire /doc
de mon projet, où se trouve également le fichier myproject.doxgen
, contenant la configuration Doxygen.Créer doxygen à partir du script CMake
J'ai testé que l'exécution doxygen.exe myproject.doxygen
produit une sortie valide. J'ai seulement besoin de construire cela dans le processus CMake. Alors /doc/CMakeLists.txt
est:
find_package(Doxygen)
option(BUILD_DOCUMENTATION "Create and install the HTML based API
documentation (requires Doxygen)" ${DOXYGEN_FOUND})
if(BUILD_DOCUMENTATION)
if(NOT DOXYGEN_FOUND)
message(FATAL_ERROR "Doxygen is needed to build the documentation.")
endif()
set(doxyfile_in ${CMAKE_CURRENT_SOURCE_DIR}/../doc/myproject.doxygen)
set(doxyfile ${CMAKE_CURRENT_BINARY_DIR}/doxyfile)
configure_file(${doxyfile_in} ${doxyfile} @ONLY)
message("Doxygen build started.")
add_custom_target(doc
COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile_in}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc
COMMENT "Generating API documentation with Doxygen"
VERBATIM)
# install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc)
endif()
Il ne fonctionne pas pour moi, il ne copie le fichier de configuration d'origine dans /build/my/project/doc/
et ne fait rien de plus.
Ce que je veux, c'est générer la documentation doxygen pendant mes builds; Idéalement, uniquement lors de la création de la configuration de version.
Le fichier CMake que vous avez montré crée une cible de construction 'doc' qui génère le doxymentation - ce qui signifie que l'exécution par exemple 'make doc' (ou équivalent) va le générer. Est-ce que ça marche pour toi? Ou avez-vous besoin d'autre chose? – Angew
J'utilise le projet dans QT Creator. et ne fonctionne pas quelque chose à partir de la ligne de commande. dans/build/myproject/cela fonctionne sans commandes supplémentaires. juste via "build" d'IDE – amigo421
Il doit y avoir un "projet/cible/quelle que soit la terminologie de QtCreator" nommée "doc". Bâtiment qui va construire votre documentation. Notez que parce qu'il n'y a pas d'argument 'ALL' après le' doc' dans la commande 'add_custom_target', la cible' doc' ne fait pas partie de 'make all' (ou équivalent). – Angew