gsc_tool = {
    source = path.join(dependencies.basePath, "gsc-tool/src")
}

function gsc_tool.import()
    links {"xsk-gsc-h1", "xsk-gsc-utils"}
    gsc_tool.includes()
end

function gsc_tool.includes()
    includedirs {
        path.join(gsc_tool.source, "utils"), 
        path.join(gsc_tool.source, "h1"),
        path.join(dependencies.basePath, "extra/gsc-tool") -- https://github.com/GEEKiDoS/open-teknomw3/blob/master/deps/extra/gsc-tool
    }
end

-- https://github.com/xensik/gsc-tool/blob/dev/premake5.lua#L95
function gsc_tool.project()
    project "xsk-gsc-utils"
        kind "StaticLib"
        language "C++"

        pchheader "stdafx.hpp"
        pchsource(path.join(gsc_tool.source, "utils/stdafx.cpp"))

        files {
            path.join(gsc_tool.source, "utils/**.h"), 
            path.join(gsc_tool.source, "utils/**.hpp"),
            path.join(gsc_tool.source, "utils/**.cpp")
        }

        includedirs {
            path.join(gsc_tool.source, "utils"), 
            gsc_tool.source
        }

        zlib.includes()

    project "xsk-gsc-h1"
        kind "StaticLib"
        language "C++"

        pchheader "stdafx.hpp"
        pchsource(path.join(gsc_tool.source, "h1/stdafx.cpp"))

        files {
            path.join(gsc_tool.source, "h1/**.h"), 
            path.join(gsc_tool.source, "h1/**.hpp"),
            path.join(gsc_tool.source, "h1/**.cpp"), 
            path.join(dependencies.basePath, "extra/gsc-tool/interface.cpp")
        }

        includedirs {
            path.join(gsc_tool.source, "h1"), 
            gsc_tool.source, 
            path.join(dependencies.basePath, "extra/gsc-tool")
        }

    -- https://github.com/xensik/gsc-tool/blob/dev/premake5.lua#L25
	-- adding these build options fixes a bunch of parser stuff
    filter "action:vs*"
        buildoptions "/bigobj"
        buildoptions "/Zc:__cplusplus"
    filter {}
end

table.insert(dependencies, gsc_tool)