Doxygen не может обнаружить NS_ENUM в target-c

Я использую Doxygen для документирования API, написанного на Objective-C.
Doyxygen не в состоянии понять NS_ENUM typedef.

Я нашел это решение, но оно не сработало для меня.

ENABLE_PREPROCESSING   = YES 
MACRO_EXPANSION        = YES 
EXPAND_ONLY_PREDEF     = YES 
PREDEFINED             = NS_ENUM(x,y)=y 

Regards, 
  Dimitri 

Это мой входной файл:

/**
 *  Represent the possible states.
 */
typedef NS_ENUM(NSInteger, ABEnumType)
{
    /**
     *  State A.
     */
    StateA = 0,
    /**
     *  State B.
     */
    StateB
};

Это вывод, который я получаю:

Preprocessing /src/ABEnumType.h...
error: /src/ABEnumType.h:17:17: error: C++ requires a type specifier for all declarations [clang]
error: /src/ABEnumType.h:17:28: error: unknown type name 'ABEnumType' [clang]
error: /src/ABEnumType.h:18:1: error: function definition is not allowed here [clang]
error: /src/ABEnumType.h:17:9: error: C++ requires a type specifier for all declarations [clang]
Parsing file /src/ABEnumType.h...

3 ответа

У нас работали следующие настройки:

 ENABLE_PREPROCESSING   = YES 
 MACRO_EXPANSION        = YES 
 EXPAND_ONLY_PREDEF     = YES 
 PREDEFINED             = NS_ENUM(x,y)=enum y 

При этом мы видим все структуры NS_ENUM, обнаруженные в нашей документации, сгенерированной doxygen

Если Doxygen терпит неудачу, вы всегда можете попробовать HeaderDocs.

РЕДАКТИРОВАТЬ: я пробовал headerdocs с тестовым классом, и я думаю, что он обеспечивает хорошую поддержку NS_ENUM.

//
//  VLTTestClass.h
//  VPNLoginTest
//

#import <Foundation/Foundation.h>

/*!
 Test class type description.
 */
typedef NS_ENUM(NSInteger, VLTestClassType) {
    /*!
     Description for type 1.
     */
    VLTestClassType1,
    /*!
     Description for type 2.
     */
    VLTestClassType2
};

/*!
 Description for test class
 */
@interface VLTTestClass : NSObject

@end

Вот заголовок doc2html: http://pastebin.com/q6RsR0tU

Ответ Гюриска помог, но нам также нужно было включить EXTRACT_ALL, Поэтому у нас работают следующие настройки:

 EXTRACT_ALL            = YES
 ENABLE_PREPROCESSING   = YES 
 MACRO_EXPANSION        = YES 
 EXPAND_ONLY_PREDEF     = YES 
 PREDEFINED             = NS_ENUM(x,y)=enum y
Другие вопросы по тегам