forked from PixarAnimationStudios/OpenUSD
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
111 lines (92 loc) · 3.99 KB
/
CMakeLists.txt
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
project(usd)
if (WIN32)
cmake_minimum_required(VERSION 3.1.1)
else()
cmake_minimum_required(VERSION 2.8.8)
endif()
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/defaults
${CMAKE_SOURCE_DIR}/cmake/modules
${CMAKE_SOURCE_DIR}/cmake/macros)
include(Options)
include(ProjectDefaults)
include(Packages)
# This has to be defined after Packages is included, because it relies on the
# discovered path to the python executable.
set(PXR_PYTHON_SHEBANG "${PYTHON_EXECUTABLE}"
CACHE
STRING
"Replacement path for Python #! line."
)
# CXXDefaults will set a variety of variables for the project.
# Consume them here. This is an effort to keep the most common
# build files readable.
include(CXXDefaults)
add_definitions(${_PXR_CXX_DEFINITIONS})
set(CMAKE_CXX_FLAGS "${_PXR_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
include(Public)
add_subdirectory(pxr)
add_subdirectory(extras)
function(_addIfExists pkg pkgCmakeLists)
if (EXISTS ${pkgCmakeLists})
add_subdirectory(${pkg})
else()
message(WARNING "Specified third party package '${pkgName}' was not found. Please check that '${pkgCmakeLists}' exists")
endif()
endfunction()
function(_enableThirdPartyPlugin identifier)
set(pkg third_party/${identifier})
set(pkgCmakeLists ${CMAKE_CURRENT_SOURCE_DIR}/${pkg}/CMakeLists.txt)
_addIfExists(${pkg} ${pkgCmakeLists})
endfunction()
if (${PXR_BUILD_KATANA_PLUGIN})
if (NOT ${PXR_BUILD_USD_IMAGING})
message(WARNING "Skipping third_party/katana because PXR_BUILD_USD_IMAGING=OFF")
else()
_enableThirdPartyPlugin("katana")
endif()
endif()
if (${PXR_BUILD_MAYA_PLUGIN})
if (NOT ${PXR_BUILD_USD_IMAGING})
message(WARNING "Skipping third_party/maya because PXR_BUILD_USD_IMAGING=OFF")
else()
_enableThirdPartyPlugin("maya")
endif()
endif()
if (${PXR_BUILD_DOCUMENTATION})
# Ensure we have doxygen+graphviz available
find_program(DOXYGEN_EXECUTABLE
NAMES doxygen
)
if (NOT EXISTS ${DOXYGEN_EXECUTABLE})
message(WARNING "Cannot run doc generation, doxygen not found.")
return()
endif()
find_program(DOT_EXECUTABLE
NAMES dot
)
if (NOT EXISTS ${DOT_EXECUTABLE})
message(WARNING "Cannot run doc generation, dot not found.")
return()
endif()
_pxrDoxyConfig_subst()
set(DOCS_DIR "${CMAKE_BINARY_DIR}")
set(GEN_SCRIPT "${PROJECT_SOURCE_DIR}/cmake/macros/generateDocs.py")
set(SOURCE_DIR "${CMAKE_SOURCE_DIR}/pxr")
add_custom_target(
documentation
ALL
COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} ${SOURCE_DIR} ${CMAKE_BINARY_DIR} ${DOCS_DIR} ${DOXYGEN_EXECUTABLE} ${DOT_EXECUTABLE}
DEPENDS ${CMAKE_BINARY_DIR}/include/pxr/pxr.h
)
set(BUILT_HTML_DOCS "${DOCS_DIR}/docs/doxy_html")
set(INST_DOCS_ROOT "${CMAKE_INSTALL_PREFIX}/docs")
install(
DIRECTORY ${BUILT_HTML_DOCS}
DESTINATION ${INST_DOCS_ROOT}
)
set(BUILT_XML_DOCS "${DOCS_DIR}/docs/doxy_xml")
install(
DIRECTORY ${BUILT_XML_DOCS}
DESTINATION ${INST_DOCS_ROOT}
)
endif()