o3de-gem-apis.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. source ./o3de-api-functions.sh
  3. source ./config.sh
  4. # Path to output generated files
  5. OUTPUT_DIRECTORY=${O3DEORG_PATH}/static/docs/api/gems
  6. # Path to source code
  7. GEMS=${O3DE_PATH}/Gems
  8. # Gems API landing page template
  9. LANDING_TEMPLATE=gems_index.md
  10. # File to output LANDING_TEMPLATE
  11. OUTPUT_TOC=${O3DEORG_PATH}/content/docs/api/gems/${toc}
  12. # Create Gems API landing page (https://www.o3de.org/docs/api/gems/)
  13. # If parent directories don't exist, create them
  14. if [ ! -e "${OUTPUT_TOC%%/*}" ]; then
  15. mkdir -p ${OUTPUT_TOC%%/*}
  16. fi
  17. cp ${LANDING_TEMPLATE} ${OUTPUT_TOC}
  18. # Generate a set of API docs for each Gem
  19. for gem_path in `ls -1d ${GEMS}/*/`; do
  20. # Configure and run Doxygen
  21. gem=`basename ${gem_path}`
  22. echo "* [${gem}](/docs/api/gems/${gem})" >> ${OUTPUT_TOC}
  23. config_file=`mktemp`
  24. index=index.md
  25. echo \
  26. "
  27. Welcome to the **Open 3D Engine (O3DE)** API Reference for the **${gem} Gem**!
  28. $TOC_PATTERN
  29. Return to the [Gems API Reference](/docs/api/gems) index page.
  30. " > $index
  31. main_config="core-api-doxygen.config"
  32. if [ -e "${gem}.doxygen" ]; then
  33. main_config="${gem}.doxygen"
  34. fi
  35. cat $main_config >> $config_file
  36. echo PROJECT_NAME=\"Open 3D Engine ${gem} Gem API Reference\" >> $config_file
  37. echo OUTPUT_DIRECTORY=${OUTPUT_DIRECTORY} >> $config_file
  38. echo INPUT=$(fd -t d -X echo {} \; -- Include ${gem_path}) $index >> $config_file
  39. echo HTML_OUTPUT=${gem} >> $config_file
  40. echo STRIP_FROM_PATH=$O3DE_PATH >> $config_file
  41. echo "${gem}: Using config ${config_file}, landing page ${index}"
  42. doxygen $config_file
  43. # Post-process generated files
  44. API_PATH=build/gems/${gem}
  45. API_NAME=${gem}
  46. generate_toc "${OUTPUT_DIRECTORY}/${gem}" "${gem}"
  47. done