0033661: Data Exchange, Step Import - Tessellated GDTs are not imported
[occt.git] / dox / CMakeLists.txt
CommitLineData
adc33035 1project (Overview)
2
3# directory that contains all raw OCCT overview articles (markdown format)
4set (OCCT_OVERVIEW_DIR "${CMAKE_SOURCE_DIR}/dox")
5
6# directory that contains resources for the generation of OCCT documentation
7set (OCCT_OVERVIEW_RESOURCE_DIR "${OCCT_OVERVIEW_DIR}/resources")
8
9# directory that contains all generated OCCT articles
10set (OCCT_GENERATED_DOC_DIR "${CMAKE_BINARY_DIR}/doc")
11if (NOT EXISTS "${OCCT_GENERATED_DOC_DIR}")
12 file (MAKE_DIRECTORY "${OCCT_GENERATED_DOC_DIR}")
13endif()
14
15# directory that contains generated OCCT overview articles
16set (OCCT_GENERATED_OVERVIEW_DIR "${OCCT_GENERATED_DOC_DIR}/overview")
17if (NOT EXISTS "${OCCT_GENERATED_OVERVIEW_DIR}")
18 file (MAKE_DIRECTORY "${OCCT_GENERATED_OVERVIEW_DIR}")
19endif()
20
21# directory that contains generated OCCT overview articles in html format
22set (OCCT_GENERATED_HTML_OVERVIEW_DIR "${OCCT_GENERATED_OVERVIEW_DIR}/html")
23if (NOT EXISTS "${OCCT_GENERATED_HTML_OVERVIEW_DIR}")
24 file (MAKE_DIRECTORY "${OCCT_GENERATED_HTML_OVERVIEW_DIR}")
25endif()
26
27# read OCCT articles that should be generated
28set (OCCT_ARTICLES "")
29if (EXISTS "${OCCT_OVERVIEW_DIR}/FILES_HTML.txt" )
30 file (STRINGS "${OCCT_OVERVIEW_DIR}/FILES_HTML.txt" OCCT_ARTICLES REGEX "^[^#]+")
31else()
32 message (FATAL_ERROR "FILES_HTML.txt is not found in ${OCCT_OVERVIEW_DIR}")
33endif()
34
35# configuration file for doxygen
36set (OCCT_CONFIG_FOR_DOXYGEN "${OCCT_GENERATED_DOC_DIR}/occt.cfg")
37
bbf03a4e 38set (3RDPARTY_MATHJAX_RELATIVE_PATH "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1")
adc33035 39
adc33035 40configure_file ("${OCCT_OVERVIEW_RESOURCE_DIR}/occt_ug_html.doxyfile" "${OCCT_CONFIG_FOR_DOXYGEN}" COPYONLY)
41
42# Add common options for generation of Overview and User Guides
096ef695 43file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_NUMBER = ${OCC_VERSION_STRING_EXT}")
adc33035 44file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nOUTPUT_DIRECTORY = ${OCCT_GENERATED_OVERVIEW_DIR}/.")
45file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_LOGO = ${OCCT_OVERVIEW_DIR}/resources/occ_logo.png")
44f6e8d5 46file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nEXAMPLE_PATH = ${CMAKE_SOURCE_DIR}/src")
adc33035 47
48set (OCCT_ARTICLE_PARAM_INPUT "INPUT =")
49set (OCCT_ARTICLE_PARAM_IMAGEPATH "IMAGE_PATH = ${OCCT_OVERVIEW_DIR}/resources/ ")
50
51set (OCCT_ARTICLES_ABSPATH "")
52foreach (OCCT_ARTICLE ${OCCT_ARTICLES})
53 get_filename_component (OCCT_ARTICLE_ABSOLUTE_PATH "${OCCT_OVERVIEW_DIR}/${OCCT_ARTICLE}" ABSOLUTE)
54 get_filename_component (OCCT_ARTICLE_PARENT_DIR "${OCCT_ARTICLE_ABSOLUTE_PATH}" PATH)
55
56 if (EXISTS "${OCCT_ARTICLE_PARENT_DIR}/images")
57 set (OCCT_ARTICLE_PARAM_IMAGEPATH "${OCCT_ARTICLE_PARAM_IMAGEPATH} ${OCCT_ARTICLE_PARENT_DIR}/images")
58 endif()
59
60 set (OCCT_ARTICLE_PARAM_INPUT "${OCCT_ARTICLE_PARAM_INPUT} ${OCCT_ARTICLE_ABSOLUTE_PATH}")
61
62 set (SOURCE_GROUP_NAME "")
63
64 # add the file to appropriate source group
65 get_filename_component (CURRENT_TAIL_PATH "${OCCT_ARTICLE}" PATH)
66 while (CURRENT_TAIL_PATH AND NOT "${CURRENT_TAIL_PATH}" STREQUAL "..")
67 get_filename_component (CURRENT_DIR_NAME "${CURRENT_TAIL_PATH}" NAME)
68 set (SOURCE_GROUP_NAME "${CURRENT_DIR_NAME}\\${SOURCE_GROUP_NAME}")
69
70 # one step out (get parent directory)
71 get_filename_component (CURRENT_TAIL_PATH "${CURRENT_TAIL_PATH}" PATH)
72 endwhile()
73 SOURCE_GROUP ("${SOURCE_GROUP_NAME}" FILES ${OCCT_ARTICLE_ABSOLUTE_PATH})
74
75 list (APPEND OCCT_ARTICLES_ABSPATH ${OCCT_ARTICLE_ABSOLUTE_PATH})
76endforeach()
77
78file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\n${OCCT_ARTICLE_PARAM_INPUT}")
79file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\n${OCCT_ARTICLE_PARAM_IMAGEPATH}")
80
81# Add document type-specific options
82# generate tree view
83file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nGENERATE_TREEVIEW = YES")
84
85# HTML Search engine options
86file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nSEARCHENGINE = YES")
87file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nSERVER_BASED_SEARCH = YES")
88file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nEXTERNAL_SEARCH = NO")
89
90# Formula options
91file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nMATHJAX_RELPATH = ${3RDPARTY_MATHJAX_RELATIVE_PATH}")
92
458ff6a6 93# If MSVC is used as build system, change warning format to the one recognized by MSVC
94if (MSVC)
95 file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nWARN_FORMAT = \"$file($line): $text\"")
96endif()
97
98# Avoid Doxygen parsing messages in the build log
99file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nQUIET = YES")
100
adc33035 101# Copy index file to provide fast access to HTML documentation
102file(COPY "${OCCT_OVERVIEW_RESOURCE_DIR}/index.html" DESTINATION "${OCCT_GENERATED_OVERVIEW_DIR}")
103
75378f50 104# get relative paths to documentation source files
105file (GLOB_RECURSE OCCT_OVERVIEW_FILES "${OCCT_OVERVIEW_DIR}/*")
106
107add_custom_command(OUTPUT "${OCCT_GENERATED_DOC_DIR}/overview/html/occt_logo.png"
108 COMMAND ${3RDPARTY_DOXYGEN_EXECUTABLE} ${OCCT_CONFIG_FOR_DOXYGEN}
109 DEPENDS ${OCCT_OVERVIEW_FILES}
110 WORKING_DIRECTORY ${OCCT_GENERATED_DOC_DIR}
111 COMMENT "Generating OCCT overview documentation with Doxygen"
112 VERBATIM
113)
114
115add_custom_target(${PROJECT_NAME} ALL
116 DEPENDS "${OCCT_GENERATED_DOC_DIR}/overview/html/occt_logo.png" ${OCCT_OVERVIEW_FILES}
117 SOURCES ${OCCT_ARTICLES_ABSPATH}
118 VERBATIM
119)
120
121# Create Documentation folder in solution view
adc33035 122set_property (TARGET ${PROJECT_NAME} PROPERTY FOLDER "Documentation")