Init Repo
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# FindGlad.cmake - Find or configure the GLAD OpenGL loader
|
||||
#
|
||||
# This module looks for glad in the third_party/glad directory (pre-generated).
|
||||
# It creates a static library target glad::glad.
|
||||
#
|
||||
# Inputs:
|
||||
# GLAD_DIR - Path to glad root (contains include/ and src/)
|
||||
#
|
||||
# Outputs:
|
||||
# Glad_FOUND
|
||||
# Glad::Glad (imported INTERFACE/STATIC target)
|
||||
|
||||
if(NOT GLAD_DIR)
|
||||
set(GLAD_DIR "${CMAKE_SOURCE_DIR}/third_party/glad")
|
||||
endif()
|
||||
|
||||
find_path(GLAD_INCLUDE_DIR
|
||||
NAMES glad/gl.h
|
||||
PATHS "${GLAD_DIR}/include"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
find_file(GLAD_SOURCE
|
||||
NAMES gl.c
|
||||
PATHS "${GLAD_DIR}/src"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Glad
|
||||
REQUIRED_VARS GLAD_INCLUDE_DIR GLAD_SOURCE
|
||||
)
|
||||
|
||||
if(Glad_FOUND AND NOT TARGET Glad::Glad)
|
||||
add_library(glad_impl STATIC "${GLAD_SOURCE}")
|
||||
|
||||
# The project enables only CXX; tell CMake that glad's C source
|
||||
# should be compiled as C and linked with the C linker.
|
||||
set_source_files_properties("${GLAD_SOURCE}" PROPERTIES LANGUAGE C)
|
||||
set_target_properties(glad_impl PROPERTIES LINKER_LANGUAGE C)
|
||||
|
||||
target_include_directories(glad_impl PUBLIC "${GLAD_INCLUDE_DIR}")
|
||||
# glad needs opengl32 on Windows
|
||||
if(WIN32)
|
||||
target_link_libraries(glad_impl PUBLIC opengl32)
|
||||
else()
|
||||
find_package(OpenGL REQUIRED)
|
||||
target_link_libraries(glad_impl PUBLIC OpenGL::GL)
|
||||
endif()
|
||||
|
||||
add_library(Glad::Glad ALIAS glad_impl)
|
||||
message(STATUS "Glad found: ${GLAD_INCLUDE_DIR}")
|
||||
endif()
|
||||
@@ -0,0 +1,83 @@
|
||||
# FindImgui.cmake
|
||||
# Finds ImGui library and sets up compilation
|
||||
#
|
||||
# This module defines:
|
||||
# Imgui_FOUND - System has ImGui
|
||||
# Imgui_INCLUDE_DIRS - ImGui include directories
|
||||
# Imgui_SOURCES - ImGui source files to compile
|
||||
# Imgui::Imgui - Imported target for ImGui
|
||||
|
||||
# Find ImGui directory
|
||||
find_path(Imgui_DIR
|
||||
NAMES imgui.h
|
||||
PATHS
|
||||
${IMGUI_DIR}
|
||||
${CMAKE_SOURCE_DIR}/third_party/imgui-1.92.7
|
||||
${CMAKE_SOURCE_DIR}/third_party/imgui
|
||||
DOC "ImGui root directory"
|
||||
)
|
||||
|
||||
if(Imgui_DIR)
|
||||
set(Imgui_INCLUDE_DIRS
|
||||
${Imgui_DIR}
|
||||
${Imgui_DIR}/backends
|
||||
)
|
||||
|
||||
# Core ImGui source files
|
||||
set(Imgui_SOURCES
|
||||
${Imgui_DIR}/imgui.cpp
|
||||
${Imgui_DIR}/imgui_draw.cpp
|
||||
${Imgui_DIR}/imgui_tables.cpp
|
||||
${Imgui_DIR}/imgui_widgets.cpp
|
||||
${Imgui_DIR}/imgui_demo.cpp
|
||||
)
|
||||
|
||||
# Backend source files for Win32 + OpenGL3
|
||||
list(APPEND Imgui_SOURCES
|
||||
${Imgui_DIR}/backends/imgui_impl_win32.cpp
|
||||
${Imgui_DIR}/backends/imgui_impl_opengl3.cpp
|
||||
)
|
||||
|
||||
set(Imgui_FOUND TRUE)
|
||||
endif()
|
||||
|
||||
# Handle standard find_package arguments
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Imgui
|
||||
REQUIRED_VARS
|
||||
Imgui_DIR
|
||||
Imgui_INCLUDE_DIRS
|
||||
Imgui_SOURCES
|
||||
)
|
||||
|
||||
if(Imgui_FOUND)
|
||||
# Create imported target
|
||||
if(NOT TARGET Imgui::Imgui)
|
||||
# Create the actual library target first
|
||||
add_library(imgui_lib STATIC ${Imgui_SOURCES})
|
||||
target_include_directories(imgui_lib PUBLIC ${Imgui_INCLUDE_DIRS})
|
||||
|
||||
# Link against Windows libraries for Win32 backend and OpenGL
|
||||
target_link_libraries(imgui_lib PUBLIC
|
||||
opengl32
|
||||
gdi32
|
||||
dwmapi
|
||||
imm32
|
||||
)
|
||||
|
||||
# Enable docking support
|
||||
# target_compile_definitions(imgui_lib PUBLIC IMGUI_HAS_DOCK)
|
||||
|
||||
# Set C++ standard
|
||||
target_compile_features(imgui_lib PUBLIC cxx_std_17)
|
||||
|
||||
# Create an alias with the :: namespace
|
||||
add_library(Imgui::Imgui ALIAS imgui_lib)
|
||||
endif()
|
||||
|
||||
message(STATUS "Found ImGui: ${Imgui_DIR}")
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
Imgui_DIR
|
||||
)
|
||||
@@ -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