You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.1 KiB
62 lines
2.1 KiB
cmake_minimum_required(VERSION 3.8)
|
|
project(TestFindDoxygen VERSION 1.0 LANGUAGES NONE)
|
|
|
|
# Testing backward compatible signature
|
|
find_package(Doxygen REQUIRED)
|
|
|
|
if(TARGET Doxygen::doxygen)
|
|
# Check backward compatibility
|
|
if(NOT DOXYGEN_EXECUTABLE)
|
|
message(FATAL_ERROR "Backward compatibility broken: DOXYGEN_EXECUTABLE not set")
|
|
endif()
|
|
if(NOT DOXYGEN)
|
|
message(FATAL_ERROR "Backward compatibility broken: DOXYGEN not set")
|
|
endif()
|
|
# Check presence of expected generated files
|
|
foreach(file CMakeDoxyfile.in CMakeDoxygenDefaults.cmake)
|
|
if(NOT EXISTS "${PROJECT_BINARY_DIR}/${file}")
|
|
message(FATAL_ERROR "Missing generated file: ${file}")
|
|
endif()
|
|
endforeach()
|
|
else()
|
|
message(FATAL_ERROR "Import target Doxygen::doxygen not defined")
|
|
endif()
|
|
|
|
set(DOXYGEN_OUTPUT_DIRECTORY noArgs)
|
|
doxygen_add_docs(docsNoArgs)
|
|
if(NOT EXISTS "${PROJECT_BINARY_DIR}/Doxyfile.docsNoArgs")
|
|
message(FATAL_ERROR "Missing generated file: Doxyfile.docsNoArgs")
|
|
endif()
|
|
if(NOT TARGET docsNoArgs)
|
|
message(FATAL_ERROR "Target docsNoArgs not created")
|
|
endif()
|
|
|
|
set(DOXYGEN_OUTPUT_DIRECTORY withArgs)
|
|
configure_file(spaces_in_name.cpp.in "spaces in name.cpp" COPYONLY)
|
|
doxygen_add_docs(docsWithArgs
|
|
"${CMAKE_CURRENT_BINARY_DIR}/spaces in name.cpp"
|
|
main.cpp
|
|
)
|
|
if(NOT EXISTS "${PROJECT_BINARY_DIR}/Doxyfile.docsWithArgs")
|
|
message(FATAL_ERROR "Missing generated file: Doxyfile.docsWithArgs")
|
|
endif()
|
|
if(NOT TARGET docsWithArgs)
|
|
message(FATAL_ERROR "Target docsWithArgs not created")
|
|
endif()
|
|
# Note that CMake inserts at least one entry into SOURCES when a COMMAND or
|
|
# DEPENDS option is given to add_custom_target(), so rather than looking for an
|
|
# exact match, we only verify that the files we expect to be there are present
|
|
get_target_property(srcList docsWithArgs SOURCES)
|
|
set(expectedList
|
|
"${CMAKE_CURRENT_BINARY_DIR}/spaces in name.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/main.cpp"
|
|
)
|
|
foreach(f IN LISTS expectedList)
|
|
if(NOT f IN_LIST srcList)
|
|
message(FATAL_ERROR "SOURCES missing file: ${f}")
|
|
endif()
|
|
endforeach()
|
|
|
|
add_custom_target(allDocTargets)
|
|
add_dependencies(allDocTargets docsNoArgs docsWithArgs)
|