CMakeLists.txt 3.31 KB
Newer Older
peastman's avatar
peastman committed
1
2
3
4
5
#
# Build and install API documentation
#

find_package(Doxygen QUIET)
Robert T. McGibbon's avatar
Robert T. McGibbon committed
6
7
set(OPENMM_GENERATE_API_DOCS OFF CACHE BOOL "Whether to create API documentation using Doxygen")

peastman's avatar
peastman committed
8
9
10
IF(DOXYGEN_EXECUTABLE)
    # Generate C++ API documentation
    IF (OPENMM_GENERATE_API_DOCS)
Robert T. McGibbon's avatar
Robert T. McGibbon committed
11
        ADD_SUBDIRECTORY(api-c++)
peastman's avatar
peastman committed
12
13
14
    ENDIF (OPENMM_GENERATE_API_DOCS)

    # Generate Python API documentation
Robert McGibbon's avatar
Robert McGibbon committed
15
    IF (OPENMM_BUILD_PYTHON_WRAPPERS AND OPENMM_GENERATE_API_DOCS)
Robert McGibbon's avatar
Robert McGibbon committed
16
        ADD_SUBDIRECTORY(api-python)
Robert McGibbon's avatar
Robert McGibbon committed
17
    ENDIF (OPENMM_BUILD_PYTHON_WRAPPERS AND OPENMM_GENERATE_API_DOCS)
peastman's avatar
peastman committed
18
19
20
21
22
23
24
25
26
27
ENDIF(DOXYGEN_EXECUTABLE)


#
# Build and install the User Guide and Developer Guide
#

SET(SPHINX_BUILD_DIR "${CMAKE_BINARY_DIR}/sphinx-docs/")
FILE(MAKE_DIRECTORY "${SPHINX_BUILD_DIR}")

peastman's avatar
peastman committed
28
29
FILE(GLOB_RECURSE USER_GUIDE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/usersguide/*)
FILE(GLOB_RECURSE DEVELOPER_GUIDE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/developerguide/*)
peastman's avatar
peastman committed
30
31
32
33
34
35
36
IF(WIN32)
    SET(SPHINX_MAKE_USERGUIDE_COMMAND "${CMAKE_COMMAND}" -E env "OPENMM_VERSION=${OPENMM_MAJOR_VERSION}.${OPENMM_MINOR_VERSION}" "BUILDDIR=${SPHINX_BUILD_DIR}/userguide" make.bat)
    SET(SPHINX_MAKE_DEVELOPERGUIDE_COMMAND "${CMAKE_COMMAND}" -E env "OPENMM_VERSION=${OPENMM_MAJOR_VERSION}.${OPENMM_MINOR_VERSION}" "BUILDDIR=${SPHINX_BUILD_DIR}/developerguide" make.bat)
ELSE(WIN32)
    SET(SPHINX_MAKE_USERGUIDE_COMMAND "${CMAKE_MAKE_PROGRAM}" OPENMM_VERSION="${OPENMM_MAJOR_VERSION}.${OPENMM_MINOR_VERSION}" BUILDDIR="${SPHINX_BUILD_DIR}/userguide")
    SET(SPHINX_MAKE_DEVELOPERGUIDE_COMMAND "${CMAKE_MAKE_PROGRAM}" OPENMM_VERSION="${OPENMM_MAJOR_VERSION}.${OPENMM_MINOR_VERSION}" BUILDDIR="${SPHINX_BUILD_DIR}/developerguide")
ENDIF(WIN32)
peastman's avatar
peastman committed
37
38
ADD_CUSTOM_COMMAND(
    OUTPUT "${SPHINX_BUILD_DIR}/userguide/latex/OpenMMUsersGuide.pdf"
peastman's avatar
peastman committed
39
    COMMAND ${SPHINX_MAKE_USERGUIDE_COMMAND} latexpdf
peastman's avatar
peastman committed
40
    DEPENDS ${USER_GUIDE_FILES}
peastman's avatar
peastman committed
41
42
43
44
45
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/usersguide"
    COMMENT "Generating PDF user guide"
)
ADD_CUSTOM_COMMAND(
    OUTPUT "${SPHINX_BUILD_DIR}/developerguide/latex/OpenMMDeveloperGuide.pdf"
peastman's avatar
peastman committed
46
    COMMAND ${SPHINX_MAKE_DEVELOPERGUIDE_COMMAND} latexpdf
peastman's avatar
peastman committed
47
    DEPENDS ${DEVELOPER_GUIDE_FILES}
peastman's avatar
peastman committed
48
49
50
51
52
53
54
55
56
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/developerguide"
    COMMENT "Generating PDF developer guide"
)
ADD_CUSTOM_TARGET(sphinxpdf
    DEPENDS "${SPHINX_BUILD_DIR}/userguide/latex/OpenMMUsersGuide.pdf" "${SPHINX_BUILD_DIR}/developerguide/latex/OpenMMDeveloperGuide.pdf"
)

ADD_CUSTOM_COMMAND(
    OUTPUT "${SPHINX_BUILD_DIR}/userguide/html/index.html"
peastman's avatar
peastman committed
57
    COMMAND ${SPHINX_MAKE_USERGUIDE_COMMAND} html
peastman's avatar
peastman committed
58
    DEPENDS ${USER_GUIDE_FILES}
peastman's avatar
peastman committed
59
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/usersguide"
peastman's avatar
peastman committed
60
    COMMENT "Generating HTML user guide"
peastman's avatar
peastman committed
61
62
63
)
ADD_CUSTOM_COMMAND(
    OUTPUT "${SPHINX_BUILD_DIR}/developerguide/html/index.html"
peastman's avatar
peastman committed
64
    COMMAND ${SPHINX_MAKE_DEVELOPERGUIDE_COMMAND} html
peastman's avatar
peastman committed
65
    DEPENDS ${DEVELOPER_GUIDE_FILES}
peastman's avatar
peastman committed
66
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/developerguide"
peastman's avatar
peastman committed
67
    COMMENT "Generating HTML developer guide"
peastman's avatar
peastman committed
68
69
70
71
72
73
)
ADD_CUSTOM_TARGET(sphinxhtml
    DEPENDS "${SPHINX_BUILD_DIR}/userguide/html/index.html" "${SPHINX_BUILD_DIR}/developerguide/html/index.html"
)

install(FILES "${SPHINX_BUILD_DIR}/userguide/latex/OpenMMUsersGuide.pdf" "${SPHINX_BUILD_DIR}developerguide/latex/OpenMMDeveloperGuide.pdf"
74
    DESTINATION docs/ OPTIONAL)
peastman's avatar
peastman committed
75
76
77
78

FILE(GLOB LICENSE_FILES "licenses/*.txt")
install(FILES ${LICENSE_FILES}
    DESTINATION licenses/)