doxygen の PREDEFINED 設定について詳しく説明します。
PREDEFINED は、doxygen の前処理段階で事前に定義されるマクロを指定する設定項目です。これにより、条件付きコンパイル (#ifdef、#if など) の評価を制御できます。
PREDEFINED = MACRO1 \
MACRO2=value \
MACRO3="string value" \
DEBUG \
PLATFORM_LINUX
PREDEFINED = DEBUG
これは以下と同等:
#define DEBUGPREDEFINED = VERSION=2 \
MAX_SIZE=1024
これは以下と同等:
#define VERSION 2
#define MAX_SIZE 1024PREDEFINED = COMPILER="GCC" \
PLATFORM="Linux"
PREDEFINED = FEATURE_A \
FEATURE_B \
HAVE_OPENSSL \
_WIN32 \
__cplusplus
/**
* @brief 計算関数
*/
class Calculator {
public:
int add(int a, int b);
#ifdef ADVANCED_FEATURES
/**
* @brief 高度な計算機能
*/
double advanced_calc(double x, double y);
#endif
#ifdef DEBUG
/**
* @brief デバッグ用関数
*/
void debug_print();
#endif
#if VERSION >= 2
/**
* @brief バージョン2 以降の機能
*/
void new_feature();
#endif
};PREDEFINED = ADVANCED_FEATURES \
DEBUG \
VERSION=2
PREDEFINED = ADVANCED_FEATURES \
VERSION=2
PREDEFINED = DEBUG \
VERSION=1
PREDEFINED = _WIN32 \
__linux__ \
__APPLE__ \
__cplusplus
PREDEFINED = __GNUC__ \
_MSC_VER \
__clang__
PREDEFINED = HAVE_OPENSSL \
ENABLE_THREADING \
USE_BOOST \
NDEBUG
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS= \
API_EXPORT= \
DEPRECATED=
// ソースコード
API_EXPORT DEPRECATED int old_function();PREDEFINED = API_EXPORT= \
DEPRECATED=
結果: int old_function(); として文書化
#ifdef _WIN32
HANDLE create_file(const char* name);
#else
int create_file(const char* name);
#endifPREDEFINED = _WIN32
または
PREDEFINED = __linux__
PREDEFINED = MACRO1 \
MACRO2 \
MACRO3
PREDEFINED = STRING_MACRO="\"Hello World\""
PREDEFINED = EMPTY_MACRO=
PREDEFINED = FEATURE_A \
FEATURE_B \
COMBINED_FEATURES
ENABLE_PREPROCESSING = YES を確認ENABLE_PREPROCESSING = NO を検討doxygen -d Preprocessor