| 
									
										
										
										
											2012-07-22 04:05:28 +08:00
										 |  |  | # Doxygen documentation configuration
 | 
					
						
							|  |  |  | option(GTSAM_BUILD_DOCS                  "Enable/Disable building of doxygen docs"   ON)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # configure doxygen
 | 
					
						
							|  |  |  | option(GTSAM_BUILD_DOC_HTML              "Enable/Disable doxygen HTML output"    ON)
 | 
					
						
							|  |  |  | option(GTSAM_BUILD_DOC_LATEX             "Enable/Disable doxygen LaTeX output"   OFF)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # add a target to generate API documentation with Doxygen
 | 
					
						
							|  |  |  | if (GTSAM_BUILD_DOCS)
 | 
					
						
							|  |  |  |     # Convert configuration to YES/NO variables
 | 
					
						
							|  |  |  |     if (GTSAM_BUILD_DOC_HTML)
 | 
					
						
							|  |  |  |         set(GTSAM_BUILD_DOC_HTML_YN "YES")
 | 
					
						
							|  |  |  |     else() 
 | 
					
						
							|  |  |  |         set(GTSAM_BUILD_DOC_HTML_YN "NO")
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  |     
 | 
					
						
							|  |  |  |     if (GTSAM_BUILD_DOC_LATEX)
 | 
					
						
							|  |  |  |         set(GTSAM_BUILD_DOC_LATEX_YN "YES")
 | 
					
						
							|  |  |  |     else() 
 | 
					
						
							|  |  |  |         set(GTSAM_BUILD_DOC_LATEX_YN "NO")
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # GTSAM core subfolders
 | 
					
						
							|  |  |  |     set(gtsam_doc_subdirs  | 
					
						
							| 
									
										
										
										
											2021-08-27 20:10:31 +08:00
										 |  |  |         gtsam/base
 | 
					
						
							|  |  |  |         gtsam/basis 
 | 
					
						
							|  |  |  |         gtsam/discrete
 | 
					
						
							|  |  |  |         gtsam/geometry
 | 
					
						
							| 
									
										
										
										
											2022-07-27 03:51:07 +08:00
										 |  |  |         gtsam/hybrid
 | 
					
						
							| 
									
										
										
										
											2021-08-27 20:10:31 +08:00
										 |  |  |         gtsam/inference
 | 
					
						
							|  |  |  |         gtsam/linear
 | 
					
						
							|  |  |  |         gtsam/navigation
 | 
					
						
							|  |  |  |         gtsam/nonlinear
 | 
					
						
							|  |  |  |         gtsam/sam
 | 
					
						
							|  |  |  |         gtsam/sfm
 | 
					
						
							|  |  |  |         gtsam/slam
 | 
					
						
							|  |  |  |         gtsam/symbolic
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:05:28 +08:00
										 |  |  |         gtsam
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |     
 | 
					
						
							|  |  |  |     # Optional GTSAM_UNSTABLE subfolders
 | 
					
						
							|  |  |  |     set(gtsam_unstable_doc_subdirs | 
					
						
							|  |  |  |         gtsam_unstable/base
 | 
					
						
							|  |  |  |         gtsam_unstable/discrete
 | 
					
						
							| 
									
										
										
										
											2022-07-27 03:51:07 +08:00
										 |  |  |         gtsam_unstable/dynamics
 | 
					
						
							|  |  |  |         gtsam_unstable/geometry
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:05:28 +08:00
										 |  |  |         gtsam_unstable/linear
 | 
					
						
							| 
									
										
										
										
											2022-07-27 03:51:07 +08:00
										 |  |  |         gtsam_unstable/nonlinear
 | 
					
						
							|  |  |  |         gtsam_unstable/partition
 | 
					
						
							|  |  |  |         gtsam_unstable/slam
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:05:28 +08:00
										 |  |  |         gtsam_unstable
 | 
					
						
							|  |  |  |     )
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:11:43 +08:00
										 |  |  |     
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:26:07 +08:00
										 |  |  |     # Build a list of folders to include depending on build options
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:05:28 +08:00
										 |  |  |     set(doc_subdirs ${gtsam_doc_subdirs})
 | 
					
						
							|  |  |  |     if (GTSAM_BUILD_UNSTABLE)
 | 
					
						
							|  |  |  |         list(APPEND doc_subdirs ${gtsam_unstable_doc_subdirs})
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:11:43 +08:00
										 |  |  |     if (GTSAM_BUILD_EXAMPLES)
 | 
					
						
							|  |  |  |         list(APPEND doc_subdirs examples)
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  |     
 | 
					
						
							| 
									
										
										
										
											2012-07-22 04:05:28 +08:00
										 |  |  |     # From subfolders, build a list with whitespace separation of paths
 | 
					
						
							|  |  |  |     set(GTSAM_DOXYGEN_INPUT_PATHS "")
 | 
					
						
							|  |  |  |     foreach(dir ${doc_subdirs})
 | 
					
						
							|  |  |  |         set(GTSAM_DOXYGEN_INPUT_PATHS "${GTSAM_DOXYGEN_INPUT_PATHS} ${PROJECT_SOURCE_DIR}/${dir}")
 | 
					
						
							|  |  |  |     endforeach()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Generate Doxyfile
 | 
					
						
							|  |  |  |     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
 | 
					
						
							|  |  |  |     
 | 
					
						
							|  |  |  |     # Add target to actually build documentation as configured
 | 
					
						
							|  |  |  |     add_custom_target(doc | 
					
						
							|  |  |  |         ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
 | 
					
						
							|  |  |  |         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 | 
					
						
							|  |  |  |         COMMENT "Generating API documentation with Doxygen" VERBATIM
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |     
 | 
					
						
							|  |  |  |     # Clean target
 | 
					
						
							|  |  |  |     add_custom_target(doc_clean | 
					
						
							|  |  |  |         COMMAND
 | 
					
						
							|  |  |  |             cmake -E remove_directory ${CMAKE_CURRENT_SOURCE_DIR}/latex
 | 
					
						
							|  |  |  |         COMMAND
 | 
					
						
							|  |  |  |             cmake -E remove_directory ${CMAKE_CURRENT_SOURCE_DIR}/html
 | 
					
						
							|  |  |  |         COMMENT "Removing Doxygen documentation"
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  | endif()
 |