-
Notifications
You must be signed in to change notification settings - Fork 7
/
CMakeLists.txt
73 lines (57 loc) · 2.65 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
cmake_minimum_required(VERSION 3.21)
project(CesiumOmniverse)
include(FetchContent)
FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git
GIT_TAG 871ed52d350214a034f6ef8a3b8f51c5ce1bd400) # The commit hash for 1.9.0. Replace with the latest from: https://github.com/libcpr/cpr/releases
FetchContent_MakeAvailable(cpr)
find_package(OmniverseClient REQUIRED)
find_package(NVidiaUSD REQUIRED)
pybind11_add_module(${PROJECT_NAME}
PythonBindingSample.cpp
InMemoryAssetResolver.cpp
GltfToUSD.cpp
TaskProcessor.cpp
HttpAssetAccessor.cpp
Georeference.cpp
Event.cpp
OmniTileset.cpp
RenderResourcesPreparer.cpp
LoggerSink.cpp)
target_include_directories(${PROJECT_NAME} PRIVATE ${OmniverseClient_INCLUDE_DIR} ${NVidiaUSD_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} PRIVATE ${OmniverseClient_LIBRARIES} ${NVidiaUSD_LIBRARIES} zlib spdlog::spdlog CesiumGltf Cesium3DTilesSelection CesiumGltfReader CesiumAsync cpr::cpr)
target_compile_definitions(${PROJECT_NAME} PRIVATE SPDLOG_COMPILED_LIB LIBASYNC_STATIC)
message("${NVidiaUSD_LIBRARIES}")
if(WIN32)
target_link_libraries(${PROJECT_NAME} PRIVATE wsock32 ws2_32)
endif(WIN32)
install (TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION .
LIBRARY DESTINATION .
RUNTIME DESTINATION .)
install (DIRECTORY ${OmniverseClient_LIBRARY_DIR}/ DESTINATION .)
install (DIRECTORY ${NVidiaUSD_LIBRARY_DIR}/ DESTINATION .)
if(WIN32)
# robocopy returns positive numbers for success as well as errors
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND cmd /c robocopy /s ${OmniverseClient_LIBRARY_DIR} $<TARGET_FILE_DIR:${PROJECT_NAME}> /NFL /NDL /NJH /NJS /nc /ns /np ^& IF %ERRORLEVEL% LEQ 8 exit 0
)
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND cmd /c robocopy /s ${NVidiaUSD_LIBRARY_DIR} $<TARGET_FILE_DIR:${PROJECT_NAME}> /NFL /NDL /NJH /NJS /nc /ns /np ^& IF %ERRORLEVEL% LEQ 8 exit 0
)
endif(WIN32)
# create USD plugins
# add_library(CesiumAssetResolver SHARED InMemoryAssetResolver.cpp)
# target_include_directories(CesiumAssetResolver PRIVATE ${OmniverseClient_INCLUDE_DIR} ${NVidiaUSD_INCLUDE_DIR})
# target_link_libraries(CesiumAssetResolver PRIVATE ${OmniverseClient_LIBRARIES} ${NVidiaUSD_LIBRARIES} spdlog::spdlog CesiumGltf Cesium3DTilesSelection CesiumGltfReader CesiumAsync cpr::cpr)
# target_compile_definitions(CesiumAssetResolver PRIVATE SPDLOG_COMPILED_LIB LIBASYNC_STATIC)
# install (TARGETS CesiumAssetResolver
# ARCHIVE DESTINATION .
# LIBRARY DESTINATION .
# RUNTIME DESTINATION .)
install(
FILES
plugInfo.json
DESTINATION .
)