doxygen 전 처리기에 파일을 재귀 적으로 포함시키지 않습니다. 이 작업을 수행하는 방법?doxygen 전 처리기를 하위 디렉토리로 되 돌리는 방법은 무엇입니까?
#define MY_FALSE (0u)
#define MY_TRUE (1u)
#define CONDITION MY_TRUE
#define ARRAY_LENGTH (20u)
:이
example_include.h
의 목록은
#include "example_include.h"
typedef struct
{
float array[ARRAY_LENGTH * 2 - 1];
#if CONDITION == MY_FALSE
char optional_char;
#endif
} ExampleType;
입니다 : 이것은 example.h
의 목록은
subdir/example.h
subdir2/example_include.h
Doxygen
입니다 :
나는 두 헤더로 구성된 예와 Doxygen을 파일을 만든
기본 Doxygen 구성에 대한 변경 사항 (Doxygen을 1.8.2 사용) 파일은 다음과 같습니다
가INPUT = .
RECURSIVE = YES
GENERATE_XML = YES
MACRO_EXPANSION = YES
INCLUDE_PATH = .
ExampleType
(파일 : xml/struct_example_type.xml
)에 대한 Doxygen을의 출력 XML은 다음과 같습니다 사실
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.2">
<compounddef id="struct_example_type" kind="struct" prot="public">
<compoundname>ExampleType</compoundname>
<sectiondef kind="public-attrib">
<memberdef kind="variable" id="struct_example_type_1aa7b8f391fc62f93c34c2b305542db339" prot="public" static="no" mutable="no">
<type>float</type>
<definition>float ExampleType::array[ARRAY_LENGTH *2-1]</definition>
<argsstring>[ARRAY_LENGTH *2-1]</argsstring>
<name>array</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="D:/Sandboxes/ALN_Alignment_SRR295/04_Engineering/01_Source_Code/algo/exmaple/subdir/example.h" line="5" bodyfile="D:/Sandboxes/ALN_Alignment_SRR295/04_Engineering/01_Source_Code/algo/exmaple/subdir/example.h" bodystart="5" bodyend="-1"/>
</memberdef>
<memberdef kind="variable" id="struct_example_type_1a8428371f21c1fb8fd28cb1062c7b1152" prot="public" static="no" mutable="no">
<type>char</type>
<definition>char ExampleType::optional_char</definition>
<argsstring></argsstring>
<name>optional_char</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="D:/Sandboxes/ALN_Alignment_SRR295/04_Engineering/01_Source_Code/algo/exmaple/subdir/example.h" line="7" bodyfile="D:/Sandboxes/ALN_Alignment_SRR295/04_Engineering/01_Source_Code/algo/exmaple/subdir/example.h" bodystart="7" bodyend="-1"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="D:/Sandboxes/ALN_Alignment_SRR295/04_Engineering/01_Source_Code/algo/exmaple/subdir/example.h" line="4" bodyfile="D:/Sandboxes/ALN_Alignment_SRR295/04_Engineering/01_Source_Code/algo/exmaple/subdir/example.h" bodystart="3" bodyend="9"/>
<listofallmembers>
<member refid="struct_example_type_1aa7b8f391fc62f93c34c2b305542db339" prot="public" virt="non-virtual"><scope>ExampleType</scope><name>array</name></member>
<member refid="struct_example_type_1a8428371f21c1fb8fd28cb1062c7b1152" prot="public" virt="non-virtual"><scope>ExampleType</scope><name>optional_char</name></member>
</listofallmembers>
</compounddef>
</doxygen>
, 나는 ARRAY_LENGTH
이 (20u)
에 의해 대체 기대 optional_char
은 구조체의 멤버가 아니어야합니다.
내 질문은 this과 관련되어 있지만, 유일한 유망한 대답은 @Phineas가 doxygen 버전 1.7.4에서 수정 된 문제라고 말하는 것입니다. 그러나 나는 여전히 같은 행동을 보았다. 이것에 대해 무엇을해야합니까?
Btw - "유즈 케이스"는 간단합니다. 이것은 비주얼 스튜디오 프로젝트입니다. 컴파일러는 프로젝트 정의에 모두 포함되어 있으므로 원하는대로 모든 파일을 포함합니다.
예에 있어요. 내 질문에 Doxyfile 내 변경 내용을 문서화하고 "RECURSIVE = YES"중 하나입니다. –