Files
qt-creator/doc/CMakeLists.txt
Eike Ziller 2ce9f9d97d Move most acknowledgments to qt_attributions.json
Create a qt_attributions.json and generate a documentation file from it
automatically when building documentation. The result is included as a
table in the acknowledgments page in the documentation.

Some attributions cannot (yet) move to qt_attributions.json, because
that requires the sources to be available in the project's source tree,
which is not the case for LLVM, Clazy, etc.

Remove the attributions from the README and instead point to the
documentation from there, so we get rid of that duplication.

Change-Id: I22623fe7495593ffce2e2c6c26255c27c5a8cb71
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2023-12-15 09:02:23 +00:00

64 lines
2.2 KiB
CMake

# Generate documentation
option(BUILD_DEVELOPER_DOCS "Include developer documentation" OFF)
add_feature_info("Include developer documentation" BUILD_DEVELOPER_DOCS "")
function(_find_all_includes _ret_includes _ret_framework_paths)
set(_all_includes "${PROJECT_SOURCE_DIR}/src/plugins;${PROJECT_SOURCE_DIR}/src/libs")
foreach(_target ${__QTC_PLUGINS} ${__QTC_LIBRARIES})
if (NOT TARGET ${_target})
continue()
endif()
get_target_property(_includes ${_target} INCLUDE_DIRECTORIES)
foreach(_include ${_includes})
string(FIND "${_include}" "/src/plugins/" _in_plugins)
string(FIND "${_include}" "/src/libs/" _in_libs)
string(FIND "${_include}" "${CMAKE_BINARY_DIR}" _in_build)
if(_in_plugins LESS 0 AND _in_libs LESS 0 AND _in_build LESS 0)
list(APPEND _all_includes ${_include})
endif()
endforeach()
endforeach()
list(APPEND _all_includes ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
list(REMOVE_DUPLICATES _all_includes)
set("${_ret_includes}" "${_all_includes}" PARENT_SCOPE)
# framework path
if (APPLE)
# version-less target Qt::Core is an interface library that links to QtX::Core
get_target_property(_qt_core Qt::Core INTERFACE_LINK_LIBRARIES)
get_target_property(_qt_target ${_qt_core} LOCATION) # <fw_path>/QtCore.framework/QtCore
get_filename_component(_qt_loc "${_qt_target}" DIRECTORY)
set("${_ret_framework_paths}" "${_qt_loc}/.." PARENT_SCOPE)
endif()
endfunction()
function(_add_doc _doc_file _dev_doc_file)
add_qtc_documentation(${_doc_file})
add_qtc_doc_attribution(doc_attributions
"${CMAKE_CURRENT_SOURCE_DIR}/../qt_attributions.json"
"${CMAKE_CURRENT_BINARY_DIR}/creator-attributions.qdoc"
${_doc_file}
)
if (BUILD_DEVELOPER_DOCS)
_find_all_includes(_all_includes _framework_paths)
add_qtc_documentation(${_dev_doc_file}
INCLUDE_DIRECTORIES ${_all_includes}
FRAMEWORK_PATHS ${_framework_paths}
)
endif()
endfunction()
if (WITH_DOCS)
_add_doc(${IDE_DOC_FILE} "qtcreatordev/qtcreator-dev.qdocconf")
endif()
if(WITH_ONLINE_DOCS)
_add_doc(${IDE_DOC_FILE_ONLINE} "qtcreatordev/qtcreator-dev-online.qdocconf")
endif()
install(DIRECTORY config
DESTINATION ${IDE_HEADER_INSTALL_PATH}/doc
COMPONENT Devel
EXCLUDE_FROM_ALL
)