2013-03-08 17 views
6

To może brzmieć jak żądanie funkcji sci-fi, ale zastanawiam się, czy Doxygen ma jedną z następujących dwóch cech:Does Doxygen mieć wsparcie dla rozgałęzienia lub C/C++ preprocesora

  1. Generowanie CALL/dzwoniącego wykresy po preprocesorze przebiegły nad plikiem wejściowym. przykład:

    #define MULTITHREADING 1 
    

    i bloki kodu jest włączana lub wyłączana w zależności od tego, czy MULTITHREADING jest włączony.

  2. Opisując pewność rozmowy ze strzałkami wykresie ... na przykład linia przerywana, jeśli funkcja nie zawsze jest nazywany (aka jest w oddziale lub masz możliwość return przed wywołaniem funkcji.

Odpowiedz

5

na pierwszej pozycji, będziemy chcieli, aby włączyć opcję ENABLE_PREPROCESSING w twojej Doxyfile.

dla drugiego, szczerze mówiąc nie wiem, ale byłoby bardzo zaskoczony, gdyby tak się stało. Myślę że wymagałoby to pełnego C/C++ kompilator do określenia tych rzeczy.

+0

jesteś pewien ENABLE_PREPROCESSING działa jak oczekuję go do pracy. Z tego, co widzę, wykres wywołania generowany jest nawet dla kodu, który nigdy nie jest generowany z bieżącym definiowaniem – NoSenseEtAl

+0

Szczerze mówiąc, nie jestem pewien, czy parser Doxygen jest w stanie wykonać to zadanie. Być może masz więcej szczęścia z pytaniem na [listę dyskusyjną] (https://lists.sourceforge.net/lists/listinfo/doxygen-users). –

+0

tnx ... jeden dzień przełącznika theyll na clang do parsowania. : D – NoSenseEtAl

5
  1. Doxygen Preprocessing:

    pliki źródłowe, które są wykorzystywane jako wsad do doxygen może być analizowany przez doxygen wbudowanego C-preprocesor.

    Domyślnie doxygen wykonuje tylko częściowe przetwarzanie wstępne. Oznacza to, że to ocenia warunkowe instrukcje kompilacji (jak #if) i ocenia definicje makr , ale nie wykonuje rozszerzenia makro.

  2. COLLABORATION_GRAPH:

    jeśli znaczniki COLLABORATION_GRAPH i HAVE_DOT są ustawione tak, to Doxygen generuje wykres dla każdej udokumentowane klasy pokazano bezpośrednie i pośrednie zależności realizacji (dziedziczenia obudowy, oraz zmienne odwołań do klasy) klasy z innymi udokumentowanymi klasami .

+0

dla mnie PP nie działa, nie mówię o makra exp ... Sprawdziłem nawet g ++ PP wyjście do pliku i sprawdziłem .. Mogłem zrobić coś złego ... byłoby miło, gdyby ppl mogło potwierdzić/zaprzeczyć w ten czy inny sposób ... – NoSenseEtAl