cmake_minimum_required(VERSION 3.15) project(XCEngineLib) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_library(XCEngine STATIC # Math include/XCEngine/Math/Math.h include/XCEngine/Math/Vector2.h include/XCEngine/Math/Vector3.h include/XCEngine/Math/Vector4.h include/XCEngine/Math/Matrix3.h include/XCEngine/Math/Matrix4.h include/XCEngine/Math/Quaternion.h include/XCEngine/Math/Transform.h include/XCEngine/Math/Color.h include/XCEngine/Math/Ray.h include/XCEngine/Math/Plane.h include/XCEngine/Math/Sphere.h include/XCEngine/Math/Box.h include/XCEngine/Math/Bounds.h include/XCEngine/Math/Frustum.h include/XCEngine/Math/Rect.h include/XCEngine/Math/AABB.h src/Math/Matrix.cpp src/Math/Quaternion.cpp src/Math/Transform.cpp src/Math/Color.cpp src/Math/Geometry.cpp src/Math/FrustumBounds.cpp # Containers include/XCEngine/Containers/Containers.h include/XCEngine/Containers/Array.h include/XCEngine/Containers/String.h include/XCEngine/Containers/HashMap.h src/Containers/String.cpp # Memory include/XCEngine/Memory/Allocator.h include/XCEngine/Memory/LinearAllocator.h include/XCEngine/Memory/PoolAllocator.h include/XCEngine/Memory/ProxyAllocator.h include/XCEngine/Memory/MemoryManager.h src/Memory/Memory.cpp # Threading include/XCEngine/Threading/Threading.h include/XCEngine/Threading/Mutex.h include/XCEngine/Threading/SpinLock.h include/XCEngine/Threading/ReadWriteLock.h include/XCEngine/Threading/Thread.h include/XCEngine/Threading/Task.h include/XCEngine/Threading/LambdaTask.h include/XCEngine/Threading/TaskGroup.h include/XCEngine/Threading/TaskSystemConfig.h include/XCEngine/Threading/TaskSystem.h src/Threading/Thread.cpp src/Threading/TaskGroup.cpp src/Threading/TaskSystem.cpp # Core include/XCEngine/Core/FileWriter.h src/Core/FileWriter.cpp # Debug include/XCEngine/Debug/Debug.h include/XCEngine/Debug/LogLevel.h include/XCEngine/Debug/LogCategory.h include/XCEngine/Debug/LogEntry.h include/XCEngine/Debug/ILogSink.h include/XCEngine/Debug/ConsoleLogSink.h include/XCEngine/Debug/FileLogSink.h include/XCEngine/Debug/Logger.h include/XCEngine/Debug/Profiler.h src/Debug/LogLevel.cpp src/Debug/LogCategory.cpp src/Debug/ConsoleLogSink.cpp src/Debug/FileLogSink.cpp src/Debug/Logger.cpp src/Debug/Profiler.cpp # RHI include/XCEngine/RHI/Enums.h include/XCEngine/RHI/D3D12/D3D12Enum.h include/XCEngine/RHI/D3D12/D3D12Device.h include/XCEngine/RHI/D3D12/D3D12CommandQueue.h include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h include/XCEngine/RHI/D3D12/D3D12CommandList.h include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h include/XCEngine/RHI/D3D12/D3D12Buffer.h include/XCEngine/RHI/D3D12/D3D12PipelineState.h include/XCEngine/RHI/D3D12/D3D12Sampler.h include/XCEngine/RHI/D3D12/D3D12Shader.h include/XCEngine/RHI/D3D12/D3D12Texture.h include/XCEngine/RHI/D3D12/D3D12RootSignature.h include/XCEngine/RHI/D3D12/D3D12SwapChain.h include/XCEngine/RHI/D3D12/D3D12Fence.h include/XCEngine/RHI/D3D12/D3D12Screenshot.h include/XCEngine/RHI/D3D12/D3D12RenderTargetView.h include/XCEngine/RHI/D3D12/D3D12DepthStencilView.h include/XCEngine/RHI/D3D12/D3D12ShaderResourceView.h include/XCEngine/RHI/D3D12/D3D12ConstantBufferView.h include/XCEngine/RHI/D3D12/D3D12QueryHeap.h include/XCEngine/RHI/D3D12/D3D12UnorderedAccessView.h src/RHI/D3D12/D3D12Device.cpp src/RHI/D3D12/D3D12CommandQueue.cpp src/RHI/D3D12/D3D12CommandAllocator.cpp src/RHI/D3D12/D3D12CommandList.cpp src/RHI/D3D12/D3D12DescriptorHeap.cpp src/RHI/D3D12/D3D12Buffer.cpp src/RHI/D3D12/D3D12PipelineState.cpp src/RHI/D3D12/D3D12Sampler.cpp src/RHI/D3D12/D3D12Shader.cpp src/RHI/D3D12/D3D12Texture.cpp src/RHI/D3D12/D3D12RootSignature.cpp src/RHI/D3D12/D3D12SwapChain.cpp src/RHI/D3D12/D3D12Fence.cpp src/RHI/D3D12/D3D12Screenshot.cpp src/RHI/D3D12/D3D12RenderTargetView.cpp src/RHI/D3D12/D3D12DepthStencilView.cpp src/RHI/D3D12/D3D12ShaderResourceView.cpp src/RHI/D3D12/D3D12ConstantBufferView.cpp src/RHI/D3D12/D3D12QueryHeap.cpp src/RHI/D3D12/D3D12UnorderedAccessView.cpp # OpenGL RHI include/XCEngine/RHI/OpenGL/OpenGLDevice.h include/XCEngine/RHI/OpenGL/OpenGLShader.h include/XCEngine/RHI/OpenGL/OpenGLBuffer.h include/XCEngine/RHI/OpenGL/OpenGLVertexArray.h include/XCEngine/RHI/OpenGL/OpenGLTexture.h include/XCEngine/RHI/OpenGL/OpenGLPipelineState.h include/XCEngine/RHI/OpenGL/OpenGLCommandList.h include/XCEngine/RHI/OpenGL/OpenGLSwapChain.h include/XCEngine/RHI/OpenGL/OpenGLFence.h src/RHI/OpenGL/OpenGLDevice.cpp src/RHI/OpenGL/OpenGLShader.cpp src/RHI/OpenGL/OpenGLBuffer.cpp src/RHI/OpenGL/OpenGLVertexArray.cpp src/RHI/OpenGL/OpenGLTexture.cpp src/RHI/OpenGL/OpenGLPipelineState.cpp src/RHI/OpenGL/OpenGLCommandList.cpp src/RHI/OpenGL/OpenGLSwapChain.cpp src/RHI/OpenGL/OpenGLFence.cpp ) target_include_directories(XCEngine PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests/OpenGL/package/include ) if(MSVC) target_compile_options(XCEngine PRIVATE /W3) else() target_compile_options(XCEngine PRIVATE -Wall) endif()