From: mquinson Date: Sun, 28 Nov 2010 21:07:52 +0000 (+0000) Subject: cmake cleanup: redo the documentation generation X-Git-Tag: v3_5~113 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/35ec45b279eb57aaa44028ab6d19d747fe903071?hp=dc7bcc75749ca6fe24da694e8ab8682af0f67149 cmake cleanup: redo the documentation generation git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8718 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e525e47ed..bd14e3a64c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,16 +148,10 @@ endif(WIN32) ### Build the doc if(enable_doc) - ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_DIRECTORY}/doc/html - DEPENDS ${PROJECT_DIRECTORY}/doc/FAQ.doc - ${PROJECT_DIRECTORY}/buildtools/Cmake/GenerateDoc.cmake - ${PROJECT_DIRECTORY}/buildtools/Cmake/doc/CMakeLists.txt - COMMAND ${CMAKE_MAKE_PROGRAM} html - COMMENT "Generating the simgrid documentation..." - ) + include(${PROJECT_DIRECTORY}/buildtools/Cmake/GenerateDoc.cmake) + ADD_CUSTOM_TARGET(simgrid_documentation ALL - DEPENDS ${PROJECT_DIRECTORY}/doc/html) + DEPENDS ${PROJECT_DIRECTORY}/doc/html/generated) endif(enable_doc) ### Make Simgrid.jar and Java examples diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index 32335e8660..dae9f6cef5 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -551,6 +551,53 @@ file(GLOB_RECURSE examples_to_install_in_doc "examples/*.xml" ) +set(DOC_SOURCES + doc/contrib.doc + doc/FAQ.doc + doc/gtut-howto-design.doc + doc/gtut-howto.doc + doc/gtut-introduction.doc + doc/gtut-main.doc + doc/gtut-tour-01-bones.doc + doc/gtut-tour-02-simple.doc + doc/gtut-tour-03-args.doc + doc/gtut-tour-04-callback.doc + doc/gtut-tour-05-globals.doc + doc/gtut-tour-06-logs.doc + doc/gtut-tour-07-timers.doc + doc/gtut-tour-08-exceptions.doc + doc/gtut-tour-09-simpledata.doc + doc/gtut-tour-10-rpc.doc + doc/gtut-tour-11-explicitwait.doc + doc/gtut-tour-12-staticstruct.doc + doc/gtut-tour-13-pointers.doc + doc/gtut-tour-14-dynar.doc + doc/gtut-tour-15-manualdatadef.doc + doc/gtut-tour-16-exchangecb.doc + doc/gtut-tour.doc + doc/gtut-tour-recap-messages.doc + doc/history.doc + doc/index-API.doc + doc/index.doc + doc/logcategories.doc + doc/module-amok.doc + doc/module-gras.doc + doc/module-msg.doc + doc/module-sd.doc + doc/modules.doc + doc/module-surf.doc + doc/module-xbt.doc + doc/people.doc + doc/publis.doc +) +set(DOC_FIGS + ${PROJECT_DIRECTORY}/doc/fig/simgrid_modules.fig + ${PROJECT_DIRECTORY}/doc/fig/simgrid_modules2.fig + ${PROJECT_DIRECTORY}/doc/fig/amok_bw_test.fig + ${PROJECT_DIRECTORY}/doc/fig/amok_bw_sat.fig + ${PROJECT_DIRECTORY}/doc/fig/gras_comm.fig +) + foreach(file ${examples_to_install_in_doc}) string(REGEX REPLACE "/[^/]*$" "" file "${file}") set(new_examples_to_install_in_doc "${new_examples_to_install_in_doc}${file};") @@ -760,4 +807,6 @@ set(source_to_pack ${EXTRA_DIST} ${CMAKE_SOURCE_FILES} ${bin_files} + ${DOC_SOURCES} + ${DOC_FIGS} ) diff --git a/buildtools/Cmake/Distrib.cmake b/buildtools/Cmake/Distrib.cmake index e6179b66df..ac8ece7272 100644 --- a/buildtools/Cmake/Distrib.cmake +++ b/buildtools/Cmake/Distrib.cmake @@ -168,48 +168,6 @@ if(HAVE_RUBY) ) endif(HAVE_RUBY) -###################################### -### Fill in the "make html" target ### -###################################### - -add_custom_target(html -DEPENDS ${PROJECT_DIRECTORY}/doc/all_bib.html -COMMAND ${CMAKE_COMMAND} -E echo "cmake -DBIBTEX2HTML=${BIBTEX2HTML} ./" -COMMAND ${CMAKE_COMMAND} -DBIBTEX2HTML=${BIBTEX2HTML} ./ -COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_DIRECTORY}/buildtools/Cmake/doc/CMakeFiles -COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/buildtools/Cmake/doc/CMakeCache.txt -COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/buildtools/Cmake/doc/cmake_install.cmake -COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/buildtools/Cmake/doc/Makefile -WORKING_DIRECTORY "${PROJECT_DIRECTORY}/buildtools/Cmake/doc" -) - -add_custom_command( -OUTPUT ${PROJECT_DIRECTORY}/doc/all_bib.html - ${PROJECT_DIRECTORY}/doc/all_bib.latin1.html - ${PROJECT_DIRECTORY}/doc/all_bib.latin1.html.tmp - ${PROJECT_DIRECTORY}/doc/logcategories.sh - ${PROJECT_DIRECTORY}/doc/publis_core.bib - ${PROJECT_DIRECTORY}/doc/publis_core_bib.html - ${PROJECT_DIRECTORY}/doc/publis_core_bib.latin1.html - ${PROJECT_DIRECTORY}/doc/publis_core_bib.latin1.html.tmp - ${PROJECT_DIRECTORY}/doc/publis_count.html - ${PROJECT_DIRECTORY}/doc/publis_extern.bib - ${PROJECT_DIRECTORY}/doc/publis_extern_bib.html - ${PROJECT_DIRECTORY}/doc/publis_extern_bib.latin1.html - ${PROJECT_DIRECTORY}/doc/publis_extern_bib.latin1.html.tmp - ${PROJECT_DIRECTORY}/doc/publis_intra.bib - ${PROJECT_DIRECTORY}/doc/publis_intra_bib.html - ${PROJECT_DIRECTORY}/doc/publis_intra_bib.latin1.html - ${PROJECT_DIRECTORY}/doc/publis_intra_bib.latin1.html.tmp - ${PROJECT_DIRECTORY}/doc/tmp.realtoc - ${PROJECT_DIRECTORY}/doc/using_bib.html - ${PROJECT_DIRECTORY}/doc/using_bib.latin1.html - ${PROJECT_DIRECTORY}/doc/using_bib.latin1.html.tmp - ${PROJECT_DIRECTORY}/doc/realtoc.sh - ${PROJECT_DIRECTORY}/doc/html -COMMAND ${CMAKE_COMMAND} -E echo "Make the html doc" -) - ################################################################ ## Build a sain "make dist" target to build a source package ### ## containing only the files that I explicitely state ### @@ -291,23 +249,27 @@ add_custom_target(distcheck COMMAND chmod -R a+w simgrid-${release_version}/CMakeFiles COMMAND ${CMAKE_COMMAND} -E echo "XXX Configure" - COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build ${CMAKE_COMMAND} build .. -DCMAKE_INSTALL_PREFIX=../_inst -Wno-dev + COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build ${CMAKE_COMMAND} build .. -DCMAKE_INSTALL_PREFIX=../_inst -Wno-dev -Denable_doc=OFF # COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make dist-dir COMMAND ${CMAKE_COMMAND} -E echo "XXX Build" COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make VERBOSE=1 # This fails, unfortunately, because GRAS is broken for now -# COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build ctest -j5 --output-on-failure + COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build ctest -j5 --output-on-failure COMMAND ${CMAKE_COMMAND} -E echo "XXX Check that cleaning works" COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make clean + COMMAND ${CMAKE_COMMAND} -E echo "XXX Display what is remaining after make clean" + COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build ls -lR + COMMAND ${CMAKE_COMMAND} -E echo "XXX Remove _build and _inst directories" + COMMAND chmod a+w simgrid-${release_version}/ COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version}/_build COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version}/_inst COMMAND ${CMAKE_COMMAND} -E echo "XXX The output of the diff follows" COMMAND diff -ruN simgrid-${release_version}.cpy simgrid-${release_version} COMMAND ${CMAKE_COMMAND} -E echo "XXX end of the diff, random cleanups now" COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version}.cpy - COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version}/ + COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version} ) add_dependencies(distcheck dist-dir) diff --git a/buildtools/Cmake/GenerateDoc.cmake b/buildtools/Cmake/GenerateDoc.cmake index c2c311710b..9aba6423c5 100644 --- a/buildtools/Cmake/GenerateDoc.cmake +++ b/buildtools/Cmake/GenerateDoc.cmake @@ -17,189 +17,165 @@ message("\tBIBTOOL_PATH : ${BIBTOOL_PATH}") message("\tICONV_PATH : ${ICONV_PATH}") message("\tBIBTEX2HTML_PATH : ${BIBTEX2HTML_PATH}") -exec_program("${BIBTEX2HTML_PATH}/bibtex2html -version" OUTPUT_VARIABLE SORTIE_BIBTEX2HTML_VERSION) -STRING(REPLACE "[-bibtex]" "" SORTIE_BIBTEX2HTML_VERSION_2 ${SORTIE_BIBTEX2HTML_VERSION}) +### Check whether the bibtex2html that we found is the one that Arnaud requires +exec_program("${BIBTEX2HTML_PATH}/bibtex2html -version" OUTPUT_VARIABLE OUTPUT_BIBTEX2HTML_VERSION) +STRING(REPLACE "[-bibtex]" "" OUTPUT_BIBTEX2HTML_VERSION_2 ${OUTPUT_BIBTEX2HTML_VERSION}) if(BIBTEX2HTML_PATH) - if(${SORTIE_BIBTEX2HTML_VERSION_2} STREQUAL ${SORTIE_BIBTEX2HTML_VERSION}) # mauvaise version + if(${OUTPUT_BIBTEX2HTML_VERSION_2} STREQUAL ${OUTPUT_BIBTEX2HTML_VERSION}) # wrong version message("\nERROR --> NEED to set bibtex2html path with \"ccmake ./\" or with \"cmake -DBIBTEX2HTML= ./\"") message("\nTake care having install the good bibtex2html \n\t(download it : ftp://ftp-sop.inria.fr/epidaure/Softs/bibtex2html/bibtex2html-1.02.tar.gz)") message(FATAL_ERROR "\n") - endif(${SORTIE_BIBTEX2HTML_VERSION_2} STREQUAL ${SORTIE_BIBTEX2HTML_VERSION}) + endif(${OUTPUT_BIBTEX2HTML_VERSION_2} STREQUAL ${OUTPUT_BIBTEX2HTML_VERSION}) endif(BIBTEX2HTML_PATH) -exec_program("${CMAKE_COMMAND} -E remove_directory ${PROJECT_DIRECTORY}/doc/html" "${PROJECT_DIRECTORY}/doc/") -exec_program("${CMAKE_COMMAND} -E make_directory ${PROJECT_DIRECTORY}/doc/html" "${PROJECT_DIRECTORY}/doc/") -file(GLOB_RECURSE LISTE_UNE -"${PROJECT_DIRECTORY}/tools/gras/*.[chl]" -"${PROJECT_DIRECTORY}/src/*.[chl]" -"${PROJECT_DIRECTORY}/include/*.[chl]" +file(GLOB_RECURSE source_doxygen + "${PROJECT_DIRECTORY}/tools/gras/*.[chl]" + "${PROJECT_DIRECTORY}/src/*.[chl]" + "${PROJECT_DIRECTORY}/include/*.[chl]" ) -file(GLOB_RECURSE LISTE_DEUX -"${PROJECT_DIRECTORY}/*.doc" +ADD_CUSTOM_COMMAND( + OUTPUT ${PROJECT_DIRECTORY}/doc/html/generated + COMMENT "Generating the SimGrid documentation..." + DEPENDS ${DOC_SOURCES} ${DOC_FIGS} ${source_doxygen} + + COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_DIRECTORY}/doc/html + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_DIRECTORY}/doc/html + COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_DIRECTORY}/doc/html/generated + + WORKING_DIRECTORY ${PROJECT_DIRECTORY}/doc/ ) + + + string(REGEX REPLACE ";.*logcategories.doc" "" LISTE_DEUX "${LISTE_DEUX}") -set(DOCSSOURCES "${LISTE_UNE}\n${LISTE_DEUX}") +#DOC_SOURCE=doc/*.doc, defined in DefinePackage +set(DOCSSOURCES "${source_doxygen}\n${DOC_SOURCE}") string(REPLACE "\n" ";" DOCSSOURCES ${DOCSSOURCES}) -set(FIGS -${PROJECT_DIRECTORY}/doc/fig/simgrid_modules.fig -${PROJECT_DIRECTORY}/doc/fig/simgrid_modules2.fig -${PROJECT_DIRECTORY}/doc/fig/amok_bw_test.fig -${PROJECT_DIRECTORY}/doc/fig/amok_bw_sat.fig -${PROJECT_DIRECTORY}/doc/fig/gras_comm.fig -) -set(PNGS -${PROJECT_DIRECTORY}/doc/webcruft/simgrid_logo.png -${PROJECT_DIRECTORY}/doc/webcruft/simgrid_logo_small.png -${PROJECT_DIRECTORY}/doc/webcruft/poster_thumbnail.png +set(DOC_PNGS + ${PROJECT_DIRECTORY}/doc/webcruft/simgrid_logo.png + ${PROJECT_DIRECTORY}/doc/webcruft/simgrid_logo_small.png + ${PROJECT_DIRECTORY}/doc/webcruft/poster_thumbnail.png ) if(DOXYGEN_PATH AND FIG2DEV_PATH) - exec_program("${FIG2DEV_PATH}/fig2dev -Lmap ${PROJECT_DIRECTORY}/doc/fig/simgrid_modules.fig" OUTPUT_VARIABLE output_fig2dev) - string(REPLACE "\n" ";" output_fig2dev "${output_fig2dev}") + ADD_CUSTOM_COMMAND(APPEND + OUTPUT doc/html/generated + COMMAND ${FIG2DEV_PATH}/fig2dev -Lmap ${PROJECT_DIRECTORY}/doc/fig/simgrid_modules.fig |perl -pe 's/imagemap/simgrid_modules/g'| perl -pe 's/ ${PROJECT_DIRECTORY}/doc/simgrid_modules.map + ) - file(REMOVE ${PROJECT_DIRECTORY}/doc/simgrid_modules.map) - - foreach(line ${output_fig2dev}) - string(REGEX MATCH "IMG" test_oki1 "${line}") - string(REGEX MATCH "MAP" test_oki2 "${line}") - string(REGEX MATCH "AREA" test_oki3 "${line}") - if(test_oki1 OR test_oki2 OR test_oki3) - string(REPLACE "imagemap" "simgrid_modules" line "${line}") - string(REPLACE ".gif" ".png" line "${line}") - string(REPLACE " ${tmp_file}" "${PROJECT_DIRECTORY}/doc/") + ADD_CUSTOM_COMMAND(APPEND + OUTPUT doc/html/generated + COMMAND "${FIG2DEV_PATH}/fig2dev -Lpng ${file} ${tmp_file}" + ) endforeach(file ${FIGS}) - exec_program("${CMAKE_COMMAND} -E touch ${PROJECT_DIRECTORY}/doc/index-API.doc ${PROJECT_DIRECTORY}/doc/.FAQ.doc.toc ${PROJECT_DIRECTORY}/doc/.index.doc.toc ${PROJECT_DIRECTORY}/doc/.contrib.doc.toc ${PROJECT_DIRECTORY}/doc/.history.doc.toc" "${PROJECT_DIRECTORY}/doc/") + ADD_CUSTOM_COMMAND(APPEND + OUTPUT doc/html/generated + COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_DIRECTORY}/doc/index-API.doc ${PROJECT_DIRECTORY}/doc/.FAQ.doc.toc ${PROJECT_DIRECTORY}/doc/.index.doc.toc ${PROJECT_DIRECTORY}/doc/.contrib.doc.toc ${PROJECT_DIRECTORY}/doc/.history.doc.toc + ) - if(NOT EXISTS ${PROJECT_DIRECTORY}/doc/html) - file(MAKE_DIRECTORY ${PROJECT_DIRECTORY}/doc/html) - endif(NOT EXISTS ${PROJECT_DIRECTORY}/doc/html) - - foreach(file ${PNGS}) - exec_program("${CMAKE_COMMAND} -E copy ${file} ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") - endforeach(file ${PNGS}) - - exec_program("${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot_thn.jpg ${PROJECT_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot.jpg ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/triva-time_interval.png ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/triva-graph_configuration.png ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/triva-graph_visualization.png ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/simgrid.css ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") - - set(top_srcdir "..") - set(WARNING "This file is generated, do not edit") - set(srcdir ".") + + foreach(file ${DOC_PNGS}) + ADD_CUSTOM_COMMAND(APPEND + OUTPUT doc/html/generated + COMMAND ${CMAKE_COMMAND} -E copy ${file} ${PROJECT_DIRECTORY}/doc/html/ + ) + endforeach(file ${DOC_PNGS}) + + ADD_CUSTOM_COMMAND(APPEND + OUTPUT doc/html/generated + COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot_thn.jpg ${PROJECT_DIRECTORY}/doc/html/ + COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot.jpg ${PROJECT_DIRECTORY}/doc/html/ + COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/triva-graph_configuration.png ${PROJECT_DIRECTORY}/doc/html/ + COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/triva-graph_visualization.png ${PROJECT_DIRECTORY}/doc/html/ + COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/doc/simgrid.css ${PROJECT_DIRECTORY}/doc/html/ + ) + configure_file(${PROJECT_DIRECTORY}/doc/Doxyfile.in ${PROJECT_DIRECTORY}/doc/Doxyfile @ONLY) -# First pass - exec_program("${DOXYGEN_PATH}/doxygen ${PROJECT_DIRECTORY}/doc/Doxyfile" "${PROJECT_DIRECTORY}/doc/") - - exec_program("${PROJECT_DIRECTORY}/tools/doxygen/index_create.pl" "${PROJECT_DIRECTORY}/doc/" - ARGS simgrid.tag index-API.doc) - exec_program("${PROJECT_DIRECTORY}/tools/doxygen/toc_create.pl" "${PROJECT_DIRECTORY}/doc/" - ARGS FAQ.doc index.doc contrib.doc gtut-introduction.doc history.doc) -# Second pass - exec_program("${DOXYGEN_PATH}/doxygen ${PROJECT_DIRECTORY}/doc/Doxyfile" "${PROJECT_DIRECTORY}/doc/") -# Post-processing - - exec_program("${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/doc/html/dir*" "${PROJECT_DIRECTORY}/doc/") - - exec_program("${PROJECT_DIRECTORY}/tools/doxygen/index_php.pl""${PROJECT_DIRECTORY}/doc/" - ARGS index.php.in html/index.html index.php) - exec_program("${PROJECT_DIRECTORY}/tools/doxygen/doxygen_postprocesser.pl" "${PROJECT_DIRECTORY}/doc/") - -#html/gras.html: - exec_program("${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/gras.html" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E echo \"


