blob: e1b6d55e9118273f67a80b14ed536881175aee68 [file] [log] [blame]
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