diff --git a/Documentation/CMakeLists.txt b/Documentation/CMakeLists.txt
index 6a7f67a9639..b4fa742805d 100644
--- a/Documentation/CMakeLists.txt
+++ b/Documentation/CMakeLists.txt
@@ -35,7 +35,6 @@ function(configure_doxygen_package CGAL_PACKAGE_NAME)
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "GENERATE_BUGLIST = NO\n")
endif()
- file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "IMAGE_PATH = ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/fig\n")
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "EXAMPLE_PATH = ${CGAL_PACKAGE_DIR}/examples\n")
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "GENERATE_TAGFILE = ${CGAL_DOC_TAG_GEN_DIR}/${CGAL_PACKAGE_NAME}.tag\n")
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "STRIP_FROM_PATH = ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/\n")
@@ -44,19 +43,45 @@ function(configure_doxygen_package CGAL_PACKAGE_NAME)
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "STRIP_FROM_INC_PATH += ${CGAL_PACKAGE_DIR}/include/\n")
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "ALIASES += \"cgalPkgDescriptionBegin{2}=\\details \"\n")
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "ALIASES += \"cgalPkgManuals{2}=
\"\n")
-
- # figure out the dependencies
- if(EXISTS ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/dependencies)
- file(STRINGS ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/dependencies DEPENDENCIES)
+
+ # IMAGE_PATH is set by default. For Documentation, we generate the extra path using packages.txt
+ set(IMAGE_PATH_VALUES "IMAGE_PATH = ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/fig")
+ set(DEPENDENCIES "")
+ # figure out the dependencies, using the file `dependencies` or `packages.txt` for Documentation
+ if (${CGAL_PACKAGE_NAME} STREQUAL "Documentation")
+ set(PackageFile ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/packages.txt)
+ file(READ ${PackageFile} Entries)
+ string(REPLACE "\n" ";" EntriesAsList ${Entries})
+ foreach(Line ${EntriesAsList})
+ if("${Line}" MATCHES "^\\\\package_listing{.+}$")
+ string(REGEX REPLACE "^\\\\package_listing{(.*/)?(.+)}$" "\\2" PKG "${Line}")
+ list(APPEND DEPENDENCIES ${PKG})
+ # update IMAGE_PATH
+ SET(PKG_DIR "${PKG}")
+ if("${Line}" MATCHES "^\\\\package_listing{.+/.+}$")
+ string(REGEX REPLACE "^\\\\package_listing{(.+)/.+}$" "\\1" PKG_DIR "${Line}")
+ endif()
+ SET(IMG_DIR "${CMAKE_SOURCE_DIR}/${PKG_DIR}/doc/${PKG}/fig")
+ if(EXISTS ${IMG_DIR})
+ string(CONCAT IMAGE_PATH_VALUES "${IMAGE_PATH_VALUES}" " \\\n ${IMG_DIR}" )
+ endif()
+ endif()
+ endforeach()
+ set(DOCUMENTATION_DEPENDENCIES ${DEPENDENCIES} PARENT_SCOPE)
else()
- set(DEPENDENCIES "")
+ if(EXISTS ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/dependencies)
+ file(STRINGS ${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/dependencies DEPENDENCIES)
+ endif()
endif()
-
+
foreach(depend ${DEPENDENCIES})
file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS}
"TAGFILES += ${CGAL_DOC_TAG_DIR}/${depend}.tag=../${depend}\n")
endforeach()
+ #now write IMAGE_PATH
+ file(APPEND ${CGAL_DOC_PACKAGE_DEFAULTS} "${IMAGE_PATH_VALUES}\n")
+
configure_file(${CGAL_PACKAGE_DIR}/doc/${CGAL_PACKAGE_NAME}/Doxyfile.in
${CGAL_DOC_DXY_DIR}/${CGAL_PACKAGE_NAME}.dxy)
@@ -197,8 +222,7 @@ if(DOXYGEN_FOUND)
set_target_properties(Documentation_doc PROPERTIES FOLDER Documentation)
# hard-code that doc depends on all packages
- file(STRINGS ${CMAKE_SOURCE_DIR}/Documentation/doc/Documentation/dependencies DEPENDENCIES)
- foreach(depend ${DEPENDENCIES})
+ foreach(depend ${DOCUMENTATION_DEPENDENCIES})
add_dependencies(doc_pre ${depend}_internal_doxygen_run)
add_dependencies(doc_post ${depend}_copy_doc_tags)
add_dependencies(${depend}_copy_doc_tags doc_pre)
diff --git a/Documentation/doc/Documentation/Doxyfile.in b/Documentation/doc/Documentation/Doxyfile.in
index d0fab13cedd..cd73cb2258a 100644
--- a/Documentation/doc/Documentation/Doxyfile.in
+++ b/Documentation/doc/Documentation/Doxyfile.in
@@ -30,99 +30,3 @@ SEARCHENGINE = true
ALIASES += "cgalPkgDescriptionBegin{2}=\subsection \2 \1"
ALIASES += "cgalPkgManuals{2}=
\ref \1 \"User Manual\" \ref \2 \"Reference Manual\"
"
ALIASES += "cgalReleaseNumber=${CGAL_CREATED_VERSION_NUM}"
-
-# all image paths, maybe auto-generate this?
-IMAGE_PATH = ${CMAKE_SOURCE_DIR}/Documentation/doc/Documentation/fig \
- ${CMAKE_SOURCE_DIR}/Advancing_front_surface_reconstruction/doc/Advancing_front_surface_reconstruction/fig \
- ${CMAKE_SOURCE_DIR}/Algebraic_foundations/doc/Algebraic_foundations/fig \
- ${CMAKE_SOURCE_DIR}/AABB_tree/doc/AABB_tree/fig \
- ${CMAKE_SOURCE_DIR}/Polygon/doc/Polygon/fig \
- ${CMAKE_SOURCE_DIR}/Polygon_mesh_processing/doc/Polygon_mesh_processing/fig \
- ${CMAKE_SOURCE_DIR}/Polyline_simplification_2/doc/Polyline_simplification_2/fig \
- ${CMAKE_SOURCE_DIR}/Number_types/doc/Number_types/fig \
- ${CMAKE_SOURCE_DIR}/Alpha_shapes_2/doc/Alpha_shapes_2/fig \
- ${CMAKE_SOURCE_DIR}/Alpha_shapes_3/doc/Alpha_shapes_3/fig \
- ${CMAKE_SOURCE_DIR}/Apollonius_graph_2/doc/Apollonius_graph_2/fig \
- ${CMAKE_SOURCE_DIR}/Bounding_volumes/doc/Bounding_volumes/fig \
- ${CMAKE_SOURCE_DIR}/Inscribed_areas/doc/Inscribed_areas/fig \
- ${CMAKE_SOURCE_DIR}/Matrix_search/doc/Matrix_search/fig \
- ${CMAKE_SOURCE_DIR}/Box_intersection_d/doc/Box_intersection_d/fig \
- ${CMAKE_SOURCE_DIR}/CGAL_ipelets/doc/CGAL_ipelets/fig \
- ${CMAKE_SOURCE_DIR}/Circulator/doc/Circulator/fig \
- ${CMAKE_SOURCE_DIR}/Convex_decomposition_3/doc/Convex_decomposition_3/fig \
- ${CMAKE_SOURCE_DIR}/Convex_hull_2/doc/Convex_hull_2/fig \
- ${CMAKE_SOURCE_DIR}/Convex_hull_3/doc/Convex_hull_3/fig \
- ${CMAKE_SOURCE_DIR}/Convex_hull_d/doc/Convex_hull_d/fig \
- ${CMAKE_SOURCE_DIR}/Envelope_2/doc/Envelope_2/fig \
- ${CMAKE_SOURCE_DIR}/Envelope_3/doc/Envelope_3/fig \
- ${CMAKE_SOURCE_DIR}/Generator/doc/Generator/fig \
- ${CMAKE_SOURCE_DIR}/Geomview/doc/Geomview/fig \
- ${CMAKE_SOURCE_DIR}/GraphicsView/doc/GraphicsView/fig \
- ${CMAKE_SOURCE_DIR}/HalfedgeDS/doc/HalfedgeDS/fig \
- ${CMAKE_SOURCE_DIR}/BGL/doc/BGL/fig \
- ${CMAKE_SOURCE_DIR}/Combinatorial_map/doc/Combinatorial_map/fig \
- ${CMAKE_SOURCE_DIR}/Linear_cell_complex/doc/Linear_cell_complex/fig \
- ${CMAKE_SOURCE_DIR}/Interval_skip_list/doc/Interval_skip_list/fig \
- ${CMAKE_SOURCE_DIR}/Nef_2/doc/Nef_2/fig \
- ${CMAKE_SOURCE_DIR}/Nef_S2/doc/Nef_S2/fig \
- ${CMAKE_SOURCE_DIR}/Nef_3/doc/Nef_3/fig \
- ${CMAKE_SOURCE_DIR}/QP_solver/doc/QP_solver/fig \
- ${CMAKE_SOURCE_DIR}/Mesh_2/doc/Mesh_2/fig \
- ${CMAKE_SOURCE_DIR}/Surface_mesher/doc/Surface_mesher/fig \
- ${CMAKE_SOURCE_DIR}/Mesh_3/doc/Mesh_3/fig \
- ${CMAKE_SOURCE_DIR}/Jet_fitting_3/doc/Jet_fitting_3/fig \
- ${CMAKE_SOURCE_DIR}/Minkowski_sum_2/doc/Minkowski_sum_2/fig \
- ${CMAKE_SOURCE_DIR}/Minkowski_sum_3/doc/Minkowski_sum_3/fig \
- ${CMAKE_SOURCE_DIR}/Miscellany/doc/Miscellany/fig \
- ${CMAKE_SOURCE_DIR}/Modular_arithmetic/doc/Modular_arithmetic/fig \
- ${CMAKE_SOURCE_DIR}/Partition_2/doc/Partition_2/fig \
- ${CMAKE_SOURCE_DIR}/Interpolation/doc/Interpolation/fig \
- ${CMAKE_SOURCE_DIR}/Kernel_23/doc/Kernel_23/fig \
- ${CMAKE_SOURCE_DIR}/Circular_kernel_2/doc/Circular_kernel_2/fig \
- ${CMAKE_SOURCE_DIR}/Circular_kernel_3/doc/Circular_kernel_3/fig \
- ${CMAKE_SOURCE_DIR}/Algebraic_kernel_d/doc/Algebraic_kernel_d/fig \
- ${CMAKE_SOURCE_DIR}/Kernel_d/doc/Kernel_d/fig \
- ${CMAKE_SOURCE_DIR}/Point_set_2/doc/Point_set_2/fig \
- ${CMAKE_SOURCE_DIR}/SearchStructures/doc/SearchStructures/fig \
- ${CMAKE_SOURCE_DIR}/Polytope_distance_d/doc/Polytope_distance_d/fig \
- ${CMAKE_SOURCE_DIR}/Polyhedron/doc/Polyhedron/fig \
- ${CMAKE_SOURCE_DIR}/Polynomial/doc/Polynomial/fig \
- ${CMAKE_SOURCE_DIR}/Principal_component_analysis/doc/Principal_component_analysis/fig \
- ${CMAKE_SOURCE_DIR}/STL_Extension/doc/STL_Extension/fig \
- ${CMAKE_SOURCE_DIR}/Skin_surface_3/doc/Skin_surface_3/fig \
- ${CMAKE_SOURCE_DIR}/Snap_rounding_2/doc/Snap_rounding_2/fig \
- ${CMAKE_SOURCE_DIR}/Arrangement_on_surface_2/doc/Sweep_line_2/fig \
- ${CMAKE_SOURCE_DIR}/Arrangement_on_surface_2/doc/Arrangement_on_surface_2/fig \
- ${CMAKE_SOURCE_DIR}/Boolean_set_operations_2/doc/Boolean_set_operations_2/fig \
- ${CMAKE_SOURCE_DIR}/Triangulation_2/doc/TDS_2/fig \
- ${CMAKE_SOURCE_DIR}/Triangulation_2/doc/Triangulation_2/fig \
- ${CMAKE_SOURCE_DIR}/Triangulation_3/doc/TDS_3/fig \
- ${CMAKE_SOURCE_DIR}/Triangulation_3/doc/Triangulation_3/fig \
- ${CMAKE_SOURCE_DIR}/Triangulation/doc/Triangulation/fig \
- ${CMAKE_SOURCE_DIR}/Ridges_3/doc/Ridges_3/fig \
- ${CMAKE_SOURCE_DIR}/Point_set_processing_3/doc/Point_set_processing_3/fig \
- ${CMAKE_SOURCE_DIR}/Point_set_processing_3/doc/Property_map/fig \
- ${CMAKE_SOURCE_DIR}/Point_set_shape_detection_3/doc/Point_set_shape_detection_3/fig \
- ${CMAKE_SOURCE_DIR}/Kinetic_data_structures/doc/Kinetic_framework/fig \
- ${CMAKE_SOURCE_DIR}/Periodic_2_triangulation_2/doc/Periodic_2_triangulation_2/fig \
- ${CMAKE_SOURCE_DIR}/Periodic_3_triangulation_3/doc/Periodic_3_triangulation_3/fig \
- ${CMAKE_SOURCE_DIR}/Scale_space_reconstruction_3/doc/Scale_space_reconstruction_3/fig \
- ${CMAKE_SOURCE_DIR}/Spatial_searching/doc/Spatial_searching/fig \
- ${CMAKE_SOURCE_DIR}/Spatial_sorting/doc/Spatial_sorting/fig \
- ${CMAKE_SOURCE_DIR}/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/fig \
- ${CMAKE_SOURCE_DIR}/Segment_Delaunay_graph_Linf_2/doc/Segment_Delaunay_graph_Linf_2/fig \
- ${CMAKE_SOURCE_DIR}/Straight_skeleton_2/doc/Straight_skeleton_2/fig \
- ${CMAKE_SOURCE_DIR}/Visibility_2/doc/Visibility_2/fig \
- ${CMAKE_SOURCE_DIR}/Voronoi_diagram_2/doc/Voronoi_diagram_2/fig \
- ${CMAKE_SOURCE_DIR}/Surface_mesh_simplification/doc/Surface_mesh_simplification/fig \
- ${CMAKE_SOURCE_DIR}/Surface_mesh_skeletonization/doc/Surface_mesh_skeletonization/fig \
- ${CMAKE_SOURCE_DIR}/Surface_mesh_segmentation/doc/Surface_mesh_segmentation/fig \
- ${CMAKE_SOURCE_DIR}/Subdivision_method_3/doc/Subdivision_method_3/fig \
- ${CMAKE_SOURCE_DIR}/Surface_mesh_parameterization/doc/Surface_mesh_parameterization/fig \
- ${CMAKE_SOURCE_DIR}/Surface_mesh/doc/Surface_mesh/fig \
- ${CMAKE_SOURCE_DIR}/Surface_reconstruction_points_3/doc/Surface_reconstruction_points_3/fig \
- ${CMAKE_SOURCE_DIR}/Stream_lines_2/doc/Stream_lines_2/fig \
- ${CMAKE_SOURCE_DIR}/Stream_support/doc/Stream_support/fig \
- ${CMAKE_SOURCE_DIR}/Surface_modeling/doc/Surface_modeling/fig \
- ${CMAKE_SOURCE_DIR}/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig \
- ${CMAKE_SOURCE_DIR}/Surface_mesh_shortest_path/doc/Surface_mesh_shortest_path/fig \
diff --git a/Documentation/doc/Documentation/dependencies b/Documentation/doc/Documentation/dependencies
deleted file mode 100644
index 279d79c3d12..00000000000
--- a/Documentation/doc/Documentation/dependencies
+++ /dev/null
@@ -1,97 +0,0 @@
-Algebraic_foundations
-Advancing_front_surface_reconstruction
-AABB_tree
-Polygon
-Number_types
-Alpha_shapes_2
-Alpha_shapes_3
-Apollonius_graph_2
-Bounding_volumes
-Inscribed_areas
-Matrix_search
-Box_intersection_d
-CGAL_ipelets
-Circulator
-Convex_decomposition_3
-Convex_hull_2
-Convex_hull_3
-Convex_hull_d
-Envelope_2
-Envelope_3
-Generator
-Geomview
-GraphicsView
-HalfedgeDS
-BGL
-Combinatorial_map
-Linear_cell_complex
-Interval_skip_list
-Nef_2
-Nef_S2
-Nef_3
-QP_solver
-Mesh_2
-Surface_mesher
-Mesh_3
-Jet_fitting_3
-Minkowski_sum_2
-Minkowski_sum_3
-Miscellany
-Modular_arithmetic
-Partition_2
-Interpolation
-Kernel_23
-Circular_kernel_2
-Circular_kernel_3
-Algebraic_kernel_d
-Kernel_d
-Point_set_2
-SearchStructures
-Surface_mesh_skeletonization
-Polytope_distance_d
-Polyhedron
-Polynomial
-Principal_component_analysis
-STL_Extension
-Skin_surface_3
-Snap_rounding_2
-Sweep_line_2
-Arrangement_on_surface_2
-Boolean_set_operations_2
-TDS_2
-Triangulation_2
-TDS_3
-Triangulation_3
-Triangulation
-Ridges_3
-Point_set_processing_3
-Point_set_shape_detection_3
-Polyline_simplification_2
-Property_map
-Kinetic_framework
-Kinetic_data_structures
-Periodic_2_triangulation_2
-Periodic_3_triangulation_3
-Scale_space_reconstruction_3
-Spatial_searching
-Spatial_sorting
-Segment_Delaunay_graph_2
-Segment_Delaunay_graph_Linf_2
-Straight_skeleton_2
-Visibility_2
-Voronoi_diagram_2
-Surface_mesh_simplification
-Subdivision_method_3
-Surface_mesh_parameterization
-Surface_reconstruction_points_3
-Surface_mesh_segmentation
-Stream_lines_2
-Stream_support
-Surface_modeling
-Barycentric_coordinates_2
-Surface_mesh
-Surface_mesh_shortest_path
-Polygon_mesh_processing
-
-
-