Files
XCEngine/engine/CMakeLists.txt

705 lines
39 KiB
CMake
Raw Normal View History

cmake_minimum_required(VERSION 3.15)
2026-04-05 04:55:25 +08:00
if(MSVC AND POLICY CMP0141)
cmake_policy(SET CMP0141 NEW)
endif()
project(XCEngineLib)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2026-03-27 12:05:12 +08:00
set(XCENGINE_VULKAN_SDK_HINT "$ENV{VULKAN_SDK}")
if(NOT EXISTS "${XCENGINE_VULKAN_SDK_HINT}/Lib/vulkan-1.lib")
file(GLOB XCENGINE_VULKAN_SDK_DIRS "D:/VulkanSDK/*")
if(XCENGINE_VULKAN_SDK_DIRS)
list(SORT XCENGINE_VULKAN_SDK_DIRS COMPARE NATURAL ORDER DESCENDING)
list(GET XCENGINE_VULKAN_SDK_DIRS 0 XCENGINE_VULKAN_SDK_HINT)
endif()
endif()
if(EXISTS "${XCENGINE_VULKAN_SDK_HINT}/Lib/vulkan-1.lib")
set(Vulkan_ROOT "${XCENGINE_VULKAN_SDK_HINT}")
list(APPEND CMAKE_PREFIX_PATH "${XCENGINE_VULKAN_SDK_HINT}")
endif()
find_package(Vulkan REQUIRED)
2026-04-05 04:55:25 +08:00
set(XCENGINE_OPTIONAL_UI_RESOURCE_SOURCES)
set(XCENGINE_UIDOCUMENT_COMPILER_SOURCE
"${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/UI/UIDocumentCompiler.cpp")
if(EXISTS "${XCENGINE_UIDOCUMENT_COMPILER_SOURCE}")
list(APPEND XCENGINE_OPTIONAL_UI_RESOURCE_SOURCES
${XCENGINE_UIDOCUMENT_COMPILER_SOURCE}
)
else()
set(XCENGINE_UIDOCUMENT_COMPILER_FALLBACK_SOURCE
"${CMAKE_CURRENT_BINARY_DIR}/generated/UIDocumentCompilerFallback.cpp")
file(GENERATE OUTPUT "${XCENGINE_UIDOCUMENT_COMPILER_FALLBACK_SOURCE}" CONTENT [=[
#include <XCEngine/Resources/UI/UIDocumentCompiler.h>
namespace XCEngine {
namespace Resources {
namespace {
constexpr const char* kUnavailableMessage =
"UIDocument compiler implementation is unavailable in this workspace.";
}
bool CompileUIDocument(const UIDocumentCompileRequest&, UIDocumentCompileResult& outResult)
{
outResult = {};
outResult.errorMessage = Containers::String(kUnavailableMessage);
outResult.succeeded = false;
return false;
}
bool WriteUIDocumentArtifact(
const Containers::String&,
const UIDocumentCompileResult&,
Containers::String* outErrorMessage)
{
if (outErrorMessage != nullptr) {
*outErrorMessage = Containers::String(kUnavailableMessage);
}
return false;
}
bool LoadUIDocumentArtifact(
const Containers::String&,
UIDocumentKind,
UIDocumentCompileResult& outResult)
{
outResult = {};
outResult.errorMessage = Containers::String(kUnavailableMessage);
outResult.succeeded = false;
return false;
}
Containers::String GetUIDocumentDefaultRootTag(UIDocumentKind kind)
{
switch (kind) {
case UIDocumentKind::Theme:
return Containers::String("Theme");
case UIDocumentKind::Schema:
return Containers::String("Schema");
case UIDocumentKind::View:
default:
return Containers::String("View");
}
}
} // namespace Resources
} // namespace XCEngine
]=])
list(APPEND XCENGINE_OPTIONAL_UI_RESOURCE_SOURCES
"${XCENGINE_UIDOCUMENT_COMPILER_FALLBACK_SOURCE}"
)
message(STATUS "UIDocumentCompiler.cpp is missing; using generated fallback implementation for build stability.")
endif()
add_library(XCEngine STATIC
# Core (Types, RefCounted, SmartPtr, Event)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Types.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/RefCounted.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/SmartPtr.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Event.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Core.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/FileWriter.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/FileWriter.cpp
# Core/Math
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Math.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Vector2.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Vector3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Vector4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Matrix3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Matrix4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Quaternion.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Transform.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Color.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Ray.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Plane.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Sphere.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Box.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Bounds.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Frustum.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/Rect.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Math/AABB.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Matrix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Quaternion.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Transform.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Color.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/Geometry.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Math/FrustumBounds.cpp
# Core/Containers
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/Containers.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/Array.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/String.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Containers/HashMap.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Containers/String.cpp
# Memory
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/Allocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/LinearAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/PoolAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/ProxyAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/MemoryManager.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Memory/Memory.cpp
# Threading
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Threading.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Mutex.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/SpinLock.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/ReadWriteLock.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Thread.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Task.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/LambdaTask.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskGroup.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskSystemConfig.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/Thread.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskGroup.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskSystem.cpp
# Debug
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Debug.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogLevel.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogCategory.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogEntry.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/ILogSink.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/ConsoleLogSink.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/FileLogSink.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Logger.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Profiler.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/LogLevel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/LogCategory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/ConsoleLogSink.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/FileLogSink.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/Logger.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/Profiler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/RenderDocCapture.cpp
# RHI
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIEnums.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIFactory.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIScreenshot.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIDescriptorPool.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIDescriptorSet.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/ShaderCompiler/SpirvShaderCompiler.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Enums.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Device.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandQueue.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandList.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12DescriptorSet.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Buffer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12PipelineState.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Sampler.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Shader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Texture.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12RootSignature.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12PipelineLayout.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12SwapChain.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Fence.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Screenshot.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12ResourceView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12QueryHeap.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12RenderPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Framebuffer.h
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Device.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandQueue.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandAllocator.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandList.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12DescriptorHeap.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12DescriptorSet.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Buffer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12PipelineState.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Sampler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Shader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Texture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12RootSignature.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12PipelineLayout.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12SwapChain.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Fence.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Screenshot.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12ResourceView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12QueryHeap.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12RenderPass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Framebuffer.cpp
2026-03-27 12:05:12 +08:00
# Vulkan RHI
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanCommon.h
2026-03-27 12:40:17 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanBuffer.h
2026-03-27 12:05:12 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanTexture.h
2026-03-27 13:52:56 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanSampler.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanShader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanShaderCompiler.h
2026-03-27 13:52:56 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanDescriptorPool.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanDescriptorSet.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanPipelineLayout.h
2026-03-27 12:40:17 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanPipelineState.h
2026-03-27 12:05:12 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanResourceView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanFence.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanCommandQueue.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanCommandList.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanRenderPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanFramebuffer.h
2026-03-27 12:05:12 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanSwapChain.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanDevice.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanScreenshot.h
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/ShaderCompiler/SpirvShaderCompiler.cpp
2026-03-27 12:40:17 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanBuffer.cpp
2026-03-27 12:05:12 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanTexture.cpp
2026-03-27 13:52:56 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanSampler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanShader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanShaderCompiler.cpp
2026-03-27 13:52:56 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanDescriptorPool.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanDescriptorSet.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanPipelineLayout.cpp
2026-03-27 12:40:17 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanPipelineState.cpp
2026-03-27 12:05:12 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanResourceView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanCommandQueue.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanCommandList.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanRenderPass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanFramebuffer.cpp
2026-03-27 12:05:12 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanSwapChain.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanDevice.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanScreenshot.cpp
# OpenGL RHI
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLBuffer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLTexture.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLSampler.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLShader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLVertexArray.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDevice.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLCommandList.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLCommandQueue.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLFence.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLPipelineState.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLSwapChain.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDepthStencilView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLTextureUnitAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLUniformBufferManager.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLFramebuffer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLRenderPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLResourceView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDescriptorPool.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDescriptorSet.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLPipelineLayout.h
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLBuffer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLTexture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLSampler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLShader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLVertexArray.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDevice.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLCommandList.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLCommandQueue.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLFence.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLPipelineState.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLSwapChain.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLRenderTargetView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDepthStencilView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLScreenshot.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLTextureUnitAllocator.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLUniformBufferManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLFramebuffer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLRenderPass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLResourceView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDescriptorPool.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDescriptorSet.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLPipelineLayout.cpp
2026-03-26 02:53:34 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/third_party/GLAD/src/glad.c
${CMAKE_CURRENT_SOURCE_DIR}/third_party/stb/stb_image.cpp
# RHI Factory
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/RHIFactory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/RHIScreenshot.cpp
# Core/Asset (Resource System Core)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/IResource.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/AssetGUID.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/AssetRef.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ArtifactFormats.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/AssetDatabase.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/AssetImportService.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ProjectAssetIndex.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceHandle.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceManager.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceCache.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/AsyncLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/Asset/ResourceDependencyGraph.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/AssetGUID.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/AssetDatabase.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/AssetImportService.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ProjectAssetIndex.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceCache.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/AsyncLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceTypes.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/Asset/ResourceDependencyGraph.cpp
# Core/IO (File System Abstraction)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/IResourceLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/ResourcePath.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/ResourceFileSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/FileArchive.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/IO/ResourcePackage.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/IResourceLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/ResourcePath.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/ResourceFileSystem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/FileArchive.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/IO/ResourcePackage.cpp
# Resources (Concrete Resource Types)
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Resources.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Texture/Texture.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Texture/TextureLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Texture/TextureImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/BuiltinResources.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Mesh/Mesh.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Mesh/MeshLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Mesh/MeshImportSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Material/Material.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Material/MaterialLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Shader/Shader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/Shader/ShaderLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/AudioClip/AudioClip.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/AudioClip/AudioLoader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/UI/UIDocumentTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/UI/UIDocumentCompiler.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/UI/UIDocuments.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Resources/UI/UIDocumentLoaders.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Texture/Texture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Texture/TextureLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Texture/TextureImportSettings.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/BuiltinResources.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Mesh/Mesh.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Mesh/MeshLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Mesh/MeshImportSettings.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Material/Material.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Material/MaterialLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Shader/Shader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/Shader/ShaderLoader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/AudioClip/AudioClip.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/AudioClip/AudioLoader.cpp
2026-04-05 04:55:25 +08:00
${XCENGINE_OPTIONAL_UI_RESOURCE_SOURCES}
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/UI/UIDocuments.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/UI/UIDocumentLoaders.cpp
# Scripting
2026-03-26 20:45:41 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scripting/IScriptRuntime.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scripting/NullScriptRuntime.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scripting/ScriptField.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scripting/ScriptFieldStorage.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scripting/ScriptComponent.h
2026-03-26 20:45:41 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scripting/ScriptEngine.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Scripting/NullScriptRuntime.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Scripting/ScriptField.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Scripting/ScriptFieldStorage.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Scripting/ScriptComponent.cpp
2026-03-26 20:45:41 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/Scripting/ScriptEngine.cpp
# Components
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/Component.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/TransformComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/GameObject.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/CameraComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/LightComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/MeshFilterComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/MeshRendererComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/AudioSourceComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/AudioListenerComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/ComponentFactoryRegistry.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/Component.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/TransformComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/GameObject.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/CameraComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/LightComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/MeshFilterComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/MeshRendererComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/AudioSourceComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/AudioListenerComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/ComponentFactoryRegistry.cpp
# Rendering
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderContext.h
2026-04-05 22:02:52 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Builtin/BuiltinPassTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Builtin/BuiltinPassMetadataUtils.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Builtin/BuiltinPassLayoutUtils.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Builtin/BuiltinPassContract.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Execution/CameraRenderer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Execution/SceneRenderer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/FrameData/RenderCameraData.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/FrameData/RenderSceneData.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/FrameData/VisibleRenderItem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Planning/CameraRenderRequest.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Planning/FinalColorPassFactory.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Planning/FinalColorSettings.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Planning/SceneRenderRequestPlanner.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Planning/SceneRenderRequestUtils.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Picking/ObjectIdCodec.h
2026-04-05 21:53:35 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Extraction/RenderSceneExtractor.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Extraction/RenderSceneUtility.h
2026-04-05 22:14:17 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Materials/RenderMaterialResolve.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Materials/RenderMaterialStateUtils.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderPipeline.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderPipelineAsset.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderSurface.h
2026-04-05 22:07:49 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Caches/RenderResourceCache.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Caches/DirectionalShadowSurfaceCache.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinDepthStylePassBase.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinDepthOnlyPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinShadowCasterPass.h
2026-04-01 16:44:11 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinObjectIdPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinColorScalePostProcessPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinFinalColorPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinInfiniteGridPass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Passes/BuiltinObjectIdOutlinePass.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Pipelines/BuiltinForwardPipeline.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Execution/CameraRenderer.cpp
2026-04-05 22:07:49 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Caches/DirectionalShadowSurfaceCache.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Caches/FullscreenPassSurfaceCache.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinDepthStylePassBase.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinDepthStylePassBaseResources.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinDepthOnlyPass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinShadowCasterPass.cpp
2026-04-01 16:44:11 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinObjectIdPass.cpp
2026-04-05 20:44:21 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinObjectIdPassResources.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinColorScalePostProcessPass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinFinalColorPass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinInfiniteGridPass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Passes/BuiltinObjectIdOutlinePass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/RenderSurface.cpp
2026-04-05 21:53:35 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Extraction/RenderSceneExtractor.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Extraction/RenderSceneUtility.cpp
2026-04-05 22:07:49 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Caches/RenderResourceCache.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Planning/SceneRenderRequestPlanner.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Execution/SceneRenderer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Pipelines/BuiltinForwardPipeline.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Pipelines/BuiltinForwardPipelineResources.cpp
# Scene
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scene/Scene.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scene/SceneRuntime.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scene/RuntimeLoop.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scene/SceneManager.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Scene/Scene.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Scene/SceneRuntime.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Scene/RuntimeLoop.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Scene/SceneManager.cpp
# Platform
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/PlatformTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/Window.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IPlatform.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IWindow.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IFileSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IClock.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IDynamicLibrary.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/IDisplayEnumerator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/GameTime.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Platform/Window.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/Windows/WindowsWindow.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Platform/Windows/WindowsWindow.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Platform/Windows/WindowsInputModule.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Platform/Windows/WindowsInputModule.cpp
2026-04-04 18:55:20 +08:00
# UI
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Types.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Layout/UITabStripLayout.h
2026-04-04 18:55:20 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Core/UIInvalidation.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Core/UIViewModel.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Core/UIBuildContext.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Core/UIElementTree.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Core/UIContext.h
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Core/UIBuildContext.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Core/UIElementTree.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Style/StyleTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Style/Theme.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Style/StyleSet.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Style/StyleResolver.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Style/DocumentStyleCompiler.h
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Style/StyleTypes.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Style/Theme.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Style/StyleResolver.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Style/DocumentStyleCompiler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Input/UIInputPath.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Input/UIFocusController.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Input/UIInputRouter.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Input/UIShortcutRegistry.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Input/UIInputDispatcher.h
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Input/UIInputPath.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Input/UIFocusController.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Input/UIInputRouter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Input/UIShortcutRegistry.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Input/UIInputDispatcher.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Text/UITextEditing.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Text/UITextInputController.h
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Text/UITextEditing.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Text/UITextInputController.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Widgets/UIExpansionModel.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Widgets/UIKeyboardNavigationModel.h
2026-04-06 22:32:40 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Widgets/UIPopupOverlayModel.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Widgets/UIPropertyEditModel.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Widgets/UISelectionModel.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Widgets/UITabStripModel.h
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Widgets/UIExpansionModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Widgets/UIKeyboardNavigationModel.cpp
2026-04-06 22:32:40 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Widgets/UIPopupOverlayModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Widgets/UIPropertyEditModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Widgets/UISelectionModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Runtime/UIScreenTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Runtime/UIScreenDocumentHost.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Runtime/UIScreenPlayer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Runtime/UISceneRuntimeContext.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/UI/Runtime/UISystem.h
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Runtime/UIScreenDocumentHost.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Runtime/UIScreenPlayer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Runtime/UISceneRuntimeContext.cpp
2026-04-05 06:05:54 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Runtime/UIScreenStackController.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/UI/Runtime/UISystem.cpp
2026-04-04 18:55:20 +08:00
# Input
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputAxis.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputModule.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Input/InputManager.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Input/InputManager.cpp
# Audio
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/AudioTypes.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/AudioConfig.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/IAudioEffect.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/IAudioBackend.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/AudioSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/WindowsAudioBackend.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AudioSystem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/WindowsAudioBackend.cpp
# Audio Components
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/AudioSourceComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Components/AudioListenerComponent.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/AudioSourceComponent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Components/AudioListenerComponent.cpp
# Audio Mixer
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/AudioMixer.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AudioMixer.cpp
# Audio DSP Effects
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/FFTFilter.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/FFTFilter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/Reverbation.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/Reverbation.cpp
2026-03-21 12:19:27 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/Equalizer.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/Equalizer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Audio/HRTF.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/HRTF.cpp
# Third-party (KissFFT)
${CMAKE_CURRENT_SOURCE_DIR}/third_party/kissfft/kiss_fft.h
${CMAKE_CURRENT_SOURCE_DIR}/third_party/kissfft/kiss_fft.c
${CMAKE_CURRENT_SOURCE_DIR}/third_party/kissfft/kiss_fftr.h
${CMAKE_CURRENT_SOURCE_DIR}/third_party/kissfft/kiss_fftr.c
${CMAKE_CURRENT_SOURCE_DIR}/third_party/kissfft/_kiss_fft_guts.h
)
target_include_directories(XCEngine PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}/third_party
2026-03-26 02:53:34 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/third_party/GLAD/include
${CMAKE_CURRENT_SOURCE_DIR}/third_party/stb
${CMAKE_CURRENT_SOURCE_DIR}/third_party/assimp/include
)
target_link_libraries(XCEngine PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/third_party/assimp/lib/assimp-vc143-mt.lib
opengl32
2026-03-27 12:05:12 +08:00
Vulkan::Vulkan
)
2026-03-28 19:26:08 +08:00
if(MSVC)
2026-04-05 06:05:54 +08:00
target_compile_options(XCEngine PRIVATE
/FS
$<$<CONFIG:Debug,RelWithDebInfo>:/Z7>)
target_link_libraries(XCEngine PUBLIC
delayimp
d3dcompiler)
2026-03-28 19:26:08 +08:00
target_link_options(XCEngine INTERFACE "/DELAYLOAD:assimp-vc143-mt.dll")
2026-04-05 04:55:25 +08:00
set_target_properties(XCEngine PROPERTIES
MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:Embedded>"
COMPILE_PDB_NAME "XCEngine-compile"
COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb"
COMPILE_PDB_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/Debug"
COMPILE_PDB_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/Release"
COMPILE_PDB_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/MinSizeRel"
COMPILE_PDB_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/RelWithDebInfo"
VS_GLOBAL_UseMultiToolTask "false"
)
2026-03-28 19:26:08 +08:00
endif()
if(XCENGINE_ENABLE_MONO_SCRIPTING)
set(XCENGINE_MONO_INCLUDE_DIR "${XCENGINE_MONO_ROOT_DIR}/include")
set(XCENGINE_MONO_STATIC_LIBRARY "${XCENGINE_MONO_ROOT_DIR}/lib/libmono-static-sgen.lib")
set(XCENGINE_MONO_POSIX_HELPER_LIBRARY "${XCENGINE_MONO_ROOT_DIR}/lib/MonoPosixHelper.lib")
foreach(XCENGINE_MONO_REQUIRED_PATH
"${XCENGINE_MONO_INCLUDE_DIR}"
"${XCENGINE_MONO_STATIC_LIBRARY}"
"${XCENGINE_MONO_POSIX_HELPER_LIBRARY}")
if(NOT EXISTS "${XCENGINE_MONO_REQUIRED_PATH}")
message(FATAL_ERROR "Required Mono dependency is missing: ${XCENGINE_MONO_REQUIRED_PATH}")
endif()
endforeach()
add_library(XCEMono STATIC IMPORTED)
set_target_properties(XCEMono PROPERTIES
IMPORTED_LOCATION "${XCENGINE_MONO_STATIC_LIBRARY}"
)
target_sources(XCEngine PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scripting/Mono/MonoScriptRuntime.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Scripting/Mono/MonoScriptRuntime.cpp
)
target_include_directories(XCEngine PRIVATE
${XCENGINE_MONO_INCLUDE_DIR}
)
target_link_libraries(XCEngine PUBLIC
XCEMono
${XCENGINE_MONO_POSIX_HELPER_LIBRARY}
ws2_32
bcrypt
version
iphlpapi
winmm
)
target_compile_definitions(XCEngine PRIVATE
XCENGINE_ENABLE_MONO_SCRIPTING
)
endif()
if(MSVC)
target_compile_options(XCEngine PRIVATE /W3 /FS)
else()
target_compile_options(XCEngine PRIVATE -Wall)
endif()
2026-03-27 12:05:12 +08:00
target_compile_definitions(XCEngine PRIVATE
XCENGINE_SUPPORT_OPENGL
XCENGINE_SUPPORT_VULKAN
)