/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ import Ġorg . jetbrains . kotlin . Platform Info Ċ import Ġorg . jetbrains . kotlin . get Compile Only Bench marks Opts Ċ import Ġorg . jetbrains . kotlin . get Native Program Extension Ċ import Ġorg . jetbrains . kotlin . mingw Path Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" compile - benchmark ing ") Ċ } Ċ Ċ val Ġdist Ġ= Ġfile ( find Property (" kotlin . native . home ") Ġ?: Ġ" dist ") Ċ val Ġtool Suffix Ġ= Ġif Ġ( System . getProperty (" os . name "). startsWith (" Windows ")) Ġ". bat " Ġelse Ġ"" Ċ val Ġbinary Suffix Ġ= Ġget Native Program Extension () Ċ val Ġv ide op layer Dir Ġ= Ġ"$ project Dir / ../../ samples / vide op layer " Ċ Ċ val Ġlinker Opts Ġ= Ġwhen Ġ{ ĊĠĠĠ ĠPlatform Info . is Mac () Ġ-> ĠlistOf ("- linker - options "," - L / opt / local / lib ", Ġ"- linker - options ", Ġ"- L / usr / local / lib ") ĊĠĠĠ ĠPlatform Info . is Linux () Ġ-> ĠlistOf ("- linker - options ", Ġ"- L / usr / lib / x 8 6 _ 6 4 - linux - gnu ", Ġ"- linker - options ", Ġ"- L / usr / lib 6 4 ") ĊĠĠĠ ĠPlatform Info . is Windows () Ġ-> ĠlistOf ("- linker - options ", Ġ"- L $ mingw Path / lib ") ĊĠĠĠ Ġelse Ġ-> Ġerror (" Unsupported Ġplatform ") Ċ } Ċ Ċ var Ġinclude Dirs Ff mpeg Ġ= Ġempty List < String >() Ċ var Ġfilter Dirs Ff mpeg Ġ= Ġempty List < String >() Ċ when Ġ{ ĊĠĠĠ ĠPlatform Info . is Mac () Ġ-> Ġfilter Dirs Ff mpeg Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ"- header Filter Additional Search Prefix ", Ġ"/ opt / local / include ", ĊĠĠĠĠĠĠĠ Ġ"- header Filter Additional Search Prefix ", Ġ"/ usr / local / include " ĊĠĠĠ Ġ) ĊĠĠĠ ĠPlatform Info . is Linux () Ġ-> Ġfilter Dirs Ff mpeg Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ"- header Filter Additional Search Prefix ", Ġ"/ usr / include ", ĊĠĠĠĠĠĠĠ Ġ"- header Filter Additional Search Prefix ", Ġ"/ usr / include / x 8 6 _ 6 4 - linux - gnu ", ĊĠĠĠĠĠĠĠ Ġ"- header Filter Additional Search Prefix ", Ġ"/ usr / include / ffmpeg " ĊĠĠĠ Ġ) ĊĠĠĠ ĠPlatform Info . is Windows () Ġ-> Ġinclude Dirs Ff mpeg Ġ= ĠlistOf ("- compiler - option ", Ġ"- I $ mingw Path / include ") Ċ } Ċ Ċ var Ġinclude Dirs S dl Ġ= Ġwhen Ġ{ ĊĠĠĠ ĠPlatform Info . is Mac () Ġ-> ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ"- compiler - option ", Ġ"- I / opt / local / include / SDL 2 ", ĊĠĠĠĠĠĠĠ Ġ"- compiler - option ", Ġ"- I / usr / local / include / SDL 2 " ĊĠĠĠ Ġ) ĊĠĠĠ ĠPlatform Info . is Linux () Ġ-> ĠlistOf ("- compiler - option ", Ġ"- I / usr / include / SDL 2 ") ĊĠĠĠ ĠPlatform Info . is Windows () Ġ-> ĠlistOf ("- compiler - option ", Ġ"- I $ mingw Path / include / SDL 2 ") ĊĠĠĠ Ġelse Ġ-> Ġerror (" Unsupported Ġplatform ") Ċ } Ċ Ċ val Ġdefault Compiler Opts Ġ= Ġ ĠlistOf ("- g ") Ċ val Ġbuild Opts Ġ= Ġget Compile Only Bench marks Opts ( project , Ġdefault Compiler Opts ) Ċ Ċ compile Benchmark Ġ{ ĊĠĠĠ Ġapplication Name Ġ= Ġ" V ide op layer " ĊĠĠĠ Ġrepeat Number Ġ= Ġ 1 0 ĊĠĠĠ Ġcompiler Opts Ġ= Ġbuild Opts ĊĠĠĠ Ġbuild Steps Ġ{ ĊĠĠĠĠĠĠĠ Ġstep (" run C interop Ff mpeg ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ dist / bin / c interop $ tool Suffix ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- o ", Ġ"$ vide op layer Dir / build / classes / kotlin / video Player / main / vide op layer - c interop - ffmpeg . k lib ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- def ", Ġ"$ vide op layer Dir / src / native Interop / c interop / ffmpeg . def " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ+ Ġfilter Dirs Ff mpeg Ġ+ Ġinclude Dirs Ff mpeg ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstep (" run C interop S dl ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ dist / bin / c interop $ tool Suffix ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- o ", Ġ"$ vide op layer Dir / build / classes / kotlin / video Player / main / vide op layer - c interop - sdl . k lib ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- def ", Ġ"$ vide op layer Dir / src / native Interop / c interop / sdl . def " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ+ Ġinclude Dirs S dl ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstep (" run Kon an Program ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ dist / bin / kon anc $ tool Suffix ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- ea ", Ġ"- p ", Ġ" program ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- o ", Ġ"${ build Dir . absolute Path }/ program $ binary Suffix ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- l ", Ġ"$ vide op layer Dir / build / classes / kotlin / video Player / main / vide op layer - c interop - ffmpeg . k lib ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- l ", Ġ"$ vide op layer Dir / build / classes / kotlin / video Player / main / vide op layer - c interop - sdl . k lib ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- X multi - platform ", Ġ"$ vide op layer Dir / src / video Player Main / kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- entry ", Ġ" sample . vide op layer . main " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ+ Ġbuild Opts Ġ+ Ġlinker Opts ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