set(SRC_FILES
    "Src/Imp/CPP/UI.cpp"
    "Src/Imp/CPP/Time.cpp"
    "Src/Imp/CPP/Scene.cpp"
    "Src/Imp/CPP/Random.cpp"
    "Src/Imp/CPP/Engine.cpp"
    "Src/Imp/CPP/Utils.cpp"
    "Src/Imp/CPP/InternalEngine.cpp"

    "Src/Imp/CPP/InputManager.cpp"
    "Src/Imp/CPP/ResourceManager.cpp"
    "Src/Imp/CPP/EventManager.cpp"
    "Src/Imp/CPP/WorldManager.cpp"
    "Src/Imp/CPP/AudioManager.cpp"

    "Src/Imp/CPP/Renderer/DebugDraw.cpp"
    "Src/Imp/CPP/Renderer/Pipeline.cpp"
    "Src/Imp/CPP/Renderer/Renderer.cpp"
    "Src/Imp/CPP/Renderer/GPUResourceManager.cpp"
    
    "Src/Imp/CPP/Nodes/Node2D.cpp"
    "Src/Imp/CPP/Nodes/CameraNode.cpp"
    "Src/Imp/CPP/Nodes/SpriteNode.cpp"
    "Src/Imp/CPP/Nodes/TextureNode.cpp"
    "Src/Imp/CPP/Nodes/TileMapNode.cpp"

    "Src/Imp/CPP/Components/CameraComponent.cpp"
    "Src/Imp/CPP/Components/PhysicsComponent.cpp"
    "Src/Imp/CPP/Components/SpriteComponent.cpp"
    "Src/Imp/CPP/Components/TextureComponent.cpp"
    "Src/Imp/CPP/Components/TileMapComponent.cpp"
    "Src/Imp/CPP/Components/SoundEmitterComponent.cpp"

    # Vendor
    "Src/Imp/CPP/Vendor/pugixml/pugixml.cpp"

    "Src/Imp/CPP/Vendor/imgui/imgui.cpp"
    "Src/Imp/CPP/Vendor/imgui/imgui_draw.cpp"
    "Src/Imp/CPP/Vendor/imgui/imgui_tables.cpp"
    "Src/Imp/CPP/Vendor/imgui/imgui_widgets.cpp"
    "Src/Imp/CPP/Vendor/imgui/backends/imgui_impl_sdl3.cpp"
    "Src/Imp/CPP/Vendor/imgui/backends/imgui_impl_sdlgpu3.cpp"
)

add_library(IAEngine STATIC ${SRC_FILES})

target_compile_definitions(IAEngine PRIVATE "__BUILDING_IAENGINE=1")

target_include_directories(IAEngine PUBLIC Src/Inc)
target_include_directories(IAEngine PRIVATE Src/Imp/HPP)

target_link_libraries(IAEngine PUBLIC IACore)
target_link_libraries(IAEngine PRIVATE ZLIB::ZLIBSTATIC SDL3::SDL3 SDL3_mixer::SDL3_mixer RmlUi::RmlUi STB)
