workspace "rive"
configurations {"debug", "release"}

project "rive_skia_renderer"
    kind "StaticLib"
    language "C++"
    cppdialect "C++17"
    toolset "clang"
    targetdir "%{cfg.system}/bin/%{cfg.buildcfg}"
    objdir "%{cfg.system}/obj/%{cfg.buildcfg}"
    includedirs {"../include", "../../../include"}

    if os.host() == "macosx" then
        links {"Cocoa.framework", "rive", "skia"}
    elseif os.host() == "windows" then
        architecture "x64"
        links {
            "rive",
            "skia.lib",
            "opengl32.lib"
        }
        defines {"_USE_MATH_DEFINES"}
        staticruntime "on"  -- Match Skia's /MT flag for link compatibility
        runtime "Release"  -- Use /MT even in debug (/MTd is incompatible with Skia)
    else
        links {"rive", "skia"}
    end

    libdirs {"../../../build/%{cfg.system}/bin/%{cfg.buildcfg}"}

    files {"../src/**.cpp"}

    buildoptions {"-Wall", "-fno-exceptions", "-fno-rtti", "-Werror=format"}

    filter {"system:macosx" }
        buildoptions {"-flto=full"}
        includedirs {"../../dependencies/skia", "../../dependencies/skia/include/core",
             "../../dependencies/skia/include/effects", "../../dependencies/skia/include/gpu",
             "../../dependencies/skia/include/config"}
        libdirs {"../../dependencies/skia/out/static"}

    filter {"system:linux or windows" }
        includedirs {"../../dependencies/skia", "../../dependencies/skia/include/core",
             "../../dependencies/skia/include/effects", "../../dependencies/skia/include/gpu",
             "../../dependencies/skia/include/config"}
        libdirs {"../../dependencies/skia/out/static"}

    filter {"system:ios" }
        buildoptions {"-flto=full"}
        includedirs {"../../dependencies/skia_rive_optimized", "../../dependencies/skia_rive_optimized/include/core",
             "../../dependencies/skia_rive_optimized/include/effects", "../../dependencies/skia_rive_optimized/include/gpu",
             "../../dependencies/skia_rive_optimized/include/config"}
        libdirs {"../../dependencies/skia_rive_optimized/out/static"}

    filter {"system:ios", "options:variant=system" }
        buildoptions {"-mios-version-min=10.0 -fembed-bitcode -arch armv7 -arch arm64 -arch arm64e -isysroot " .. (os.getenv("IOS_SYSROOT") or "")}
    
    filter {"system:ios", "options:variant=emulator" }
        buildoptions {"-mios-version-min=10.0 -arch x86_64 -arch arm64 -arch i386 -isysroot " .. (os.getenv("IOS_SYSROOT") or "")}
        targetdir "%{cfg.system}_sim/bin/%{cfg.buildcfg}"
        objdir "%{cfg.system}_sim/obj/%{cfg.buildcfg}"

    -- Is there a way to pass 'arch' as a variable here?
    filter { "system:android" }
        includedirs {"../../dependencies/skia_rive_optimized", "../../dependencies/skia_rive_optimized/include/core",
             "../../dependencies/skia_rive_optimized/include/effects", "../../dependencies/skia_rive_optimized/include/gpu",
             "../../dependencies/skia_rive_optimized/include/config"}
        
        filter { "system:android", "options:arch=x86" }
            targetdir "%{cfg.system}/x86/bin/%{cfg.buildcfg}"
            objdir "%{cfg.system}/x86/obj/%{cfg.buildcfg}"
            libdirs {"../../dependencies/skia_rive_optimized/out/x86"}

        filter { "system:android", "options:arch=x64" }
            targetdir "%{cfg.system}/x64/bin/%{cfg.buildcfg}"
            objdir "%{cfg.system}/x64/obj/%{cfg.buildcfg}"
            libdirs {"../../dependencies/skia_rive_optimized/out/x64"}

        filter { "system:android", "options:arch=arm" }
            targetdir "%{cfg.system}/arm/bin/%{cfg.buildcfg}"
            objdir "%{cfg.system}/arm/obj/%{cfg.buildcfg}"
            libdirs {"../../dependencies/skia_rive_optimized/out/arm"}

        filter { "system:android", "options:arch=arm64" }
            targetdir "%{cfg.system}/arm64/bin/%{cfg.buildcfg}"
            objdir "%{cfg.system}/arm64/obj/%{cfg.buildcfg}"
            libdirs {"../../dependencies/skia_rive_optimized/out/arm64"}
            
    filter "configurations:debug"
        defines {"DEBUG"}
        symbols "On"

    filter "configurations:release"
        defines {"RELEASE", "NDEBUG"}
        optimize "On"

newoption {
    trigger = "variant",
    value = "type",
    description = "Choose a particular variant to build",
    allowed = {
        { "system",   "Builds the static library for the provided system" },
        { "emulator",  "Builds for an emulator/simulator for the provided system" }
    },
    default = "system"
}

newoption {
    trigger = "arch",
    value = "ABI",
    description = "The ABI with the right toolchain for this build, generally with Android",
    allowed = {
        { "x86" },
        { "x64" },
        { "arm" },
        { "arm64" }
    }

}
