CMake рдореЗрдВ Doxygen рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ Doxygen рдФрд░ CMake рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдПрдХ рдЕрдкреНрд░рд┐рдп рд╕рдорд╕реНрдпрд╛ рдХрд╛ рддреБрд░рдВрдд рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
  рдирд┐рд░реНрдорд╛рдг /
   src /
   CMakeLists.txt
   Doxyfile 
рдЕрд╕реЗрдВрдмрд▓реА, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╣реАрдВ рд╕реЗ рднреА рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ Doxygen рдХреЛ рд╡рд╣ рд╕реНрд░реЛрдд рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рдмрд╣реБрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрдм рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╕реАрдПрдордХреЗ рдФрд░ рдбреЙрдХрдЬреАрди рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдЕрд╕реЗрдВрдмрд▓реА рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореБрдЭреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░? Doxygen рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рд░рдЦреЗрдВ? рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╛рдЗрд▓реЗрдВ рдХреЗрд╡рд▓ рдПрдХ ENABLED_SECTIONS рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрдВрдЧреАред рдиреАрдЪреЗ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рд╡рд╣рд╛рдВ рдЕрд╕реЗрдВрдмрд▓реА рдСрдл рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рдзрд┐ рдПрдХ (CONFIGURE_FILE)


рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдФрд░ CMake рд╕реНрд░реЛрдд рдореЗрдВ, рдЖрдк CMake рдореЗрдВ Doxygen рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  1. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  2. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  3. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  4. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  5. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  6. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  7. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
  8. FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .
FIND_PACKAGE(Doxygen) IF (DOXYGEN_FOUND) SET (DOXYGEN_INPUT ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doxygen.conf. in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ADD_CUSTOM_TARGET(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf) ELSE (DOXYGEN_FOUND) MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created" ) ENDIF (DOXYGEN_FOUND) * This source code was highlighted with Source Code Highlighter .

рдЯреНрд░рд┐рдХ рдКрдкрд░ рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ 3 рдФрд░ 4 рдореЗрдВ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЙрдирдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ ADD_CUSTOM_TARGET рдХрдорд╛рдВрдб, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреА рд╣реИ, рд╕реНрд░реЛрдд рдкрд╛рда рдореЗрдВ рдлреЙрд░реНрдо @ VAR @ рдпрд╛ $ {VAR} рдХреЗ рдЪрд░ рдХреА рдЬрдЧрд╣ рд▓реЗрддреА рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рд╕реАрдПрдордХреЗ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ ( рдкреНрд░рд▓реЗрдЦрди рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ ADD_CUSTOM_TARGET рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВ)ред рдпрд╛рдиреА рдпрджрд┐ doxygen.conf.in рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ INPUT = @ DOXYGEN_INPUT @ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ, рддреЛ doxygen.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ @ DOXYGEN_INPUT рдХреЗ рдмрдЬрд╛рдп рдЪрд░ CMAKE_SOURCE_DIR рдХреЗ рдорд╛рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рджреЗрдЦреЗрдВ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджреЗрдЦреЗрдВ)

рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛрдбрд╛рдВрддрд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреА рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред рдлрд┐рд░ рднреА, рдореЗрд░реА рд╡рд┐рдирдореНрд░ рд░рд╛рдп, рдХрдорд┐рдпреЛрдВ рдореЗрдВ рдХрдИ рдЧрдВрднреАрд░ рд╣реИрдВ:
  1. рд╡реЗ рд╕рднреА рдЪрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ @ VAR @ рдпрд╛ $ {VAR} рдлреЙрд░реНрдо рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  2. рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП Doxywizard рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк Doxywizard рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред Doxywizard рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рд╣реЗрдЬрдирд╛ рд╣рдорд╛рд░реА рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ ред
  3. рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдпрдВ Doxygen рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ CMake рдХреЗ рдмрд┐рдирд╛ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рд╕рд╣реА рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ (рдореЗрд░рд╛ рд╡рд┐рдХрд▓реНрдк)


рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░рд▓реЗрдЦрди рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдореИрдХреНрд░реЛрдЬрд╝ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
  1. рдореИрдХреНрд░реЛ (CONFIGURE_DOXYGEN_FILE DOXYGEN_CONFIG_FILE FILE_NAME_SUFFIX)
  2. IF (EXISTS $ {PROJECT_SOURCE_DIR} / $ {DOXYGEN_CONFIG_FILE})
  3. рдлрд╝рд╛рдЗрд▓ (REMOVE $ {CMAKE_CURRENT_BINARY_DIR} / doxy - $ {FILE_NAME_SUFFIX} .conf
  4. рдлрд╝рд╛рдЗрд▓ (рдкрдврд╝реЗрдВ $ {PROJECT_SOURCE_DIR} / $ {DOXYGEN_CONFIG_FILE} DOXYFILE_CONTENTS)
  5. STRING (REGEX REPLACE ";" " \\\\ ;" DOXYFILE_CONTENTS "$ {DOXYFILE_CONTENTS}" )
  6. STRING (REGEX REPLACE "\ n" "; DOXYFILE_LINES " $ {DOXYFILE_CONTENTS} " )
  7. рд╕реВрдЪреА (LENGTH DOXYFILE_LINES ROW)
  8. MATH (EXOW ROW "$ {ROW} - 1" )
  9. FOREACH (I RANGE $ {ROW})
  10. рд╕реВрдЪреА (DOXYFILE_LINES $ {I} LINE рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)
  11. IF (LINE STRGREATER "" )
  12. STRING (REGEX MATCH "^ [a-zA-Z] ([^]) +" DOXY_PARAM $ {LINE})
  13. IF (рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреЙрдХреНрд╕ _ _ $ {DOXY_PARAM})
  14. STRING (REGEX REPLACE "= ([^ \ n]) + " = "$ {DOXY _ $ {DOXY_PARAM}}" LINE $ {LINE})
  15. ENDIF (рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреЙрдХреНрд╕ _ $ {DOXY_PARAM})
  16. ENDIF ()
  17. рдлрд╝рд╛рдЗрд▓ (APPEND $ {CMAKE_CURRENT_BINARY_DIR} / doxy - $ {FILE_NAME_SUFFIX} .conf "$ {LINE} \ n" )ред
  18. ENDFOREACH ()
  19. ELSE ()
  20. рд╕рдВрджреЗрд╢ (SEND_ERROR "Doxygen рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ '$ {DOXYGEN_CONFIG_FILE}' рдирд╣реАрдВ рдорд┐рд▓реАред рдкреНрд░рд▓реЗрдЦрди рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрдЧрд╛" )
  21. ENDIF ()
  22. ENDMACRO (CONFIGURE_DOXYGEN_FILE)
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  1. рдореИрдХреНрд░реЛ (ADD_DOCUMENTATION TARGET DOXYGEN_CONFIG_FILE)
  2. FIND_PACKAGE (Doxygen)
  3. рдпрджрд┐ (DOXYGEN_FOUND)
  4. CONFIGURE_DOXYGEN_FILE ($ {DOXYGEN_CONFIG_FILE} $ {TARGET})
  5. ADD_CUSTOM_TARGET ($ {TARGET} COMMAND $ {DOXYGEN_EXECUTABLE} $ {CMAKE_CURRENT_BINARY_DIR} / doxy - $ [TARGET} .conf)
  6. ELSE (DOXYGEN_FOUND)
  7. MESSAGE (рд╕реНрдерд┐рддрд┐ "Doxygen рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдкреНрд░рд▓реЗрдЦрди рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрдЧрд╛" )
  8. ENDIF (DOXYGEN_FOUND)
  9. ENDMACRO (ADD_DOCUMENTATION)
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛
  1. рд╕реЗрдЯ (DOXY_OUTPUT_LANGUAGE "рд░реВрд╕реА" )
  2. рд╕реЗрдЯ (DOXY_INPUT $ {PROJECT_SOURCE_DIR})
  3. ADD_DOCUMENTATION (рдбреЙрдХреНрдЯрд░ Doxyfile)
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЧреМрд░ рдХреАрдЬрд┐рдП рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред CONFIGURE_DOXYGEN_FILE рдореИрдХреНрд░реЛ рдХреБрдЫ рд╣рдж рддрдХ CMake config_file рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ Doxygen рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╡рд╣ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рд▓рд╛рдЗрди рдХреЛ рд▓рд╛рдЗрди рд╕реЗ рдкрдврд╝рддреА рд╣реИ, Doxygen рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреА рд╣реИ рдФрд░ рдЬрд╛рдВрдЪрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ CMake рдореЗрдВ рд╕рдорд╛рди рдирд╛рдо рдФрд░ DOXY_ рдЙрдкрд╕рд░реНрдЧ (рд▓рд╛рдЗрди 13) рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди Doxygen рдкреИрд░рд╛рдореАрдЯрд░ (рд▓рд╛рдЗрди 14) рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдо CMake рдореЗрдВ рдХрд┐рд╕реА рднреА Doxygen рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рде рд╣реА Doxygen рдФрд░ Doxywizard рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреЛ рдирд╣реАрдВ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ ред рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд░рд┐рдгрд╛рдореА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореВрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИред

рдЦреИрд░, рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдХреА рдПрдХ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓реА рдХреИрд╕реЗ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЛ \ if рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
  1. рд╕реЗрдЯ (DOXY_OUTPUT_LANGUAGE "рд░реВрд╕реА" )
  2. рд╕реЗрдЯ (DOXY_INPUT $ {PROJECT_SOURCE_DIR})
  3. рд╕реЗрдЯ (DOXY_ENABLED_SECTIONS "user_sec" )
  4. рд╕реЗрдЯ (DOXY_OUTPUT_DIRECTORY "$ {CMAKE_CURRENT_BINARY_DIR} / doc-user" )
  5. ADD_DOCUMENTATION (user_doc Doxyfile)
  6. рд╕реЗрдЯ (DOXY_ENABLED_SECTIONS "developer_sec" )
  7. рд╕реЗрдЯ (DOXY_OUTPUT_DIRECTORY "$ {CMAKE_CURRENT_BINARY_DIR} / doc-developer" )
  8. ADD_DOCUMENTATION (developer_doc Doxyfile)
  9. ADD_CUSTOM_TARGET (doc DEPENDS user_doc developer_doc)
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Source: https://habr.com/ru/post/In133512/


All Articles