blob: 0cbfd675af8186bae66bba46593bbfc97bf5b5bb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
###############################################################################
### External Doc Apps ###
# setuptools
set(SETUPTOOLS_VERSION 0.6c11)
ExternalProject_Add(setuptools
URL ${CMAKE_SOURCE_DIR}/ext/setuptools-${SETUPTOOLS_VERSION}.tar.gz
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
BUILD_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py build
INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py install --prefix=${EXTDIST_ROOT}
)
# docutils
set(DOCUTILS_VERSION 0.7)
ExternalProject_Add(docutils
DEPENDS setuptools
URL ${CMAKE_SOURCE_DIR}/ext/docutils-${DOCUTILS_VERSION}.tar.gz
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
BUILD_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py build
INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py install --prefix=${EXTDIST_ROOT}
)
# jinja2
set(JINJA2_VERSION 2.5.5)
ExternalProject_Add(Jinja2
DEPENDS setuptools
URL ${CMAKE_SOURCE_DIR}/ext/Jinja2-${JINJA2_VERSION}.tar.gz
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
BUILD_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py build
INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py install --prefix=${EXTDIST_ROOT}
)
# Pygments
set(PYGMENTS_VERSION 1.3.1)
ExternalProject_Add(Pygments
DEPENDS setuptools
URL ${CMAKE_SOURCE_DIR}/ext/Pygments-${PYGMENTS_VERSION}.tar.gz
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
BUILD_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py build
INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py install --prefix=${EXTDIST_ROOT}
)
# sphinx
set(SPHINX_VERSION f52b631f501a) # 1.1pre
ExternalProject_Add(Sphinx
DEPENDS setuptools docutils Jinja2 Pygments
URL ${CMAKE_SOURCE_DIR}/ext/sphinx-${SPHINX_VERSION}.tar.gz
PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/ext/sphinx-${SPHINX_VERSION}.patch
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E make_directory ${EXTDIST_PYTHONPATH}
BUILD_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py build
INSTALL_COMMAND PYTHONPATH=${PYTHONPATH} python setup.py install --prefix=${EXTDIST_ROOT} --install-scripts=${EXTDIST_ROOT}/bin
)
###############################################################################
### Create Doc Targets ###
message(STATUS "Create sphinx conf.py from conf.py.in")
configure_file(${CMAKE_SOURCE_DIR}/docs/conf.py.in
${CMAKE_BINARY_DIR}/docs/conf.py @ONLY)
message(STATUS "Copying doc to staging area")
file(COPY ${CMAKE_SOURCE_DIR}/docs/ DESTINATION ${CMAKE_BINARY_DIR}/docs)
message(STATUS "Copy extra doc files to staging area")
list(APPEND DOCFILES ${CMAKE_SOURCE_DIR}/README)
list(APPEND DOCFILES ${CMAKE_SOURCE_DIR}/INSTALL)
list(APPEND DOCFILES ${CMAKE_SOURCE_DIR}/ChangeLog)
list(APPEND DOCFILES ${CMAKE_SOURCE_DIR}/LICENSE)
list(APPEND DOCFILES ${CMAKE_SOURCE_DIR}/share/nuke/ocionuke/viewer.py)
CopyFiles(RSTDOC ${DOCFILES})
message(STATUS "Extracting .rst files from C++ headers")
ExtractRstCPP(${CMAKE_SOURCE_DIR}/export/OpenColorIO/OpenColorIO.h developers/api/OpenColorIO.rst)
ExtractRstCPP(${CMAKE_SOURCE_DIR}/export/OpenColorIO/OpenColorTransforms.h developers/api/OpenColorTransforms.rst)
ExtractRstCPP(${CMAKE_SOURCE_DIR}/export/OpenColorIO/OpenColorTypes.h developers/api/OpenColorTypes.rst)
add_custom_target(doc ALL
COMMAND PYTHONPATH=${PYTHONPATH} ${EXTDIST_BINPATH}/sphinx-build -b html . ${CMAKE_CURRENT_BINARY_DIR}/build-html
DEPENDS
OpenColorIO
PyOpenColorIO
${CMAKE_BINARY_DIR}/docs/conf.py
developers/api/OpenColorIO.rst
developers/api/OpenColorTransforms.rst
developers/api/OpenColorTypes.rst
${RSTDOC_OUTPUT}
COMMENT "Building html docs"
SOURCES ${DOCFILES})
# note: ExternalProject will not build when added to a add_custom_target this
# works around this problem. This seems to be fixed in the cmake ^HEAD
add_dependencies(doc Sphinx)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build-html/
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/OpenColorIO/html
PATTERN .* EXCLUDE
)
find_package(LATEX)
if(PDFLATEX_COMPILER)
add_custom_target(latex
COMMAND PYTHONPATH=${PYTHONPATH} ${EXTDIST_BINPATH}/sphinx-build -b latex . ${CMAKE_CURRENT_BINARY_DIR}/build-latex
DEPENDS
OpenColorIO
${CMAKE_BINARY_DIR}/docs/conf.py
developers/api/OpenColorIO.rst
developers/api/OpenColorTransforms.rst
developers/api/OpenColorTypes.rst
${RSTDOC_OUTPUT}
COMMENT "Building latex doc"
SOURCES ${DOCFILES})
add_dependencies(latex Sphinx)
add_custom_target(pdf ALL
COMMAND ${PDFLATEX_COMPILER} OpenColorIO.tex
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build-latex
COMMENT "Building pdf doc"
SOURCES ${DOCFILES})
add_dependencies(pdf latex)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/build-latex/OpenColorIO.pdf
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/OpenColorIO/)
endif()
|