
Fix and simplify building docs and schemas 1. Do an in-source build of derived schemas instead of building into build and checking that the files match. 2. Fix paths of installed docs, which were failing on me 3. Consolidate docs into same cmakelists that generates schema files 4. Trang is usually available as an executable, so find it with find_program. 5. Add doc dependencies to package.xml Signed-off-by: Dan Rose <dan@digilabs.io>
56 lines
2.2 KiB
CMake
56 lines
2.2 KiB
CMake
#
|
|
# Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
|
#
|
|
# This program and the accompanying materials are made available under the
|
|
# terms of the Eclipse Public License v. 2.0 which is available at
|
|
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
|
# v. 1.0 which is available at
|
|
# http://www.eclipse.org/org/documents/edl-v10.php.
|
|
#
|
|
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
|
|
|
# These are all various expressions of the configuration schema
|
|
get_filename_component(config_c_PATH "../src/core/ddsi/src/q_config.c" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
# although the following files are generated, we check them into source control for convenience
|
|
get_filename_component(config_rnc_PATH "../etc/cyclonedds.rnc" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
get_filename_component(config_xsd_PATH "../etc/cyclonedds.xsd" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
get_filename_component(config_md_PATH "./manual/options.md" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
if(BUILD_SCHEMA OR BUILD_DOCS)
|
|
find_package(Perl REQUIRED)
|
|
add_custom_command(
|
|
OUTPUT
|
|
"${config_md_PATH}" "${config_rnc_PATH}"
|
|
COMMAND
|
|
${PERL_EXECUTABLE} -w "${CMAKE_CURRENT_SOURCE_DIR}/makernc.pl" "${config_c_PATH}" "${config_md_PATH}" "${config_rnc_PATH}"
|
|
COMMENT "Generating Relax NG schema and Markdown documentation for config options"
|
|
DEPENDS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/makernc.pl"
|
|
"${config_c_PATH}")
|
|
add_custom_target(options_doc ALL DEPENDS "${config_md_PATH}" "${config_rnc_PATH}")
|
|
|
|
find_package(Trang REQUIRED)
|
|
|
|
add_custom_command(
|
|
OUTPUT "${config_xsd_PATH}"
|
|
COMMAND ${Trang_TRANG_CMD} -I rnc -O xsd "${config_rnc_PATH}" "${config_xsd_PATH}"
|
|
COMMENT "Translating schema into XSD"
|
|
DEPENDS "${config_rnc_PATH}")
|
|
add_custom_target(options_xsd ALL DEPENDS "${config_xsd_PATH}")
|
|
endif()
|
|
|
|
if(BUILD_DOCS)
|
|
find_package(Sphinx REQUIRED breathe)
|
|
sphinx_add_docs(
|
|
docs
|
|
BREATHE_PROJECTS ddsc_api_docs
|
|
BUILDER html
|
|
SOURCE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
add_dependencies(docs options_doc)
|
|
|
|
install(
|
|
DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
|
DESTINATION "${CMAKE_INSTALL_DOCDIR}/manual"
|
|
COMPONENT dev)
|
|
endif()
|