# Engine module
add_library(Engine STATIC)
# Engine sources
target_sources(
Engine PRIVATE
Audio/Private/Effects/Echo.cpp
Audio/Private/Effects/Reverb.cpp
Audio/Private/Formats/OGGLoader.cpp
Audio/Private/Formats/WAVLoader.cpp
Audio/Private/AudioManager.cpp
Audio/Private/AudioSystem.cpp
Audio/Private/AudioUtils.cpp
Audio/Private/Music.cpp
Audio/Private/Sound.cpp
Core/Private/Math/Vector2.cpp
Core/Private/Math/Vector3.cpp
Core/Private/Audio.cpp
Core/Private/Engine.cpp
Core/Private/Graphics.cpp
Core/Private/Input.cpp
Core/Private/Layer.cpp
Core/Private/LayerStack.cpp
Core/Private/Time.cpp
Editor/Private/AnimationBuilder/AnimationBuilder.cpp
Editor/Private/ModelImporter/ModelImporter.cpp
Editor/Private/PluginManager/PluginManager.cpp
Editor/Private/SceneExporter/SceneExporter.cpp
Editor/Private/TextureProcessor/TextureProcessor.cpp
Editor/Private/AssetBrowserWindow.cpp
Editor/Private/Command.cpp
Editor/Private/Editor.cpp
Editor/Private/EditorUtils.cpp
Editor/Private/EditorWindow.cpp
Editor/Private/InspectorWindow.cpp
Editor/Private/SceneViewWindow.cpp
Editor/Private/Toolbar.cpp
Editor/Private/UndoStack.cpp
Graphics/Private/Camera.cpp
Graphics/Private/Graphics.cpp
Graphics/Private/Light.cpp
Graphics/Private/Material.cpp
Graphics/Private/Mesh.cpp
Graphics/Private/RenderTarget.cpp
Graphics/Private/Shader.cpp
Graphics/Private/Texture.cpp
Input/Private/Gamepad.cpp
Input/Private/InputManager.cpp
Input/Private/InputUtils.cpp
Input/Private/Keyboard.cpp
Input/Private/Mouse.cpp
Networking/Private/NetworkClient.cpp
Networking/Private/NetworkManager.cpp
Networking/Private/NetworkServer.cpp
Networking/Private/Packet.cpp
Networking/Private/Serialization.cpp
Physics/Private/Collider.cpp
Physics/Private/CollisionDetection.cpp
Physics/Private/CollisionShape.cpp
Physics/Private/PhysicsMaterial.cpp
Physics/Private/PhysicsWorld.cpp
Physics/Private/Rigidbody.cpp
Platform/Private/GenericPlatform/GenericAudioSystem.cpp
Platform/Private/GenericPlatform/GenericFileSystem.cpp
Platform/Private/GenericPlatform/GenericGraphicsContext.cpp
Platform/Private/GenericPlatform/GenericInputSystem.cpp
Platform/Private/GenericPlatform/GenericNetworking.cpp
Platform/Private/GenericPlatform/GenericPlatform.cpp
Platform/Private/GenericPlatform/GenericTimeUtils.cpp
Platform/Private/GenericPlatform/GenericWindow.cpp
Platform/Private/Linux/LinuxAudioSystem.cpp
Platform/Private/Linux/LinuxFileSystem.cpp
Platform/Private/Linux/LinuxGraphicsContext.cpp
Platform/Private/Linux/LinuxInputSystem.cpp
Platform/Private/Linux/LinuxNetworking.cpp
Platform/Private/Linux/LinuxPlatform.cpp
Platform/Private/Linux/LinuxTimeUtils.cpp
Platform/Private/Linux/LinuxWindow.cpp
Platform/Private/Mac/MacAudioSystem.cpp
Platform/Private/Mac/MacFileSystem.cpp
Platform/Private/Mac/MacGraphicsContext.cpp
Platform/Private/Mac/MacInputSystem.cpp
Platform/Private/Mac/MacNetworking.cpp
Platform/Private/Mac/MacPlatform.cpp
Platform/Private/Mac/MacTimeUtils.cpp
Platform/Private/Mac/MacWindow.cpp
Platform/Private/Mobile/MobileAudioSystem.cpp
Platform/Private/Mobile/MobileFileSystem.cpp
Platform/Private/Mobile/MobileGraphicsContext.cpp
Platform/Private/Mobile/MobileInputSystem.cpp
Platform/Private/Mobile/MobileNetworking.cpp
Platform/Private/Mobile/MobilePlatform.cpp
Platform/Private/Mobile/MobileTimeUtils.cpp
Platform/Private/Mobile/MobileWindow.cpp
Platform/Private/Windows/WindowsAudioSystem.cpp
Platform/Private/Windows/WindowsFileSystem.cpp
Platform/Private/Windows/WindowsGraphicsContext.cpp
Platform/Private/Windows/WindowsInputSystem.cpp
Platform/Private/Windows/WindowsNetworking.cpp
Platform/Private/Windows/WindowsPlatform.cpp
Platform/Private/Windows/WindowsTimeUtils.cpp
Platform/Private/Windows/WindowsWindow.cpp
Resource/Private/AudioResource.cpp
Resource/Private/MeshResource.cpp
Resource/Private/Resource.cpp
Resource/Private/ResourceManager.cpp
Resource/Private/TextureResource.cpp
Scene/Private/Component.cpp
Scene/Private/GameObject.cpp
Scene/Private/RendererComponent.cpp
Scene/Private/Scene.cpp
Scene/Private/SceneManager.cpp
Scene/Private/TransformComponent.cpp
Scripting/Private/CSharpScriptEngine.cpp
Scripting/Private/LuaScriptEngine.cpp
Scripting/Private/ScriptManager.cpp
Scripting/Private/ScriptObject.cpp
Serialization/Private/BinarySerializer.cpp
Serialization/Private/Deserializer.cpp
Serialization/Private/JsonSerializer.cpp
Serialization/Private/Serializable.cpp
Serialization/Private/Serializer.cpp
UI/Private/Button.cpp
UI/Private/Canvas.cpp
UI/Private/Checkbox.cpp
UI/Private/Dropdown.cpp
UI/Private/Label.cpp
UI/Private/Panel.cpp
UI/Private/ProgressBar.cpp
UI/Private/RadioButton.cpp
UI/Private/Slider.cpp
UI/Private/TextBox.cpp
UI/Private/UIElement.cpp
UI/Private/UIManager.cpp
)
# Engine include directories
target_include_directories(
Engine PUBLIC
Audio/Public
Core/Public
Editor/Public
Graphics/Public
Input/Public
Networking/Public
Physics/Public
Platform/Public
Resource/Public
Scene/Public
Scripting/Public
Serialization/Public
UI/Public
)