| workspace('rive') | |
| configurations({ 'debug', 'release' }) | |
| dependencies = os.getenv('DEPENDENCIES') | |
| rive = '../../' | |
| dofile(path.join(path.getabsolute(rive) .. '/build', 'premake5.lua')) | |
| project('rive_tess_renderer') | |
| do | |
| kind('StaticLib') | |
| language('C++') | |
| cppdialect('C++11') | |
| toolset('clang') | |
| targetdir('%{cfg.system}/bin/%{cfg.buildcfg}') | |
| objdir('%{cfg.system}/obj/%{cfg.buildcfg}') | |
| includedirs({ | |
| '../include', | |
| rive .. '/include', | |
| dependencies .. '/sokol', | |
| dependencies .. '/earcut.hpp/include/mapbox', | |
| dependencies .. '/libtess2/Include', | |
| }) | |
| files({ '../src/**.cpp', dependencies .. '/libtess2/Source/**.c' }) | |
| buildoptions({ '-Wall', '-fno-exceptions', '-fno-rtti', '-Werror=format' }) | |
| filter('configurations:debug') | |
| do | |
| buildoptions({ '-g' }) | |
| defines({ 'DEBUG' }) | |
| symbols('On') | |
| end | |
| filter('configurations:release') | |
| do | |
| buildoptions({ '-flto=full' }) | |
| defines({ 'RELEASE', 'NDEBUG' }) | |
| optimize('On') | |
| end | |
| filter({ 'options:graphics=gl' }) | |
| do | |
| defines({ 'SOKOL_GLCORE33' }) | |
| end | |
| filter({ 'options:graphics=metal' }) | |
| do | |
| defines({ 'SOKOL_METAL' }) | |
| end | |
| filter({ 'options:graphics=d3d' }) | |
| do | |
| defines({ 'SOKOL_D3D11' }) | |
| end | |
| newoption({ | |
| trigger = 'graphics', | |
| value = 'gl', | |
| description = 'The graphics api to use.', | |
| allowed = { { 'gl' }, { 'metal' }, { 'd3d' } }, | |
| }) | |
| end | |
| project('rive_tess_tests') | |
| do | |
| dependson('rive_tess_renderer') | |
| dependson('rive') | |
| kind('ConsoleApp') | |
| language('C++') | |
| cppdialect('C++17') | |
| toolset('clang') | |
| targetdir('%{cfg.system}/bin/%{cfg.buildcfg}') | |
| objdir('%{cfg.system}/obj/%{cfg.buildcfg}') | |
| includedirs({ | |
| rive .. 'dev/test/include', -- for catch.hpp | |
| rive .. 'test', -- for things like rive_file_reader.hpp | |
| '../include', | |
| rive .. '/include', | |
| dependencies .. '/sokol', | |
| dependencies .. '/earcut.hpp/include/mapbox', | |
| }) | |
| files({ '../test/**.cpp', rive .. 'utils/no_op_factory.cpp' }) | |
| links({ 'rive_tess_renderer', 'rive', 'rive_harfbuzz', 'rive_sheenbidi' }) | |
| buildoptions({ '-Wall', '-fno-exceptions', '-fno-rtti', '-Werror=format' }) | |
| defines({ 'TESTING' }) | |
| filter('configurations:debug') | |
| do | |
| buildoptions({ '-g' }) | |
| defines({ 'DEBUG' }) | |
| symbols('On') | |
| end | |
| filter('configurations:release') | |
| do | |
| buildoptions({ '-flto=full' }) | |
| defines({ 'RELEASE', 'NDEBUG' }) | |
| optimize('On') | |
| end | |
| end |