Grid Reality And Simulation.

\" >> ${PROJECT_DIRECTORY}/doc/html/gras.html" "${PROJECT_DIRECTORY}/doc/") -#html/amok.html: - exec_program("${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/amok.html" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E echo \"


Advanced Metacomputing Overlay Kit.

\" >> ${PROJECT_DIRECTORY}/doc/html/amok.html" "${PROJECT_DIRECTORY}/doc/") -#html/msg.html: - exec_program("${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/msg.html" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E echo \"


Meta SimGrid.

\" >> ${PROJECT_DIRECTORY}/doc/html/msg.html" "${PROJECT_DIRECTORY}/doc/") -#html/simdag.html: - exec_program("${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/simdag.html" "${PROJECT_DIRECTORY}/doc/") - exec_program("${CMAKE_COMMAND} -E echo \"


DAG Simulator.

\" >> ${PROJECT_DIRECTORY}/doc/html/simdag.html" "${PROJECT_DIRECTORY}/doc/") -if(BIBTOOL_PATH AND BIBTEX2HTML_PATH AND ICONV_PATH) + ADD_CUSTOM_COMMAND(OUTPUT doc/html/generated APPEND + COMMAND ${CMAKE_COMMAND} -E echo "XX First Doxygen pass" + COMMAND ${DOXYGEN_PATH}/doxygen ${PROJECT_DIRECTORY}/doc/Doxyfile + COMMAND ${PROJECT_DIRECTORY}/tools/doxygen/index_create.pl simgrid.tag index-API.doc + COMMAND ${PROJECT_DIRECTORY}/tools/doxygen/toc_create.pl FAQ.doc index.doc contrib.doc gtut-introduction.doc history.doc + + COMMAND ${CMAKE_COMMAND} -E echo XX Second Doxygen pass + COMMAND ${DOXYGEN_PATH}/doxygen ${PROJECT_DIRECTORY}/doc/Doxyfile + + COMMAND ${CMAKE_COMMAND} -E echo XX Post-processing Doxygen result + COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/doc/html/dir* + COMMAND ${PROJECT_DIRECTORY}/tools/doxygen/index_php.pl index.php.in html/index.html index.php + COMMAND ${PROJECT_DIRECTORY}/tools/doxygen/doxygen_postprocesser.pl + + COMMAND ${CMAKE_COMMAND} -E echo XX Create shortcuts pages + COMMAND ${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/gras.html + COMMAND ${CMAKE_COMMAND} -E echo \"


Grid Reality And Simulation.

\" >> ${PROJECT_DIRECTORY}/doc/html/gras.html + + COMMAND ${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/amok.html + COMMAND ${CMAKE_COMMAND} -E echo \"


Advanced Metacomputing Overlay Kit.

\" >> ${PROJECT_DIRECTORY}/doc/html/amok.html -#publis_count.html: all.bib - exec_program("${PROJECT_DIRECTORY}/tools/doxygen/bibtex2html_table_count.pl < ${PROJECT_DIRECTORY}/doc/all.bib > ${PROJECT_DIRECTORY}/doc/publis_count.html" "${PROJECT_DIRECTORY}/doc/") + COMMAND ${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/msg.html + COMMAND ${CMAKE_COMMAND} -E echo \"


Meta SimGrid.

\" >> ${PROJECT_DIRECTORY}/doc/html/msg.html -#publis_core.bib: all.bib - exec_program("${BIBTOOL_PATH}/bibtool -- 'select.by.string={category \"core\"}' -- 'preserve.key.case={on}' -- 'preserve.keys={on}' ${PROJECT_DIRECTORY}/doc/all.bib -o ${PROJECT_DIRECTORY}/doc/publis_core.bib" "${PROJECT_DIRECTORY}/doc/") + COMMAND ${CMAKE_COMMAND} -E echo \"\" > ${PROJECT_DIRECTORY}/doc/html/simdag.html + COMMAND ${CMAKE_COMMAND} -E echo \"


DAG Simulator.

\" >> ${PROJECT_DIRECTORY}/doc/html/simdag.html + ) -#publis_extern.bib: all.bib - exec_program("${BIBTOOL_PATH}/bibtool -- 'select.by.string={category \"extern\"}' -- 'preserve.key.case={on}' -- 'preserve.keys={on}' ${PROJECT_DIRECTORY}/doc/all.bib -o ${PROJECT_DIRECTORY}/doc/publis_extern.bib" "${PROJECT_DIRECTORY}/doc/") +if(BIBTOOL_PATH AND BIBTEX2HTML_PATH AND ICONV_PATH) + ADD_CUSTOM_COMMAND( + OUTPUT ${PROJECT_DIRECTORY}/doc/publis_count.html + DEPENDS all.bib + COMMAND ${PROJECT_DIRECTORY}/tools/doxygen/bibtex2html_table_count.pl < ${PROJECT_DIRECTORY}/doc/all.bib > ${PROJECT_DIRECTORY}/doc/publis_count.html + ) + add_dependencies(doc/html/generated ${PROJECT_DIRECTORY}/doc/publis_count.html) -#publis_intra.bib: all.bib - exec_program("${BIBTOOL_PATH}/bibtool -- 'select.by.string={category \"intra\"}' -- 'preserve.key.case={on}' -- 'preserve.keys={on}' ${PROJECT_DIRECTORY}/doc/all.bib -o ${PROJECT_DIRECTORY}/doc/publis_intra.bib" "${PROJECT_DIRECTORY}/doc/") + ADD_CUSTOM_COMMAND( + OUTPUT publis_core.bib publis_extern.bib publis_intra.bib + DEPENDS all.bib -#%_bib.latin1.html: %.bib - file(GLOB_RECURSE LISTE_QUATRE - "${PROJECT_DIRECTORY}/doc/*.bib" + COMMAND ${BIBTOOL_PATH}/bibtool -- 'select.by.string={category "core"}' -- 'preserve.key.case={on}' -- 'preserve.keys={on}' ${PROJECT_DIRECTORY}/doc/all.bib -o ${PROJECT_DIRECTORY}/doc/publis_core.bib + COMMAND ${BIBTOOL_PATH}/bibtool -- 'select.by.string={category "extern"}' -- 'preserve.key.case={on}' -- 'preserve.keys={on}' ${PROJECT_DIRECTORY}/doc/all.bib -o ${PROJECT_DIRECTORY}/doc/publis_extern.bib + COMMAND ${BIBTOOL_PATH}/bibtool -- 'select.by.string={category "intra"}' -- 'preserve.key.case={on}' -- 'preserve.keys={on}' ${PROJECT_DIRECTORY}/doc/all.bib -o ${PROJECT_DIRECTORY}/doc/publis_intra.bib ) - foreach(file ${LISTE_QUATRE}) - string(REPLACE ".bib" "_bib.latin1.html" file_tmp "${file}") - string(REPLACE ".html" ".html.tmp" file_tmp2 "${file_tmp}") - exec_program("${BIBTEX2HTML_PATH}/bibtex2html -single-output -nv -force -sort year -copy-icons ${file} -output ${file_tmp2} 2>&1" "${PROJECT_DIRECTORY}/doc/") - file(READ ${file_tmp2} READ_TMP) - file(REMOVE ${file_tmp2}) - string(REPLACE "\n" ";" READ_TMP ${READ_TMP}) + + foreach(file "publis_core publis_extern publis_intra") + ADD_CUSTOM_COMMAND( + OUTPUT ${PROJECT_DIRECTORY}/doc/${file}.html + DEPENDS "${file}.bib" - foreach(line ${READ_TMP}) - string(REGEX MATCH "WARNING: unknown field type" line1 ${line}) - if(NOT line1) - file(APPEND ${file_tmp2} "${line}\n") - endif(NOT line1) - endforeach(line ${READ_TMP}) - exec_program("${PROJECT_DIRECTORY}/tools/doxygen/bibtex2html_postprocessor.pl < ${file_tmp2} > ${file_tmp}" "${PROJECT_DIRECTORY}/doc/") - endforeach(file ${LISTE_QUATRE}) - - -#%_bib.html: %_bib.latin1.html - file(GLOB_RECURSE LISTE_CINQ - "${PROJECT_DIRECTORY}/doc/*_bib.latin1.html" - ) - foreach(file ${LISTE_CINQ}) - string(REPLACE "_bib.latin1.html" "_bib.html" file_tmp "${file}") - exec_program("${ICONV_PATH}/iconv --from-code latin1 --to-code utf8 ${file} --output ${file_tmp}" "${PROJECT_DIRECTORY}/doc/") - endforeach(file ${LISTE_CINQ}) + COMMAND ${PROJECT_DIRECTORY}/tools/doxygen/bibtex2html_wrapper.pl ${file} + ) + + add_dependencies(doc/html/generated ${PROJECT_DIRECTORY}/doc/${file}.html) + endforeach(file "publis_core publis_extern publis_intra") + endif(BIBTOOL_PATH AND BIBTEX2HTML_PATH AND ICONV_PATH) endif(DOXYGEN_PATH AND FIG2DEV_PATH) -file(REMOVE ${PROJECT_DIRECTORY}/doc/logcategories.doc) -file(APPEND ${PROJECT_DIRECTORY}/doc/logcategories.doc "/* Generated file, do not edit */\n") -file(APPEND ${PROJECT_DIRECTORY}/doc/logcategories.doc "/** \\addtogroup XBT_log_cats\n") -file(APPEND ${PROJECT_DIRECTORY}/doc/logcategories.doc " @{\n") -exec_program("${PROJECT_DIRECTORY}/tools/doxygen/xbt_log_extract_hierarchy.pl" "${PROJECT_DIRECTORY}/src" OUTPUT_VARIABLE output_log_extract_hierarchy) -file(APPEND ${PROJECT_DIRECTORY}/doc/logcategories.doc "${output_log_extract_hierarchy}\n") -file(APPEND ${PROJECT_DIRECTORY}/doc/logcategories.doc "@}*/") +ADD_CUSTOM_COMMAND( + OUTPUT ${PROJECT_DIRECTORY}/doc/logcategories.doc + DEPENDS ${source_doxygen} + + COMMAND ${PROJECT_DIRECTORY}/tools/doxygen/xbt_log_extract_hierarchy.pl > ${PROJECT_DIRECTORY}/doc/logcategories.doc +) -file(WRITE ${PROJECT_DIRECTORY}/doc/realtoc.sh "\#! /bin/sh") message("Check individual TOCs") file(GLOB_RECURSE LISTE_GTUT -"${PROJECT_DIRECTORY}/doc/gtut-tour-*.doc" + "${PROJECT_DIRECTORY}/doc/gtut-tour-*.doc" ) - - - foreach(file_name ${LISTE_GTUT}) file(REMOVE ${PROJECT_DIRECTORY}/doc/tmp.curtoc) file(REMOVE ${PROJECT_DIRECTORY}/doc/tmp.realtoc) diff --git a/buildtools/Cmake/doc/CMakeLists.txt b/buildtools/Cmake/doc/CMakeLists.txt deleted file mode 100644 index 972cdab6ed..0000000000 --- a/buildtools/Cmake/doc/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -cmake_minimum_required(VERSION 2.6) -project(Simgrid_doc NONE) - -### AUTO DETECT THE PROJECT_DIRECTORY -set(BIBTEX2HTML ${BIBTEX2HTML} CACHE TYPE INTERNAL FORCE) - -### SET THE PROJECT_DIRECTORY -SET(PROJECT_DIRECTORY "${CMAKE_HOME_DIRECTORY}") -string(REPLACE "/buildtools/Cmake/doc" "" PROJECT_DIRECTORY "${PROJECT_DIRECTORY}") - -include(${PROJECT_DIRECTORY}/buildtools/Cmake/GenerateDoc.cmake) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 5ebca8d225..29d15a50c7 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -465,43 +465,43 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = @srcdir@/index.doc \ - @srcdir@/FAQ.doc \ - @srcdir@/contrib.doc \ - @srcdir@/publis.doc \ - @srcdir@/people.doc \ - @srcdir@/history.doc \ +INPUT = index.doc \ + FAQ.doc \ + contrib.doc \ + publis.doc \ + people.doc \ + history.doc \ ./index-API.doc \ \ - @srcdir@/modules.doc \ - @srcdir@/module-xbt.doc \ - @srcdir@/module-msg.doc \ - @srcdir@/module-gras.doc @srcdir@/module-amok.doc \ - @srcdir@/module-sd.doc \ - @srcdir@/module-surf.doc \ + modules.doc \ + module-xbt.doc \ + module-msg.doc \ + module-gras.doc module-amok.doc \ + module-sd.doc \ + module-surf.doc \ \ - @srcdir@/gtut-main.doc \ - @srcdir@/gtut-introduction.doc \ - @srcdir@/gtut-tour.doc \ - @srcdir@/gtut-tour-01-bones.doc \ - @srcdir@/gtut-tour-02-simple.doc \ - @srcdir@/gtut-tour-03-args.doc \ - @srcdir@/gtut-tour-04-callback.doc \ - @srcdir@/gtut-tour-05-globals.doc \ - @srcdir@/gtut-tour-06-logs.doc \ - @srcdir@/gtut-tour-07-timers.doc \ - @srcdir@/gtut-tour-08-exceptions.doc \ - @srcdir@/gtut-tour-09-simpledata.doc \ - @srcdir@/gtut-tour-10-rpc.doc \ - @srcdir@/gtut-tour-11-explicitwait.doc \ - @srcdir@/gtut-tour-recap-messages.doc \ - @srcdir@/gtut-tour-12-staticstruct.doc \ - @srcdir@/gtut-tour-13-pointers.doc \ - @srcdir@/gtut-tour-14-dynar.doc \ - @srcdir@/gtut-tour-15-manualdatadef.doc \ - @srcdir@/gtut-tour-16-exchangecb.doc \ - @srcdir@/gtut-howto.doc \ - @srcdir@/gtut-howto-design.doc \ + gtut-main.doc \ + gtut-introduction.doc \ + gtut-tour.doc \ + gtut-tour-01-bones.doc \ + gtut-tour-02-simple.doc \ + gtut-tour-03-args.doc \ + gtut-tour-04-callback.doc \ + gtut-tour-05-globals.doc \ + gtut-tour-06-logs.doc \ + gtut-tour-07-timers.doc \ + gtut-tour-08-exceptions.doc \ + gtut-tour-09-simpledata.doc \ + gtut-tour-10-rpc.doc \ + gtut-tour-11-explicitwait.doc \ + gtut-tour-recap-messages.doc \ + gtut-tour-12-staticstruct.doc \ + gtut-tour-13-pointers.doc \ + gtut-tour-14-dynar.doc \ + gtut-tour-15-manualdatadef.doc \ + gtut-tour-16-exchangecb.doc \ + gtut-howto.doc \ + gtut-howto-design.doc \ \ ./logcategories.doc \ \ @@ -740,7 +740,7 @@ HTML_HEADER = # each generated HTML page. If it is left blank doxygen will generate a # standard footer. -HTML_FOOTER = @srcdir@/footer.html +HTML_FOOTER = footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to diff --git a/tools/doxygen/bibtex2html_postprocessor.pl b/tools/doxygen/bibtex2html_wrapper.pl similarity index 62% rename from tools/doxygen/bibtex2html_postprocessor.pl rename to tools/doxygen/bibtex2html_wrapper.pl index fded838496..bf24f697a7 100755 --- a/tools/doxygen/bibtex2html_postprocessor.pl +++ b/tools/doxygen/bibtex2html_wrapper.pl @@ -1,17 +1,26 @@ #!/usr/bin/perl -w use utf8; +use strict; + +my $file = shift @ARGV || die "USAGE: bibtex2html_wrapper \n"; + +my $output; + +open IN,"bibtex2html -single-output -nv -force -sort year -copy-icons ${file}.bib -output -|iconv -f latin1 -t utf8 -|"; $write=0; -while($line = ) { +while($line = ) { chomp $line; + next if $line =~ /WARNING: unknown field type/; + if($line =~ /table width/) { - $line = ; + $line = ; chomp $line; if($line =~ /height="50"/) { ## Skip preembule $write=1; do { - $line = ; + $line = ; chomp $line; } while (!($line =~ /table/)); next; @@ -19,15 +28,15 @@ while($line = ) { if($line =~ /height="35"/) { ## Change this uggly table into a h2 do { - $line = ; + $line = ; chomp $line; } while (($line =~ /; + $line = ; chomp $line; } while (!($line =~ /table/)); - print "

$title

\n"; + $output .= "

$title

\n"; next; } } @@ -43,7 +52,7 @@ while($line = ) { } if($write) { - print $line."\n"; + $output .= $line."\n"; } } diff --git a/tools/doxygen/xbt_log_extract_hierarchy.pl b/tools/doxygen/xbt_log_extract_hierarchy.pl index 8d9e70cd84..4de8b7f605 100755 --- a/tools/doxygen/xbt_log_extract_hierarchy.pl +++ b/tools/doxygen/xbt_log_extract_hierarchy.pl @@ -5,6 +5,9 @@ use warnings; my $debug = 0; +print "/* Generated file, do not edit */\n"; +print "/** \\addtogroup XBT_log_cats\n"; +print ' @{'"\n"; # Search for calls to macros defining new channels, and prepare the tree representation my %ancestor; @@ -150,3 +153,6 @@ sub check_connection { } check_connection("XBT_LOG_ROOT_CAT"); map {warn "Category $_ does not seem to be connected to the root (anc=$ancestor{$_})\n";} grep {!defined $used{$_}} sort keys %ancestor; + + +print "@}*/"; \ No newline at end of file