Init Repo

This commit is contained in:
2026-06-03 09:00:11 +08:00
commit 9be48d8b9e
155 changed files with 14827 additions and 0 deletions
+53
View File
@@ -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()
+83
View File
@@ -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
)
+188
View File
@@ -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
)