Skip to content

Commit

Permalink
docs: added CMakeLists.txt
Browse files Browse the repository at this point in the history
- 'make docs' builds the complete documentation for html
- removed the symlink to source/include/autogenerated/
  • Loading branch information
franku committed May 22, 2019
1 parent e7d1665 commit 81a5a7d
Show file tree
Hide file tree
Showing 5 changed files with 155 additions and 11 deletions.
31 changes: 29 additions & 2 deletions CMakeLists.txt
Expand Up @@ -16,6 +16,33 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.

cmake_minimum_required(VERSION 3.0)
add_subdirectory(core)
add_subdirectory(webui)

project(bareos NONE)

IF(docs-build-json)
# check for wrong combinations of build flags
IF(docs-only)
MESSAGE(FATAL_ERROR "\n\"docs-build-json\" needs bareos-executables and cannot be combined with \"docs-only\"")
ENDIF()
IF(NOT traymonitor)
MESSAGE(FATAL_ERROR "\n\"docs-build-json\" needs the traymonitor executable: add \"-Dtraymonitor=yes\"")
ENDIF()
ENDIF()

IF(docs-only)
set(BUILD_BAREOS_BINARIES no)
ELSE()
set(BUILD_BAREOS_BINARIES yes)
ENDIF()

IF(BUILD_BAREOS_BINARIES)
add_subdirectory(core)
add_subdirectory(webui)
ENDIF()

IF(docs OR docs-only OR docs-build-json)
add_subdirectory(docs/manuals)
ENDIF()

4 changes: 2 additions & 2 deletions core/CMakeLists.txt
Expand Up @@ -18,7 +18,7 @@
# 02110-1301, USA.

cmake_minimum_required(VERSION 3.0)
project(bareos)
project(bareos C CXX)

INCLUDE(GNUInstallDirs)

Expand Down Expand Up @@ -223,7 +223,7 @@ mark_as_advanced(INSTALL_LIB_DIR)
# RPATH settings (from https://cmake.org/Wiki/CMake_RPATH_handling)
SET(CMAKE_SKIP_BUILD_RPATH FALSE)

SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)

SET(CMAKE_INSTALL_RPATH "${libdir}")

Expand Down
118 changes: 118 additions & 0 deletions docs/manuals/CMakeLists.txt
@@ -0,0 +1,118 @@
#
# manuals CMakeLists.txt
#

cmake_minimum_required( VERSION 3.0 )

project(bareos-docs NONE)

set( CMAKE_VERBOSE_MAKEFILE off )


###### commands building json files ######
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-dir-config-schema.json
COMMAND bareos-dir -xs > /dev/null
COMMAND bareos-dir -xs > ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-dir-config-schema.json
DEPENDS bareos-dir )

add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-sd-config-schema.json
COMMAND bareos-sd -xs > /dev/null
COMMAND bareos-sd -xs > ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-sd-config-schema.json
DEPENDS bareos-sd )

add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-fd-config-schema.json
COMMAND bareos-fd -xs > /dev/null
COMMAND bareos-fd -xs > ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-fd-config-schema.json
DEPENDS bareos-fd )

add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bconsole-config-schema.json
COMMAND bconsole -xs > /dev/null
COMMAND bconsole -xs > ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bconsole-config-schema.json
DEPENDS bconsole)

add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-tray-monitor-config-schema.json
COMMAND bareos-tray-monitor -xs > /dev/null
COMMAND bareos-tray-monitor -xs > ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-tray-monitor-config-schema.json
DEPENDS bareos-tray-monitor )


###### commands building rst files from json files ######
set( GENERATE_RESOURCE_DESCRIPTIONS_FROM_JSON_FILES ${PROJECT_SOURCE_DIR}/scripts/generate-resoure-descriptions.py --sphinx --quiet )

