local prj_dir = os.getenv("PWD")
local slang_dir = prj_dir .. "/slang-prebuild/install_static"

add_requires("conan::libassert/2.1.0", {alias = "libassert"})
add_requires("conan::boost/1.85.0", {alias = "boost"})
add_requires("conan::argparse/3.1", {alias = "argparse"})
add_requires("conan::inja/3.4.0", {alias = "inja"})

target("svparser")
    set_kind("binary")

    set_toolset("cc", "gcc")
    set_toolset("cxx", "g++")
    
    set_languages("c++20")

    add_includedirs(
        prj_dir .. "/src/svparser",
        prj_dir .. "/slang-common",
        slang_dir .. "/include"
    )

    add_links("svlang", "fmt", "mimalloc")
    add_linkdirs(slang_dir .. "/lib")

    add_packages("libassert", "boost", "argparse", "inja")

    add_files(
        prj_dir .. "/src/svparser/svparser.cc",
        prj_dir .. "/slang-common/*.cc"
    )

    after_build(function(target)
        os.run("mkdir %s -p", prj_dir .. "/bin")
        os.run("cp %s %s", target:targetfile(), prj_dir .. "/bin/svparser")
    end)

    add_runenvs("PRJ_DIR", os.getenv("PWD"))

