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

require 'setup_compiler'

dofile("premake5_pls_renderer.lua")
dofile(RIVE_RUNTIME_DIR .. "/build/premake5.lua")

newoption {
    trigger = "with-skia",
    description = "use skia",
}
if _OPTIONS["with-skia"]
then
    dofile(RIVE_RUNTIME_DIR .. "/skia/renderer/build/premake5.lua")
end

if _OPTIONS["wasm"]
then
    dofile("premake5_canvas2d_renderer.lua")
end

project "path_fiddle"
do
    dependson 'rive'
    kind "ConsoleApp"
    language "C++"
    cppdialect "C++17"
    exceptionhandling "Off"
    rtti "Off"
    targetdir "%{cfg.buildcfg}"
    objdir "obj/%{cfg.buildcfg}"
    includedirs {"../include",
                 RIVE_RUNTIME_DIR .. "/include",
                 "../glad",
                 "../include",
                 RIVE_RUNTIME_DIR .. "/skia/dependencies/glfw/include"}
    flags { "FatalWarnings" }

    files {
        "../path_fiddle/path_fiddle.cpp",
        "../path_fiddle/fiddle_context_gl.cpp",
    }

    links {"rive", "rive_pls_renderer", "rive_harfbuzz", "rive_sheenbidi"}

    filter "options:with-skia"
    do
        includedirs {RIVE_RUNTIME_DIR .. "/skia/renderer/include",
                     RIVE_RUNTIME_DIR .. "/skia/dependencies",
                     RIVE_RUNTIME_DIR .. "/skia/dependencies/skia"}
        defines {"RIVE_SKIA", "SK_GL"}
        libdirs {RIVE_RUNTIME_DIR .. "/skia/dependencies/skia/out/static"}
        links {"skia", "rive_skia_renderer"}
    end

    filter "system:windows"
    do
        files {"../path_fiddle/fiddle_context_d3d.cpp"}
        architecture "x64"
        defines {"RIVE_WINDOWS", "_CRT_SECURE_NO_WARNINGS"}
        libdirs {RIVE_RUNTIME_DIR .. "/skia/dependencies/glfw_build/src/Release"}
        links {"glfw3", "opengl32", "d3d11", "dxgi", "d3dcompiler"}
    end

    filter "system:macosx"
    do
        files {"../path_fiddle/fiddle_context_metal.mm"}
        buildoptions {"-fobjc-arc"}
        links {"glfw3",
               "Cocoa.framework",
               "Metal.framework",
               "QuartzCore.framework",
               "IOKit.framework"}
        libdirs {RIVE_RUNTIME_DIR .. "/skia/dependencies/glfw_build/src"}
    end

    filter "system:emscripten"
    do
        targetname "path_fiddle.js"
        targetdir "wasm_%{cfg.buildcfg}/path_fiddle"
        objdir "obj/wasm_%{cfg.buildcfg}"
        linkoptions {"-sUSE_GLFW=3",
                     "--preload-file ../../../gold/rivs@/"}
        files {"../path_fiddle/index.html"}
    end

    filter 'files:**.html'
    do
        buildmessage "Copying %{file.relpath} to %{cfg.targetdir}"
        buildcommands {"cp %{file.relpath} %{cfg.targetdir}/%{file.name}"}
        buildoutputs { "%{cfg.targetdir}/%{file.name}" }
    end

    filter "configurations:debug"
    do
        defines {"DEBUG"}
        symbols "On"
    end

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

project "bubbles"
do
    kind "ConsoleApp"
    language "C++"
    cppdialect "C++17"
    exceptionhandling "Off"
    rtti "Off"
    targetdir "%{cfg.buildcfg}"
    objdir "obj/%{cfg.buildcfg}"
    includedirs {"../",
                 "../glad",
                 "../include",
                 RIVE_RUNTIME_DIR .. "/skia/dependencies/glfw/include"}
    flags { "FatalWarnings" }
    files {"../bubbles/bubbles.cpp",
           "../glad/glad.c",
           "../glad/glad_custom.c"}

    filter "system:windows"
    do
        architecture "x64"
        defines {"RIVE_WINDOWS"}
        links {"glfw3", "opengl32"}
        libdirs {RIVE_RUNTIME_DIR .. "/skia/dependencies/glfw_build/src/Release"}
    end

    filter "system:macosx"
    do
        links {'glfw3', 'Cocoa.framework', 'IOKit.framework'}
        libdirs {RIVE_RUNTIME_DIR .. "/skia/dependencies/glfw_build/src"}
    end

    filter "system:emscripten"
    do
        targetname "bubbles.js"
        targetdir "wasm_%{cfg.buildcfg}/bubbles"
        objdir "obj/wasm_%{cfg.buildcfg}"
        linkoptions {"-sUSE_GLFW=3"}
        files {"../bubbles/index.html"}
    end

    filter 'files:**.html'
    do
        buildmessage "Copying %{file.relpath} to %{cfg.targetdir}"
        buildcommands {"cp %{file.relpath} %{cfg.targetdir}/%{file.name}"}
        buildoutputs { "%{cfg.targetdir}/%{file.name}" }
    end

    filter "configurations:debug"
    do
        defines {"DEBUG"}
        symbols "On"
    end

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