diff options
Diffstat (limited to 'doc/admin/CMakeLists.txt')
-rw-r--r-- | doc/admin/CMakeLists.txt | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/doc/admin/CMakeLists.txt b/doc/admin/CMakeLists.txt new file mode 100644 index 0000000..887fe4f --- /dev/null +++ b/doc/admin/CMakeLists.txt @@ -0,0 +1,138 @@ +# Array of names of provider directories. +set(PROVIDERS "") + +# Array of names of the providers +set(PROVIDER_CAPTIONS "") + +# Array of MOF files to generate class references from +set(PROVIDER_MOFS "") + +# Collect properties of enabled providers +if (WITH-ACCOUNT) + set(PROVIDERS ${PROVIDERS} "account") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Account") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_Account.mof") +endif (WITH-ACCOUNT) + +if (WITH-FAN) + set(PROVIDERS ${PROVIDERS} "fan") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Fan") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_Fan.mof") +endif (WITH-FAN) + +if (WITH-HARDWARE) + set(PROVIDERS ${PROVIDERS} "hardware") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Hardware") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_Hardware.mof") +endif (WITH-HARDWARE) + +if (WITH-JOURNALD) + set(PROVIDERS ${PROVIDERS} "journald") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "journald") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_Journald.mof") +endif (WITH-JOURNALD) + +if (WITH-LOGICALFILE) + set(PROVIDERS ${PROVIDERS} "logicalfile") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Logical File") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_LogicalFile.mof") +endif (WITH-LOGICALFILE) + +if (WITH-POWER) + set(PROVIDERS ${PROVIDERS} "power") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Power Management") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_PowerManagement.mof") +endif (WITH-POWER) + +if (WITH-REALMD) + set(PROVIDERS ${PROVIDERS} "realmd") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Realmd") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_Realmd.mof") +endif (WITH-REALMD) + +if (WITH-SERVICE) + set(PROVIDERS ${PROVIDERS} "service-dbus") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Service") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_Service.mof") +endif (WITH-SERVICE) + +if (WITH-SOFTWARE) + set(PROVIDERS ${PROVIDERS} "software") + set(PROVIDER_CAPTIONS ${PROVIDER_CAPTIONS} "Software") + set(PROVIDER_MOFS ${PROVIDER_MOFS} "60_LMI_Software.mof") +endif (WITH-SOFTWARE) + +list(LENGTH PROVIDERS LEN) +math(EXPR LEN '${LEN}-1') + +set(DOC_DEPS "") + +find_program(PLANTUML plantuml) + +# For each provider, define these targets: +# PROVIDER-doc-mof-dir - creates all directories +# PROVIDER-doc-mof - create .rst from .mof +# PROVIDER-doc-pic - create .svg from .uml (if needed) +# PROVIDER-doc - create .html from .rst +foreach(I RANGE ${LEN}) + list(GET PROVIDERS ${I} PROVIDER) + list(GET PROVIDER_CAPTIONS ${I} CAPTION) + list(GET PROVIDER_MOFS ${I} MOF) + add_custom_target(${PROVIDER}-doc-mof-dir + COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${PROVIDER}/mof + COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${PROVIDER}/pic + ) + + add_custom_target(${PROVIDER}-doc-mof + COMMAND openlmi-doc-class2rst + -H ${CMAKE_CURRENT_SOURCE_DIR}/header.txt + --schema /usr/share/mof/cim-current/CIM_Schema.mof + --schema /usr/share/openlmi-providers/05_LMI_Qualifiers.mof + --schema /usr/share/openlmi-providers/30_LMI_Jobs.mof + --mof ${CMAKE_SOURCE_DIR}/mof/${MOF} + CIM_ComputerSystem + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${PROVIDER}/mof + DEPENDS ${PROVIDER}-doc-mof-dir + ) + + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic) + if (PLANTUML AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic/make-svg.sh) + # We have plantuml, svgs will be regenerated + add_custom_target(${PROVIDER}-doc-pic-gen + COMMENT "Regenerating pictures using ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic/make-svg.sh" + COMMAND ./make-svg.sh + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic + ) + else (PLANTUML AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic/make-svg.sh) + # We don't have plantuml, so we depend on svgs in tarball + add_custom_target(${PROVIDER}-doc-pic-gen) + endif (PLANTUML AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic/make-svg.sh) + + add_custom_target(${PROVIDER}-doc-pic + # copy the pictures + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic/*.svg ${CMAKE_CURRENT_BINARY_DIR}/${PROVIDER}/pic/ + DEPENDS ${PROVIDER}-doc-mof-dir + DEPENDS ${PROVIDER}-doc-pic-gen + ) + + else (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic) + add_custom_target(${PROVIDER}-doc-pic) + endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/pic) + + add_custom_target(${PROVIDER}-doc + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/${PROVIDER}/*.rst ${CMAKE_CURRENT_BINARY_DIR}/${PROVIDER} + + COMMAND sphinx-build + -b html + -c ${CMAKE_CURRENT_SOURCE_DIR} + -D "version=${OPENLMI_VERSION}" -D "release=${OPENLMI_VERSION}" -D "project=OpenLMI ${CAPTION} provider" -D "epub_title=OpenLMI ${CAPTION} provider" + ${CMAKE_CURRENT_BINARY_DIR}/${PROVIDER} ${CMAKE_CURRENT_BINARY_DIR}/${PROVIDER}/html + DEPENDS ${PROVIDER}-doc-mof ${PROVIDER}-doc-pic + ) + set(DOC_DEPS ${DOC_DEPS} ${PROVIDER}-doc) +endforeach(I RANGE ${LEN}) + +# Finally, create 'doc' target to run all the previous *doc targets +add_custom_target(doc + DEPENDS ${DOC_DEPS} +) |