plugins Ġ{ ĊĠĠĠ Ġ` cpp - library ` Ċ } Ċ group Ġ= Ġ" cock os " Ċ version Ġ= Ġ" 1 . 0 " Ċ Ċ library Ġ{ ĊĠĠĠ Ġbinaries . configure Each ( Cpp Static Library :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġif Ġ( isDebug gable ) Ġ" debug " Ġelse Ġ" release " ĊĠĠĠĠĠĠĠ Ġval Ġarch Ġ= Ġtarget Machine . architecture . name ĊĠĠĠĠĠĠĠ Ġval Ġos Ġ= Ġtarget Machine . operating System Family . name ĊĊĠĠĠĠĠĠĠ Ġval Ġc Compile Task Ġ= Ġtasks . register (" compile " Ġ+ Ġname . capitalize () Ġ+ Ġ" C ", ĠC Compile :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTake Ġconfiguration Ġfrom ĠC ++ Ġcompile Ġtasks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtool Chain . set ( compile Task . map Ġ{ Ġit . tool Chain . get () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Platform . set ( compile Task . map Ġ{ Ġit . target Platform . get () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġincludes . from ( compile Task . map Ġ{ Ġit . includes Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Includes . from ( compile Task . map Ġ{ Ġit . system Includes Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠConfigure Ġthe ĠC Ġsource Ġfile Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( tool Chain . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠVisual Cpp Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / win 3 2 _ utf 8 . c ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / zlib / ad ler 3 2 . c ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / zlib / crc 3 2 . c ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / zlib / in ff ast . c ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / zlib / inflate . c ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / zlib / in ft re es . c ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / zlib / z util . c ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Ġ= Ġ" objs / main C /$ type /$ os /$ arch " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject File Dir . set ( project . layout . build Directory . dir ( dir )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUnfortunately , Ġthis Ġdoesn 't Ġuse Ġthe ĠProvider ĠAPI Ġyet . ĠThe Ġimpact Ġis Ġminim ized Ġby Ġusing Ġthe Ġlazy Ġtask ĠAPI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacros Ġ= Ġcompile Task . get (). macros ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Optim ized Ġ= Ġcompile Task . get (). is Optim ized ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Debug gable Ġ= Ġcompile Task . get (). isDebug gable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Position In dependent Code Ġ= Ġcompile Task . get (). is Position In dependent Code ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġobj c Compile Task Ġ= Ġtasks . register (" compile " Ġ+ Ġname . capitalize () Ġ+ Ġ" obj C ", ĠObjective Cpp Compile :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTake Ġconfiguration Ġfrom ĠC ++ Ġcompile Ġtasks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtool Chain . set ( compile Task . map Ġ{ Ġit . tool Chain . get () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Platform . set ( compile Task . map Ġ{ Ġit . target Platform . get () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġincludes . from ( compile Task . map Ġ{ Ġit . includes Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Includes . from ( compile Task . map Ġ{ Ġit . system Includes Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠConfigure Ġthe Ġobj C Ġsource Ġfile Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource . from (" src / main / cpp / W DL / sw ell / sw ell - mod stub . mm ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMust Ġuse Ġanother Ġdirectory Ġfor Ġproper Ġup - to - date Ġcheck ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Ġ= Ġ" objs / main Obj c /$ type /$ os /$ arch " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject File Dir . set ( project . layout . build Directory . dir ( dir )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUnfortunately , Ġthis Ġdoesn 't Ġuse Ġthe ĠProvider ĠAPI Ġyet . ĠThe Ġimpact Ġis Ġminim ized Ġby Ġusing Ġthe Ġlazy Ġtask ĠAPI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacros Ġ= Ġcompile Task . get (). macros ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Optim ized Ġ= Ġcompile Task . get (). is Optim ized ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Debug gable Ġ= Ġcompile Task . get (). isDebug gable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Position In dependent Code Ġ= Ġcompile Task . get (). is Position In dependent Code ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// add Ġc Ġand Ġobj C Ġcompile Ġresults Ġto Ġcreate Task Ġsources ĊĠĠĠĠĠĠĠ Ġif Ġ( target Machine . operating System Family . is Mac Os ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Objs Ġ= Ġproject . file Tree (" build / objs / main C /$ type /$ os /$ arch ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude (" ** /*. o ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj c Ġ= Ġproject . file Tree (" build / objs / main Obj c /$ type /$ os /$ arch ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude (" ** /*. o ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Task . get (). source ( c Objs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Task . get (). depends On ( c Compile Task ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Task . get (). source ( objc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Task . get (). depends On ( objc Compile Task ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( target Machine . operating System Family . is Linux ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Objs Ġ= Ġproject . file Tree (" build / objs / main C /$ type /$ os /$ arch ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude (" ** /*. obj ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Task . get (). source ( c Objs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Task . get (). depends On ( c Compile Task ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠDefine Ġtoolchain - specific Ġcompiler Ġoptions ĊĠĠĠĠĠĠĠ Ġwhen Ġ( tool Chain ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠG cc , Ġis ĠC lang Ġ-> Ġcompile Task . get (). compiler Args . addAll ( listOf ("- std = c ++ 1 4 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠVisual Cpp Ġ-> Ġcompile Task . get (). compiler Args . add ("/ std : c ++ 1 4 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( target Machine . operating System Family . is Linux ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// use Ġposition Ġindependent Ġcode Ġto Ġprevent Ġerrors ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). is Position In dependent Code Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// sw ell ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). source . from (" src / main / cpp / W DL / sw ell / sw ell - mod stub - generic . cpp ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Add Ġmacros Ġto Ġuse Ġsw ell Ġfrom Ġre aper Ġ( reduc es Ġsize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). macros [" SW ELL _ TARGET _ G DK "] Ġ= Ġ" 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). macros [" NO MIN MAX "] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). macros [" SW ELL _ PROVIDED _ BY _ APP "] Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( target Machine . operating System Family . is Mac Os ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// use Ġposition Ġindependent Ġcode Ġto Ġprevent Ġerrors ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). is Position In dependent Code Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Add Ġmacros Ġto Ġuse Ġsw ell Ġfrom Ġre aper Ġ( reduc es Ġsize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). macros [" NO MIN MAX "] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . get (). macros [" SW ELL _ PROVIDED _ BY _ APP "] Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlink age . set ( listOf ( Link age . STATIC )) ĊĠĠĠ Ġsource Ġ{ ĊĠĠĠĠĠĠĠ Ġ// j net lib ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / j net lib / http get . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / j net lib / util . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / j net lib / connection . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / j net lib / async dns . cpp ") ĊĊĠĠĠĠĠĠĠ Ġ// lib png ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png error . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png get . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png mem . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png p read . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png read . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png rio . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / pn gr tran . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / pn gr util . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png set . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lib png / png trans . cpp ") ĊĊĠĠĠĠĠĠĠ Ġ// lice ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / lice / lice . cpp ") ĊĊĠĠĠĠĠĠĠ Ġ// w dl ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / wing ui / wnd size . cpp ") ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp / W DL / wing ui / scrollbar / cool scroll . cpp ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Headers Ġ{ ĊĠĠĠĠĠĠĠ Ġfrom (" src / main / cpp ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtarget Machines . add ( machines . linux . x 8 6 _ 6 4 ) ĊĠĠĠ Ġtarget Machines . add ( machines . windows . x 8 6 _ 6 4 ) ĊĠĠĠ Ġtarget Machines . add ( machines . windows . x 8 6 ) ĊĠĠĠ Ġtarget Machines . add ( machines . macOS . x 8 6 _ 6 4 ) Ċ }