find_package(Corrade REQUIRED Main)
find_package(Magnum REQUIRED
        GL
        MeshTools
        Shaders
        SceneGraph
        Trade
        Sdl2Application)
find_package(MagnumIntegration REQUIRED ImGui)

set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON)

add_executable(${PROJECT_NAME} WIN32
        Chocolate.h
        Chocolate.cpp
        Camera.h
        Camera.cpp
        MagnumDrawable.h
        MagnumDrawable.cpp
        Common.h
        ${PROJECT_SOURCE_DIR}/ImGuiFileDialog/ImGuiFileDialog.cpp
        Components.cpp
        Components.h
        Scene.cpp
        Scene.h
        Materials.h
        UI.cpp
        UI.h
)

target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/ImGuiFileDialog)

add_dependencies(${PROJECT_NAME}
    Magnum::AnyImageImporter
    Magnum::AnySceneImporter
    Magnum::ObjImporter
    MagnumPlugins::StbImageImporter
    MagnumPlugins::GltfImporter
)

target_link_libraries(${PROJECT_NAME} PRIVATE
    Corrade::Main
    Magnum::Application
    Magnum::GL
    Magnum::Magnum
    Magnum::MeshTools
    Magnum::SceneGraph
    Magnum::Shaders
    Magnum::Trade
    EnTT::EnTT
    MagnumIntegration::ImGui
)

# Make the executable a default target to build & run in Visual Studio
set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME})
