Move CMake documentation build section into its own file
This commit is contained in:
@ -1544,65 +1544,7 @@ if(BUILD_EXE)
|
|||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
###############################################################################
|
include(Documentation)
|
||||||
# Build documentation
|
|
||||||
###############################################################################
|
|
||||||
option(BUILD_DOC "Build LAMMPS documentation" OFF)
|
|
||||||
if(BUILD_DOC)
|
|
||||||
include(ProcessorCount)
|
|
||||||
ProcessorCount(NPROCS)
|
|
||||||
find_package(PythonInterp 3 REQUIRED)
|
|
||||||
|
|
||||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
|
||||||
|
|
||||||
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt)
|
|
||||||
file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt)
|
|
||||||
list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES})
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT docenv
|
|
||||||
COMMAND ${VIRTUALENV} docenv
|
|
||||||
)
|
|
||||||
|
|
||||||
set(DOCENV_BINARY_DIR ${CMAKE_BINARY_DIR}/docenv/bin)
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT requirements.txt
|
|
||||||
DEPENDS docenv
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt
|
|
||||||
COMMAND ${DOCENV_BINARY_DIR}/pip install -r requirements.txt --upgrade
|
|
||||||
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
|
|
||||||
)
|
|
||||||
|
|
||||||
set(RST_FILES "")
|
|
||||||
set(RST_DIR ${CMAKE_BINARY_DIR}/rst)
|
|
||||||
file(MAKE_DIRECTORY ${RST_DIR})
|
|
||||||
foreach(TXT_FILE ${DOC_SOURCES})
|
|
||||||
get_filename_component(FILENAME ${TXT_FILE} NAME_WE)
|
|
||||||
set(RST_FILE ${RST_DIR}/${FILENAME}.rst)
|
|
||||||
list(APPEND RST_FILES ${RST_FILE})
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${RST_FILE}
|
|
||||||
DEPENDS requirements.txt docenv ${TXT_FILE}
|
|
||||||
COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE}
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT html
|
|
||||||
DEPENDS ${RST_FILES}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR}
|
|
||||||
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_target(
|
|
||||||
doc ALL
|
|
||||||
DEPENDS html
|
|
||||||
SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Install potential and force field files in data directory
|
# Install potential and force field files in data directory
|
||||||
|
|||||||
59
cmake/Modules/Documentation.cmake
Normal file
59
cmake/Modules/Documentation.cmake
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
###############################################################################
|
||||||
|
# Build documentation
|
||||||
|
###############################################################################
|
||||||
|
option(BUILD_DOC "Build LAMMPS documentation" OFF)
|
||||||
|
if(BUILD_DOC)
|
||||||
|
include(ProcessorCount)
|
||||||
|
ProcessorCount(NPROCS)
|
||||||
|
find_package(PythonInterp 3 REQUIRED)
|
||||||
|
|
||||||
|
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
||||||
|
|
||||||
|
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt)
|
||||||
|
file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt)
|
||||||
|
list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES})
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT docenv
|
||||||
|
COMMAND ${VIRTUALENV} docenv
|
||||||
|
)
|
||||||
|
|
||||||
|
set(DOCENV_BINARY_DIR ${CMAKE_BINARY_DIR}/docenv/bin)
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT requirements.txt
|
||||||
|
DEPENDS docenv
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt
|
||||||
|
COMMAND ${DOCENV_BINARY_DIR}/pip install -r requirements.txt --upgrade
|
||||||
|
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
|
||||||
|
)
|
||||||
|
|
||||||
|
set(RST_FILES "")
|
||||||
|
set(RST_DIR ${CMAKE_BINARY_DIR}/rst)
|
||||||
|
file(MAKE_DIRECTORY ${RST_DIR})
|
||||||
|
foreach(TXT_FILE ${DOC_SOURCES})
|
||||||
|
get_filename_component(FILENAME ${TXT_FILE} NAME_WE)
|
||||||
|
set(RST_FILE ${RST_DIR}/${FILENAME}.rst)
|
||||||
|
list(APPEND RST_FILES ${RST_FILE})
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${RST_FILE}
|
||||||
|
DEPENDS requirements.txt docenv ${TXT_FILE}
|
||||||
|
COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE}
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT html
|
||||||
|
DEPENDS ${RST_FILES}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR}
|
||||||
|
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
doc ALL
|
||||||
|
DEPENDS html
|
||||||
|
SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES}
|
||||||
|
)
|
||||||
|
|
||||||
|
install(DIRECTORY ${CMAKE_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||||
|
endif()
|
||||||
Reference in New Issue
Block a user