add_custom_command( OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-dir-*.rst.inc
COMMAND ${GENERATE_RESOURCE_DESCRIPTIONS_FROM_JSON_FILES} ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-dir-config-schema.json
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS $<$<BOOL:${docs-build-json}>:${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-dir-config-schema.json>
VERBATIM )

add_custom_command( OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-sd-*.rst.inc
COMMAND ${GENERATE_RESOURCE_DESCRIPTIONS_FROM_JSON_FILES} ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-sd-config-schema.json
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS $<$<BOOL:${docs-build-json}>:${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-sd-config-schema.json>
VERBATIM )

add_custom_command( OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-fd-*.rst.inc
COMMAND ${GENERATE_RESOURCE_DESCRIPTIONS_FROM_JSON_FILES} ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-fd-config-schema.json
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS $<$<BOOL:${docs-build-json}>:${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-fd-config-schema.json>
VERBATIM )

add_custom_command( OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bconsole-*.rst.inc
COMMAND ${GENERATE_RESOURCE_DESCRIPTIONS_FROM_JSON_FILES} ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bconsole-config-schema.json
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS $<$<BOOL:${docs-build-json}>:${PROJECT_SOURCE_DIR}/source/include/autogenerated/bconsole-config-schema.json>
VERBATIM )

add_custom_command( OUTPUT ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-tray-monitor-*.rst.inc
COMMAND ${GENERATE_RESOURCE_DESCRIPTIONS_FROM_JSON_FILES} ${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-tray-monitor-config-schema.json
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS $<$<BOOL:${docs-build-json}>:${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-tray-monitor-config-schema.json>
VERBATIM )


IF(${docs-build-json})
set( CLEAN_JSON_FILES rm -f ${PROJECT_SOURCE_DIR}/source/include/autogenerated/*.json )
ENDIF()

###### target: clean-docs ######
add_custom_target( clean-docs
COMMAND ${CLEAN_JSON_FILES}
COMMAND rm -f ${PROJECT_SOURCE_DIR}/source/include/autogenerated/*.inc
COMMAND rm -rf ${PROJECT_BINARY_DIR}/BareosMainReference )


set( AUTOGENERATED_RESOURCE_DESCRIPTION_RST_FILES
${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-dir-*.rst.inc
${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-sd-*.rst.inc
${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-fd-*.rst.inc
${PROJECT_SOURCE_DIR}/source/include/autogenerated/bconsole-*.rst.inc
${PROJECT_SOURCE_DIR}/source/include/autogenerated/bareos-tray-monitor-*.rst.inc )

###### target: check-git ######
add_custom_target ( check-git
COMMAND git diff --exit-code --compact-summary ${PROJECT_SOURCE_DIR}/source/include/autogenerated
DEPENDS ${AUTOGENERATED_RESOURCE_DESCRIPTION_RST_FILES}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMENT "Comparing json files in \"${PROJECT_SOURCE_DIR}/source/include/autogenerated\" with git repo" )


set( SPHINX_OPTS $ENV{SPHINX_OPTS} )
set( SPHINX_COMMAND sphinx-build )
set( SPHINX_BUILDDIR ${PROJECT_BINARY_DIR}/BareosMainReference )
set( SPHINX_SOURCE_DIR ${PROJECT_SOURCE_DIR}/source )

IF(${docs-only})
set(DOCS_ALL ALL) #this enables "make docs" by just typing "make"
ENDIF()

###### target: docs ######
add_custom_target( docs ${DOCS_ALL}
COMMAND ${SPHINX_COMMAND} -M html "${SPHINX_SOURCE_DIR}" "${SPHINX_BUILDDIR}" "${SPHINX_OPTS}"
DEPENDS $<$<BOOL:${docs-build-json}>:clean-docs>
DEPENDS check-git )

1 change: 0 additions & 1 deletion docs/manuals/autogenerated

This file was deleted.

12 changes: 6 additions & 6 deletions docs/manuals/scripts/generate-resoure-descriptions.py
Expand Up @@ -523,15 +523,15 @@ def createLatex(data):
logger.info( "daemon: " + daemon + ", resource: " + resource )

#pprint(schema.getResource(daemon,resource))
latex.writeResourceDirectives(daemon, resource, "autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-description.tex")
latex.writeResourceDirectiveDefs(daemon, resource, "autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-defDirective.tex")
latex.writeResourceDirectivesTable(daemon, resource, "autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-table.tex")
latex.writeResourceDirectives(daemon, resource, "source/include/autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-description.tex")
latex.writeResourceDirectiveDefs(daemon, resource, "source/include/autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-defDirective.tex")
latex.writeResourceDirectivesTable(daemon, resource, "source/include/autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-table.tex")

if latex.getDatatypes():
print latex.getDatatypes()
#print schema.getDatatype( "OPTIONS" )
#print latex.getLatexTable( schema.getDatatype( "OPTIONS" )["values"], latexDefine="%(key)s", latexLink="\\linkResourceDirective{%(key)s}" )
latex.writeDatatypeOptionsTable( filename="autogenerated/datatype-options-table.tex" )
latex.writeDatatypeOptionsTable( filename="source/include/autogenerated/datatype-options-table.tex" )



Expand All @@ -548,9 +548,9 @@ def createSphinx(data):
for resource in sphinx.getResources(daemon):
logger.info( "daemon: " + daemon + ", resource: " + resource )

sphinx.writeResourceDirectives(daemon, resource, "autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-description.rst.inc")
sphinx.writeResourceDirectives(daemon, resource, "source/include/autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-description.rst.inc")

sphinx.writeResourceDirectivesTable(daemon, resource, "autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-table.rst.inc")
sphinx.writeResourceDirectivesTable(daemon, resource, "source/include/autogenerated/" + daemon.lower()+ "-resource-"+resource.lower()+"-table.rst.inc")


#if sphinx.getDatatypes():
Expand Down

0 comments on commit 81a5a7d

Please sign in to comment.