LIEF/doc/CMakeLists.txt

105 lines
3.2 KiB
CMake
Raw Normal View History

2017-03-30 16:56:49 +02:00
find_package(Doxygen)
find_package(Sphinx)
2017-03-30 16:56:49 +02:00
if(NOT DOXYGEN_FOUND)
2018-03-26 11:05:32 +02:00
message(STATUS "Doc disabled: doxygen not found")
elseif(NOT SPHINX_FOUND)
message(FATAL "Doc disabled: sphinx-build not found")
2017-03-30 16:56:49 +02:00
elseif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
message(STATUS "You have to build the doc in another directory !")
else()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/doxygen/Doxyfile.in
${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile @ONLY)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/sphinx/conf.py.in
${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/conf.py @ONLY)
file(GLOB PACKER_DOC_RST RELATIVE
"${CMAKE_CURRENT_SOURCE_DIR}/sphinx"
"${CMAKE_CURRENT_SOURCE_DIR}/sphinx/*.rst")
file(
COPY ${CMAKE_CURRENT_SOURCE_DIR}/sphinx/
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src
PATTERN "*.in" EXCLUDE)
file(
COPY ${CMAKE_CURRENT_SOURCE_DIR}/sphinx/_static
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static
)
###################
# FIND PACKAGE
####################
file(
COPY ${CMAKE_SOURCE_DIR}/examples/cmake/find_package/CMakeLists.txt
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/
)
file(
RENAME ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/CMakeLists.txt
${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/CMakeFindPackage.cmake
)
# Find Package Readme
file(
COPY ${CMAKE_SOURCE_DIR}/examples/cmake/find_package/README.rst
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/
)
file(
RENAME ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/README.rst
${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/ReadmeFindPackage.rst
)
####################
# EXTERNAL PROJECT
####################
file(
COPY ${CMAKE_SOURCE_DIR}/examples/cmake/external_project/CMakeLists.txt
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/
)
file(
RENAME ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/CMakeLists.txt
${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/CMakeExternalProject.cmake
)
file(
COPY ${CMAKE_SOURCE_DIR}/examples/cmake/external_project/README.rst
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/
)
file(
RENAME ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/README.rst
${CMAKE_CURRENT_BINARY_DIR}/sphinx-src/_static/ReadmeExternalProject.rst
)
####################
2017-03-30 16:56:49 +02:00
add_custom_target(doc-lief ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen/Doxyfile
COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PROJECT_BINARY_DIR}/api/python:$ENV{PYTHONPATH}" ${SPHINX_EXECUTABLE} -a -E ${CMAKE_CURRENT_BINARY_DIR}/sphinx-src sphinx-doc
DEPENDS pyLIEF LIB_LIEF
2017-03-30 16:56:49 +02:00
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating documentation with Doxygen and Sphinx" VERBATIM)
install(
DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/doxygen/html/
DESTINATION
share/LIEF/doc/doxygen
2017-03-30 16:56:49 +02:00
COMPONENT doc)
install(
DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/sphinx-doc/
DESTINATION
share/LIEF/doc/sphinx
2017-03-30 16:56:49 +02:00
COMPONENT doc)
endif()