blob: f6c1c323c2307523493f8caa2e806f68a7eb2d4e [file] [log] [blame]
workspace "rive"
configurations {"debug", "release"}
project "rive"
kind "StaticLib"
language "C++"
cppdialect "C++17"
targetdir "%{cfg.system}/bin/%{cfg.buildcfg}"
objdir "%{cfg.system}/obj/%{cfg.buildcfg}"
includedirs {"../include"}
files {"../src/**.cpp"}
buildoptions {"-Wall", "-fno-exceptions", "-fno-rtti", "-Werror=format"}
filter {"system:macosx" }
buildoptions {"-flto=full"}
filter {"system:ios" }
buildoptions {"-flto=full"}
filter "system:windows"
defines {"_USE_MATH_DEFINES"}
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 arm64 -arch x86_64 -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", "options:arch=x86" }
targetdir "%{cfg.system}/x86/bin/%{cfg.buildcfg}"
objdir "%{cfg.system}/x86/obj/%{cfg.buildcfg}"
filter { "system:android", "options:arch=x64" }
targetdir "%{cfg.system}/x64/bin/%{cfg.buildcfg}"
objdir "%{cfg.system}/x64/obj/%{cfg.buildcfg}"
filter { "system:android", "options:arch=arm" }
targetdir "%{cfg.system}/arm/bin/%{cfg.buildcfg}"
objdir "%{cfg.system}/arm/obj/%{cfg.buildcfg}"
filter { "system:android", "options:arch=arm64" }
targetdir "%{cfg.system}/arm64/bin/%{cfg.buildcfg}"
objdir "%{cfg.system}/arm64/obj/%{cfg.buildcfg}"
filter "configurations:debug"
defines {"DEBUG"}
symbols "On"
filter "configurations:release"
defines {"RELEASE"}
defines {"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" }
}
}