cmake_minimum_required(VERSION 3.15) project(XCEngineLib) set(CMAKE_CXX_STANDARD 17) 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) set(CMAKE_CXX_STANDARD_REQUIRED ON) 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/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 # Vulkan RHI ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanCommon.h ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/Vulkan/VulkanTexture.h ${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/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/Vulkan/VulkanTexture.cpp ${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/VulkanSwapChain.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanDevice.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/Vulkan/VulkanScreenshot.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Framebuffer.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 ${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/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/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/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}/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/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 # Scripting ${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 ${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 ${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 ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderCameraData.h ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/VisibleRenderObject.h ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderSceneExtractor.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 ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/RenderResourceCache.h ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/SceneRenderer.h ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Rendering/Pipelines/BuiltinForwardPipeline.h ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/RenderSurface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/RenderSceneExtractor.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/RenderResourceCache.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/SceneRenderer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/Rendering/Pipelines/BuiltinForwardPipeline.cpp # Scene ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scene/Scene.h ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Scene/SceneManager.h ${CMAKE_CURRENT_SOURCE_DIR}/src/Scene/Scene.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 # 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 ${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 ${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 Vulkan::Vulkan ) if(MSVC) target_compile_options(XCEngine PRIVATE /W3 /FS) else() target_compile_options(XCEngine PRIVATE -Wall) endif() target_compile_definitions(XCEngine PRIVATE XCENGINE_SUPPORT_OPENGL XCENGINE_SUPPORT_VULKAN )