Init Repo
This commit is contained in:
@@ -0,0 +1,188 @@
|
||||
# FindOpenUSD.cmake
|
||||
# Finds OpenUSD installation and sets up necessary variables
|
||||
#
|
||||
# This module defines:
|
||||
# OpenUSD_FOUND - System has OpenUSD
|
||||
# OpenUSD_INCLUDE_DIRS - OpenUSD include directories
|
||||
# OpenUSD_LIBRARIES - Libraries needed to use OpenUSD
|
||||
# OpenUSD_LIBRARY_DIR - Directory containing OpenUSD libraries
|
||||
# OpenUSD_VERSION - Version of OpenUSD found
|
||||
|
||||
# Look for OpenUSD root
|
||||
find_path(OpenUSD_ROOT_DIR
|
||||
NAMES include/pxr/pxr.h lib/usd_usd.lib
|
||||
PATHS
|
||||
${CMAKE_PREFIX_PATH}
|
||||
$ENV{OpenUSD_ROOT}
|
||||
DOC "OpenUSD root directory"
|
||||
)
|
||||
|
||||
if(OpenUSD_ROOT_DIR)
|
||||
set(OpenUSD_INCLUDE_DIR "${OpenUSD_ROOT_DIR}/include")
|
||||
set(OpenUSD_LIBRARY_DIR "${OpenUSD_ROOT_DIR}/lib")
|
||||
set(OpenUSD_BIN_DIR "${OpenUSD_ROOT_DIR}/lib")
|
||||
endif()
|
||||
|
||||
# Find Python 3.12 (required by this USD build)
|
||||
find_path(Python312_INCLUDE_DIR
|
||||
NAMES Python.h
|
||||
PATHS
|
||||
"$ENV{LOCALAPPDATA}/Programs/Python/Python312/include"
|
||||
"C:/Python312/include"
|
||||
"C:/Program Files/Python312/include"
|
||||
DOC "Python 3.12 include directory"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
find_path(Python312_LIBRARY_DIR
|
||||
NAMES python312.lib
|
||||
PATHS
|
||||
"$ENV{LOCALAPPDATA}/Programs/Python/Python312/libs"
|
||||
"C:/Python312/libs"
|
||||
"C:/Program Files/Python312/libs"
|
||||
DOC "Python 3.12 library directory"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
# Core USD libraries needed for the project
|
||||
set(OpenUSD_REQUIRED_LIBS
|
||||
arch
|
||||
tf
|
||||
gf
|
||||
vt
|
||||
work
|
||||
plug
|
||||
trace
|
||||
sdf
|
||||
pcp
|
||||
usd
|
||||
usdGeom
|
||||
usdLux
|
||||
usdShade
|
||||
usdImaging
|
||||
usdImagingGL
|
||||
hdx
|
||||
hd
|
||||
hdSt
|
||||
hf
|
||||
hgi
|
||||
hgiGL
|
||||
glf
|
||||
hio
|
||||
ar
|
||||
kind
|
||||
ndr
|
||||
sdr
|
||||
python
|
||||
cameraUtil
|
||||
)
|
||||
|
||||
# Dependency libraries bundled with USD
|
||||
set(OpenUSD_DEP_LIBS
|
||||
tbb
|
||||
tbbmalloc
|
||||
Imath-3_1
|
||||
osdCPU
|
||||
)
|
||||
|
||||
# Find USD libraries
|
||||
set(OpenUSD_LIBRARIES "")
|
||||
foreach(lib ${OpenUSD_REQUIRED_LIBS})
|
||||
find_library(OpenUSD_${lib}_LIBRARY
|
||||
NAMES usd_${lib}
|
||||
PATHS ${OpenUSD_LIBRARY_DIR}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
if(OpenUSD_${lib}_LIBRARY)
|
||||
list(APPEND OpenUSD_LIBRARIES ${OpenUSD_${lib}_LIBRARY})
|
||||
else()
|
||||
message(WARNING "Could not find OpenUSD library: usd_${lib}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Find dependency libraries
|
||||
foreach(lib ${OpenUSD_DEP_LIBS})
|
||||
find_library(OpenUSD_dep_${lib}_LIBRARY
|
||||
NAMES ${lib}
|
||||
PATHS ${OpenUSD_LIBRARY_DIR}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
if(OpenUSD_dep_${lib}_LIBRARY)
|
||||
list(APPEND OpenUSD_LIBRARIES ${OpenUSD_dep_${lib}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Find Python library
|
||||
if(Python312_LIBRARY_DIR)
|
||||
find_library(Python312_LIBRARY
|
||||
NAMES python312
|
||||
PATHS ${Python312_LIBRARY_DIR}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(Python312_LIBRARY)
|
||||
list(APPEND OpenUSD_LIBRARIES ${Python312_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Try to find version from pxr.h
|
||||
if(OpenUSD_INCLUDE_DIR AND EXISTS "${OpenUSD_INCLUDE_DIR}/pxr/pxr.h")
|
||||
file(STRINGS "${OpenUSD_INCLUDE_DIR}/pxr/pxr.h" _version_line
|
||||
REGEX "^#define PXR_VERSION ")
|
||||
if(_version_line)
|
||||
string(REGEX REPLACE "^#define PXR_VERSION ([0-9]+).*" "\\1" OpenUSD_VERSION "${_version_line}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Handle standard find_package arguments
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(OpenUSD
|
||||
REQUIRED_VARS
|
||||
OpenUSD_INCLUDE_DIR
|
||||
OpenUSD_LIBRARY_DIR
|
||||
OpenUSD_LIBRARIES
|
||||
VERSION_VAR OpenUSD_VERSION
|
||||
)
|
||||
|
||||
if(OpenUSD_FOUND)
|
||||
set(OpenUSD_INCLUDE_DIRS
|
||||
${OpenUSD_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Add Python include if found
|
||||
if(Python312_INCLUDE_DIR)
|
||||
list(APPEND OpenUSD_INCLUDE_DIRS ${Python312_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
# Create imported target
|
||||
if(NOT TARGET OpenUSD::OpenUSD)
|
||||
add_library(OpenUSD::OpenUSD INTERFACE IMPORTED)
|
||||
set_target_properties(OpenUSD::OpenUSD PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${OpenUSD_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${OpenUSD_LIBRARIES}"
|
||||
)
|
||||
|
||||
# Add required compile definitions for USD
|
||||
target_compile_definitions(OpenUSD::OpenUSD INTERFACE
|
||||
NOMINMAX
|
||||
)
|
||||
endif()
|
||||
|
||||
message(STATUS "Found OpenUSD: ${OpenUSD_INCLUDE_DIR}")
|
||||
message(STATUS "OpenUSD Libraries: ${OpenUSD_LIBRARY_DIR}")
|
||||
message(STATUS "OpenUSD Binaries: ${OpenUSD_BIN_DIR}")
|
||||
if(Python312_INCLUDE_DIR)
|
||||
message(STATUS "Python 3.12: ${Python312_INCLUDE_DIR}")
|
||||
endif()
|
||||
if(OpenUSD_VERSION)
|
||||
message(STATUS "OpenUSD Version: ${OpenUSD_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
OpenUSD_INCLUDE_DIR
|
||||
OpenUSD_LIBRARY_DIR
|
||||
Python312_INCLUDE_DIR
|
||||
Python312_LIBRARY_DIR
|
||||
)
|
||||
Reference in New Issue
Block a user