local ogg = require("path/to/premake-scripts/ogg/build-ogg")
local imgui = require("path/to/premake-scripts/build-imgui")
local sfml = require("path/to/premake-scripts/sfml/build-sfml")
local flac = require("path/to/premake-scripts/flac/build-flac")
local vorbis = require("path/to/premake-scripts/vorbis/build-vorbis")
local freetype = require("path/to/premake-scripts/freetype/build-freetype")
local imguisfml = require("path/to/premake-scripts/imgui-sfml/build-imgui-sfml")

local exampleproject = require("path/to/project")

-- assuming you are using the modules I provided with premake
require ("ecc/ecc")
require ("ninja/ninja")

workspace "Example"
    architecture "x64"
    startproject "Example"
    staticruntime "Off"

    -- assuming you want your build files in seperate directory
    location "build"

    configuration {"Debug", "Release"}

    filter"system:linux"
        pic"On" -- fix warning when statically linking <relocation against ... in read-only section .text>
    filter""

    externalwarnings "Off" --turn off build warnings created from sfml, imgui, and it's depedencies

    filter "configurations:debug"
        symbols "on"
        runtime "Debug"
        warnings "Extra"

    filter "configurations:release"
        optimize "Speed"
        inlining "Auto"
        symbols "off"
        runtime "Release"
    filter""

    output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
    intdir = "intermediate-files/"
    bindir = "bin/" .. output_dir
    liboutdir = "lib/" .. output_dir

    -- have Dependencies in a different folder for Visual studio
    group"Dependencies"
        ogg.generateproject(liboutdir, intdir)
        sfml.generateproject(liboutdir, intdir)
        flac.generateproject(liboutdir, intdir)
        imgui.generateproject(liboutdir, intdir)
        vorbis.generateproject(liboutdir, intdir)
        freetype.generateproject(liboutdir, intdir)
        imguisfml.generateproject(liboutdir, intdir)
    group""

        exampleproject.generateproject(bindir, intdir)

        -- add your other projects
