Открыть главную страницу документации по Doxygen с помощью CMake - PullRequest
0 голосов
/ 25 марта 2020

У меня есть проект, в котором я использую Google Tests. У меня есть следующий файл CMake в каталоге root:

set(CMAKE_C_COMPILER gcc)
cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR)
project(PROJECT)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)

set(SOURCES src/a.cpp src/b.cpp)

set(TESTSOURCES test/tests.cpp src/a.cpp src/br.cpp)

set(HEADERS src/a.h src/b.h src/c.h src/c.h)

set(CMAKE_CXX_FLAGS "${MAKE_CXX_FLAGS} -std=c++0x")

find_package(Qt5 COMPONENTS Core Widgets REQUIRED)
find_package(CURL REQUIRED)

# Locate GTest
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})

if(CMAKE_COMPILER_IS_GNUCC)
    add_definitions(-Wall -Werror -lcurl)
endif(CMAKE_COMPILER_IS_GNUCC)

add_executable(tests ${TESTSOURCES} ${HEADERS} )

target_link_libraries(beergame-tests curl Qt5::Widgets ${GTEST_LIBRARIES} pthread)

На данный момент я не добавил ничего о документации в CMakeLists.txt. Для генерации документации я просто использую doxygen config-file, которая создает html / latex документацию в моей папке латекса. Однако он не открывает документацию и главную страницу.

Как я могу отредактировать мой CMakeLists.txt таким образом, чтобы он автоматически открывал документацию и с какой командой?

Чтобы запустить tests.cpp, я делаю это:

cd build
cmake ..
make

1 Ответ

1 голос
/ 25 марта 2020

Если вы хотите собрать и открыть документацию Doxygen до завершения CMake, вы можете использовать execute_process() для его сборки на этапе настройки CMake. Вы можете вызвать firefox <path-to-html>/index.html (или другой браузер) как отдельный COMMAND, чтобы открыть документацию после сборки.

find_package(Doxygen)
if(DOXYGEN_FOUND)
    execute_process(
        COMMAND ${DOXYGEN_EXECUTABLE} config-file.doxygen
        COMMAND firefox ${CMAKE_CURRENT_SOURCE_DIR}/doc/html/index.html
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
        COMMENT "Generating and opening documentation for project: tests"
    )
endif()

Обратите внимание, что на Windows 10 может не потребоваться указание используемого браузера; простое перечисление файла index.html после того, как COMMAND откроет его в браузере по умолчанию.

Если вы планируете сделать вашу сборку Doxygen в отдельной target , вы можете сделать что-то подобное, используя add_custom_target():

find_package(Doxygen)
if(DOXYGEN_FOUND)
    add_custom_target(tests-Documentation
        COMMAND ${DOXYGEN_EXECUTABLE} config-file.doxygen
        COMMAND firefox ${CMAKE_CURRENT_SOURCE_DIR}/doc/html/index.html
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
        COMMENT "Generating documentation for project: tests"
        VERBATIM
    )
endif()
...