diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3514d1614a..96759c88d5 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -312,49 +312,7 @@ endif() # Add USD support to serializers if(USD_SUPPORT) - UNIFY_ENVVARS_AND_CACHE(USD_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(USD_LIBRARY_DIR) - - if("${USD_INCLUDE_DIR}" STREQUAL "") - find_path(USD_INCLUDE_DIR pxr.h - PATHS - /usr/include/pxr - /usr/local/include/pxr - REQUIRED - ) - if(USD_INCLUDE_DIR) - message(STATUS "Found USD include files in: ${USD_INCLUDE_DIR}") - else() - message(FATAL_ERROR "Unable to find USD include directory, specify USD_INCLUDE_DIR manually.") - endif() - else() - set(USD_INCLUDE_DIR ${USD_INCLUDE_DIR} CACHE FILEPATH "USD header files") - message(STATUS "Looking for USD include files in: ${USD_INCLUDE_DIR}") - endif() - - set(USD_LIBRARIES - usd_usd - usd_usdGeom - usd_usdShade - usd_usdLux - usd_vt - usd_sdf - usd_tf - usd_gf - ) - - find_library(USD_LIBRARY - NAMES ${USD_LIBRARIES} - PATHS ${USD_LIBRARY_DIR}) - if(USD_LIBRARY) - message(STATUS "USD libraries ${USD_LIBRARIES} found in: ${USD_LIBRARY_DIR}") - link_directories(${USD_LIBRARY_DIR}) - else() - message(FATAL_ERROR "Unable to find USD libraries in: ${USD_LIBRARY_DIR}") - endif() - - add_definitions(-DWITH_USD) - set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_USD) + find_package(USD REQUIRED) endif(USD_SUPPORT) if (WITH_ROCKSDB) diff --git a/cmake/FindUSD.cmake b/cmake/FindUSD.cmake new file mode 100644 index 0000000000..8b134656c1 --- /dev/null +++ b/cmake/FindUSD.cmake @@ -0,0 +1,54 @@ +# +# Input variables: +# - `USD_INCLUDE_DIR` +# - `USD_LIBRARY_DIR` +# Input variables could also be provided as environment variables. +# TODO: Try to find USD config if varibales are not provided. +# TODO: does usd have a config file? +# +# Output variables: +# - `USD_LIBRARIES` + +UNIFY_ENVVARS_AND_CACHE(USD_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(USD_LIBRARY_DIR) + +if("${USD_INCLUDE_DIR}" STREQUAL "") + find_path(USD_INCLUDE_DIR pxr.h + PATHS + /usr/include/pxr + /usr/local/include/pxr + REQUIRED + ) + if(USD_INCLUDE_DIR) + message(STATUS "Found USD include files in: ${USD_INCLUDE_DIR}") + else() + message(FATAL_ERROR "Unable to find USD include directory, specify USD_INCLUDE_DIR manually.") + endif() +else() + set(USD_INCLUDE_DIR ${USD_INCLUDE_DIR} CACHE FILEPATH "USD header files") + message(STATUS "Looking for USD include files in: ${USD_INCLUDE_DIR}") +endif() + +set(USD_LIBRARIES + usd_usd + usd_usdGeom + usd_usdShade + usd_usdLux + usd_vt + usd_sdf + usd_tf + usd_gf + ) + +find_library(USD_LIBRARY + NAMES ${USD_LIBRARIES} + PATHS ${USD_LIBRARY_DIR}) +if(USD_LIBRARY) + message(STATUS "USD libraries ${USD_LIBRARIES} found in: ${USD_LIBRARY_DIR}") + link_directories(${USD_LIBRARY_DIR}) +else() + message(FATAL_ERROR "Unable to find USD libraries in: ${USD_LIBRARY_DIR}") +endif() + +add_definitions(-DWITH_USD) +set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_USD)