@@ -630,19 +630,6 @@ macro(_SETUP_PROJECT_DOCUMENTATION)
630
630
endif (NOT DOXYGEN_FOUND)
631
631
endmacro (_SETUP_PROJECT_DOCUMENTATION)
632
632
633
- # REMOVE_DUPLICATES
634
- # -----------------
635
- #
636
- # Remove duplicate values from a space separated list
637
- function (REMOVE_DUPLICATES ARG_STR OUTPUT )
638
- set (ARG_LIST ${ARG_STR} )
639
- separate_arguments (ARG_LIST)
640
- list (REMOVE_DUPLICATES ARG_LIST)
641
- string (REGEX REPLACE "([^\\ ]|^);" "\\ 1 " _TMP_STR "${ARG_LIST} " )
642
- string (REGEX REPLACE "[\\ ](.)" "\\ 1" _TMP_STR "${_TMP_STR} " ) # fixes escaping
643
- set (${OUTPUT} "${_TMP_STR} " PARENT_SCOPE)
644
- endfunction ()
645
-
646
633
# _DOXYTAG_ENTRIES_FROM_CMAKE_DEPENDENCIES
647
634
# ----------------------------------------
648
635
#
@@ -655,9 +642,11 @@ macro(_DOXYTAG_ENTRIES_FROM_CMAKE_DEPENDENCIES DEPENDENCIES VAR_OUT)
655
642
DEFINED ${PREFIX} _DOXYGENDOCDIR
656
643
AND EXISTS ${${PREFIX} _DOXYGENDOCDIR}/${PREFIX} .doxytag
657
644
)
658
- set (
645
+ get_filename_component (DEP_DOCDIR "${${PREFIX} _DOXYGENDOCDIR}" ABSOLUTE )
646
+ list (
647
+ APPEND
659
648
${VAR_OUT}
660
- "${ ${VAR_OUT} } \" ${${PREFIX} _DOXYGENDOCDIR}/${PREFIX} .doxytag = ${${PREFIX} _DOXYGENDOCDIR }\" "
649
+ "\" ${${PREFIX} _DOXYGENDOCDIR}/${PREFIX} .doxytag = ${DEP_DOCDIR } \" "
661
650
)
662
651
endif ()
663
652
if (DEFINED ${PREFIX} _DEPENDENCIES)
@@ -697,9 +686,9 @@ macro(_SETUP_PROJECT_DOCUMENTATION_FINALIZE)
697
686
endif ()
698
687
endif ()
699
688
if (INSTALL_DOCUMENTATION)
700
- # Find doxytag files To ignore this list of tag files, set variable
701
- # DOXYGEN_TAGFILES
702
- set (_TAGFILES_FROM_DEPENDENCIES " ${DOXYGEN_TAGFILES_FROM_DEPENDENCIES} " )
689
+ # Find doxytag files. To ignore this list of tag files,
690
+ # set the DOXYGEN_TAGFILES CMake variable or TAGFILES in doc/Doxyfile.extra.in.
691
+ set (_TAGFILES_FROM_DEPENDENCIES ${DOXYGEN_TAGFILES_FROM_DEPENDENCIES} )
703
692
set (PKG_REQUIRES ${_PKG_CONFIG_REQUIRES} )
704
693
list (APPEND PKG_REQUIRES ${_PKG_CONFIG_COMPILE_TIME_REQUIRES} )
705
694
foreach (PKG_CONFIG_STRING ${PKG_REQUIRES} )
@@ -714,16 +703,16 @@ macro(_SETUP_PROJECT_DOCUMENTATION_FINALIZE)
714
703
DEFINED ${PREFIX} _DOXYGENDOCDIR
715
704
AND EXISTS ${${PREFIX} _DOXYGENDOCDIR}/${LIBRARY_NAME} .doxytag
716
705
)
717
- file (
718
- RELATIVE_PATH
706
+ # always use absolute path
707
+ get_filename_component (
719
708
DEP_DOCDIR
720
- ${CMAKE_INSTALL_FULL_DOCDIR}
721
- ${ ${PREFIX} _DOXYGENDOCDIR}
709
+ "${ ${PREFIX} _DOXYGENDOCDIR}"
710
+ ABSOLUTE
722
711
)
723
-
724
- set (
712
+ list (
713
+ APPEND
725
714
_TAGFILES_FROM_DEPENDENCIES
726
- "${_TAGFILES_FROM_DEPENDENCIES} \" ${${PREFIX} _DOXYGENDOCDIR}/${LIBRARY_NAME} .doxytag = ${DEP_DOCDIR} \" "
715
+ "\" ${${PREFIX} _DOXYGENDOCDIR}/${LIBRARY_NAME} .doxytag = ${DEP_DOCDIR} \" "
727
716
)
728
717
endif ()
729
718
endforeach ()
@@ -732,9 +721,15 @@ macro(_SETUP_PROJECT_DOCUMENTATION_FINALIZE)
732
721
_TAGFILES_FROM_DEPENDENCIES
733
722
)
734
723
if (_TAGFILES_FROM_DEPENDENCIES)
735
- REMOVE_DUPLICATES (
736
- ${_TAGFILES_FROM_DEPENDENCIES}
724
+ # use native deduplication routine for comma-separated lists, then
725
+ # convert comma-separated list to space-separated list string.
726
+ list (REMOVE_DUPLICATES _TAGFILES_FROM_DEPENDENCIES)
727
+ string (
728
+ REPLACE
729
+ ";"
730
+ " "
737
731
DOXYGEN_TAGFILES_FROM_DEPENDENCIES
732
+ "${_TAGFILES_FROM_DEPENDENCIES} "
738
733
)
739
734
endif ()
740
735
endif ()
0 commit comments