| local dependency = require 'dependency' |
| sheenbidi = dependency.github('Tehreer/SheenBidi', 'v2.6') |
| |
| workspace 'rive' |
| configurations {'debug', 'release'} |
| |
| project 'rive_sheenbidi' |
| do |
| kind 'StaticLib' |
| language 'C' |
| targetdir '%{cfg.system}/cache/bin/%{cfg.buildcfg}/' |
| objdir '%{cfg.system}/cache/obj/%{cfg.buildcfg}/' |
| warnings 'Off' |
| |
| includedirs { |
| sheenbidi .. '/Headers' |
| } |
| |
| buildoptions { |
| '-Wall', |
| '-ansi', |
| '-pedantic' |
| } |
| |
| linkoptions {'-r'} |
| |
| filter 'system:emscripten' |
| do |
| buildoptions {'-pthread'} |
| end |
| |
| filter 'configurations:debug' |
| do |
| files { |
| sheenbidi .. '/Source/BidiChain.c', |
| sheenbidi .. '/Source/BidiTypeLookup.c', |
| sheenbidi .. '/Source/BracketQueue.c', |
| sheenbidi .. '/Source/GeneralCategoryLookup.c', |
| sheenbidi .. '/Source/IsolatingRun.c', |
| sheenbidi .. '/Source/LevelRun.c', |
| sheenbidi .. '/Source/PairingLookup.c', |
| sheenbidi .. '/Source/RunQueue.c', |
| sheenbidi .. '/Source/SBAlgorithm.c', |
| sheenbidi .. '/Source/SBBase.c', |
| sheenbidi .. '/Source/SBCodepointSequence.c', |
| sheenbidi .. '/Source/SBLine.c', |
| sheenbidi .. '/Source/SBLog.c', |
| sheenbidi .. '/Source/SBMirrorLocator.c', |
| sheenbidi .. '/Source/SBParagraph.c', |
| sheenbidi .. '/Source/SBScriptLocator.c', |
| sheenbidi .. '/Source/ScriptLookup.c', |
| sheenbidi .. '/Source/ScriptStack.c', |
| sheenbidi .. '/Source/StatusStack.c' |
| } |
| end |
| filter 'configurations:release' |
| do |
| files { |
| sheenbidi .. '/Source/SheenBidi.c' |
| } |
| end |
| |
| filter 'configurations:debug' |
| do |
| defines {'DEBUG'} |
| symbols 'On' |
| end |
| |
| filter 'configurations:release' |
| do |
| buildoptions {'-Oz'} |
| defines {'RELEASE', 'NDEBUG', 'SB_CONFIG_UNITY'} |
| optimize 'On' |
| end |
| |
| filter {'system:macosx', 'options:variant=runtime'} |
| do |
| buildoptions { |
| '-Wimplicit-float-conversion -fembed-bitcode -arch arm64 -arch x86_64 -isysroot ' .. |
| (os.getenv('MACOS_SYSROOT') or '') |
| } |
| end |
| |
| filter {'system:macosx', 'configurations:release'} |
| do |
| buildoptions {'-flto=full'} |
| end |
| |
| filter {'system:ios'} |
| do |
| buildoptions {'-flto=full'} |
| end |
| |
| filter 'system:windows' |
| do |
| architecture 'x64' |
| defines {'_USE_MATH_DEFINES'} |
| end |
| |
| filter {'system:ios', 'options:variant=system'} |
| do |
| buildoptions { |
| '-mios-version-min=13.0 -fembed-bitcode -arch arm64 -isysroot ' .. |
| (os.getenv('IOS_SYSROOT') or '') |
| } |
| end |
| |
| filter {'system:ios', 'options:variant=emulator'} |
| do |
| buildoptions { |
| '-mios-version-min=13.0 -arch arm64 -arch x86_64 -isysroot ' .. (os.getenv('IOS_SYSROOT') or '') |
| } |
| targetdir '%{cfg.system}_sim/cache/bin/%{cfg.buildcfg}' |
| objdir '%{cfg.system}_sim/cache/obj/%{cfg.buildcfg}' |
| end |
| |
| filter {'system:android', 'configurations:release'} |
| do |
| buildoptions {'-flto=full'} |
| end |
| |
| -- Is there a way to pass 'arch' as a variable here? |
| filter {'system:android', 'options:arch=x86'} |
| do |
| targetdir '%{cfg.system}/cache/x86/bin/%{cfg.buildcfg}' |
| objdir '%{cfg.system}/cache/x86/obj/%{cfg.buildcfg}' |
| end |
| |
| filter {'system:android', 'options:arch=x64'} |
| do |
| targetdir '%{cfg.system}/cache/x64/bin/%{cfg.buildcfg}' |
| objdir '%{cfg.system}/cache/x64/obj/%{cfg.buildcfg}' |
| end |
| |
| filter {'system:android', 'options:arch=arm'} |
| do |
| targetdir '%{cfg.system}/cache/arm/bin/%{cfg.buildcfg}' |
| objdir '%{cfg.system}/cache/arm/obj/%{cfg.buildcfg}' |
| end |
| |
| filter {'system:android', 'options:arch=arm64'} |
| do |
| targetdir '%{cfg.system}/cache/arm64/bin/%{cfg.buildcfg}' |
| objdir '%{cfg.system}/cache/arm64/obj/%{cfg.buildcfg}' |
| end |
| end |