summaryrefslogtreecommitdiffstats
path: root/doc/admin/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/admin/CMakeLists.txt')
-rw-r--r--doc/admin/CMakeLists.txt138
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}
+)