1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908 |
- FAKEID=628318530716
- SANDBOX_FAKEID=${FAKEID}.7600000
- CPP_FAKEID=2024-01-23
- GO_FAKEID=11100371
- ANDROID_FAKEID=2023-05-17
- CLANG_TIDY_FAKEID=2023-06-06
- CYTHON_FAKE_ID=10784829
- JAVA_FAKEID=20240627
- PROTO_FAKEID=0
- FBS_FAKEID=2024-03-13
- JSON_CACHE_FAKE_ID=20240830
- STRUCT_CMD=yes
- _DBG_EXPR_ERROR_DETAILS=one
- CURDIR=.
- MODDIR=.
- BINDIR=bin:/
- SRCDIR=
- YMAKE=ymake
- ECHO=echo
- INCLUDE_EXTS=.h .hh .hpp .rli .cuh .inc .i .ipp .ixx .ya_exposed .hxx .H
- CPP_EXT=.cpp
- OBJ_SUF=
- CFLAGS=
- EXTRA_C_FLAGS=
- SFLAGS=
- SRCFLAGS=
- FORCE_COVERAGE_ENABLED=
- FORCE_COVERAGE_DISABLED=
- LDFLAGS=
- LDFLAGS_GLOBAL=
- OBJADDE=
- OBJADDE_LIB=
- OBJADDE_LIB_GLOBAL=
- TRUE=yes
- FALSE=no
- MODULE_PREFIX=
- MODULE_SUFFIX=
- __COMMA__=${comma:""}
- __BSDQ__=\"
- when ($STRUCT_CMD == "yes") {
- __BSDQ__=\\\"
- }
- WINDOWS=no
- macro _SRC(EXT, SRC, SRCFLAGS...) {
-
- }
- CLANG_VER=14
- when ($CLANG16 == "yes") {
- CLANG_VER=16
- }
- when ($CLANG18 == "yes") {
- CLANG_VER=18
- }
- USE_ARCADIA_COMPILER_RUNTIME=yes
- when ($LOCAL && $XCODE) {
- USE_ARCADIA_COMPILER_RUNTIME=no
- }
- @import "${CONF_ROOT}/conf/settings.conf"
- @import "${CONF_ROOT}/conf/opensource.conf"
- @import "${CONF_ROOT}/conf/opensource_export.conf"
- @import "${CONF_ROOT}/conf/sysincl.conf"
- @import "${CONF_ROOT}/conf/license.conf"
- @import "${CONF_ROOT}/conf/docs.conf"
- @import "${CONF_ROOT}/conf/swig.conf"
- @import "${CONF_ROOT}/conf/proto.conf"
- @import "${CONF_ROOT}/conf/fbs.conf"
- @import "${CONF_ROOT}/conf/ts/ts.conf"
- @import "${CONF_ROOT}/conf/project_specific/other.conf"
- @import "${CONF_ROOT}/conf/project_specific/yt.conf"
- SO_OUTPUTS=no
- when ($USE_PYTHON) {
- C_DEFINES+= -DUSE_PYTHON
- }
- _PREBUILT_TOOLS_ROOT=build/prebuilt
- _TOOL_PROTOC_GEN_GO=vendor/github.com/golang/protobuf/protoc-gen-go
- _TOOL_PROTOC_GEN_GO_V2=vendor/google.golang.org/protobuf/cmd/protoc-gen-go
- _TOOL_PROTOC_GEN_GO_GRPC_V2=vendor/google.golang.org/grpc/cmd/protoc-gen-go-grpc
- _TOOL_RESCOMPILER=tools/rescompiler
- _TOOL_RESCOMPRESSOR=tools/rescompressor
- _TOOL_RORESCOMPILER=tools/rorescompiler
- when ($DISABLE_SEPARATE_AUX_CPP != "yes") {
- SEPARATE_AUX_CPP=yes
- }
- _HOST_SUPPORTS_PREBUILT_PROTOC_GEN_GO=no
- _TARGET_SUPPORTS_PREBUILT_PROTOC_GEN_GO=no
- when ($USE_PREBUILT_TOOLS == "yes") {
- when ($HOST_ARCH_X86_64 == "yes" && ($HOST_OS_LINUX == "yes" || $HOST_OS_WINDOWS == "yes" || $HOST_OS_DARWIN == "yes")) {
- _HOST_SUPPORTS_PREBUILT_PROTOC_GEN_GO=yes
- }
- when ($HOST_ARCH_ARM64 == "yes" && $HOST_OS_DARWIN == "yes") {
- _HOST_SUPPORTS_PREBUILT_PROTOC_GEN_GO=yes
- }
- when ($ARCH_X86_64 == "yes" && ($OS_LINUX == "yes" || $OS_WINDOWS == "yes" || $OS_DARWIN == "yes")) {
- _TARGET_SUPPORTS_PREBUILT_PROTOC_GEN_GO=yes
- }
- when ($ARCH_ARM64 == "yes" && $OS_DARWIN == "yes") {
- _TARGET_SUPPORTS_PREBUILT_PROTOC_GEN_GO=yes
- }
- when ($_HOST_SUPPORTS_PREBUILT_PROTOC_GEN_GO == "yes" && $_TARGET_SUPPORTS_PREBUILT_PROTOC_GEN_GO == "yes") {
- _TOOL_PROTOC_GEN_GO=${_PREBUILT_TOOLS_ROOT}/vendor/github.com/golang/protobuf/protoc-gen-go
- }
- }
- CPP_LINTERS_DEFAULT_CONFIGS=build/config/tests/cpp_style/default_configs.json
- macro FUNCTION_ORDERING_FILE(ORDERING_FILE) {
- select ($_LINKER_ID) {
- "lld" ? {
- }
- default ? {
- _OK = no
- }
- }
- ASSERT(_OK FUNCTION_ORDERING_FILE macro can be used only with `lld` linker, but you chose `$_LINKER_ID`.)
- LDFLAGS("-Wl,--symbol-ordering-file=${suf=_RESOURCE_GLOBAL/funcs.ord;pre=$:ORDERING_FILE}")
- }
- macro SELECT_CLANG_SA_CONFIG(config) {
- SET(_CLANG_SA_CONFIG ${input:config})
- }
- macro USE_SA_PLUGINS(FROM[], NAME[]) {
- PEERDIR($FROM)
- SET_APPEND(CLANG_SA_PLUGINS ${suf=_RESOURCE_GLOBAL/plugin.so;pre=$:NAME})
- }
- macro _CLANG_SA_UNWRAP_PLUGINS(Plugins{input}[]) {
- .CMD=${Plugins}
- }
- CLANG_SA_PLUGINS=
- CLANG_CSA_ROOT=${CLANG_CSA16_RESOURCE_GLOBAL}
- CLANG_CSA_BIN=${CLANG_CSA16_RESOURCE_GLOBAL}/bin/clang
- when ($CLANG_SA_ENABLE == "yes" && $_CLANG_SA_CONFIG && $CLANG_CSA_ROOT) {
- PEERDIR+=build/platform/clang/clang-static-analyzer
- CLANG_STATIC_ANALYZER_OPTIONS_NEW=$YMAKE_PYTHON3 ${input:"build/scripts/clang_static_analyzer.py"} \
- "--testing-src" ${input:SRC} \
- "--clang-bin" $CLANG_CSA_BIN \
- "--source-root" $(SOURCE_ROOT) \
- "--config-file" ${input:_CLANG_SA_CONFIG} \
- "--plugins-begin" "dummy_param" $CLANG_SA_PLUGINS "--plugins-end" \
- $GCC_COMPILE_FLAGS $CXXFLAGS $SRCFLAGS
- }
- otherwise {
- CLANG_STATIC_ANALYZER_OPTIONS_NEW=
- }
- FAIL_MODULE_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/fail_module_cmd.py"} $TARGET ${hide;kv:"p ER"} ${hide;kv:"pc red"}
- DEFAULT_TIDY_CONFIG=build/config/tests/clang_tidy/config.yaml
- PROJECT_TIDY_CONFIG=build/config/tests/clang_tidy/config.yaml
- TIDY=
- TIDY_ENABLED=
- when($TIDY == "yes") {
- TIDY_ENABLED=yes
- }
- CLANG_TIDY_BIN=${CLANG_TIDY_RESOURCE_GLOBAL}/bin/clang-tidy
- when ($TIDY_ENABLED == "yes") {
- when ($TIDY_EXPORT_FIXES=="") {
- TIDY_EXPORT_FIXES="no"
- }
- CLANG_TIDY_ARGS=${hide:CLANG_TIDY_FAKEID} $YMAKE_PYTHON ${input:"build/scripts/clang_tidy.py"} "--ymake-python" $YMAKE_PYTHON "--clang-tidy-bin" $CLANG_TIDY_BIN "--config-validation-script" ${input:"build/tests/config/clang_tidy/tidy_config_validation.py"} "--testing-src" ${input:SRC} "--source-root" $(SOURCE_ROOT) "--build-root" $(BUILD_ROOT) "--tidy-json" ${noauto;output;suf=${COMPILE_OUT_SUFFIX}${OBJ_CROSS_SUF}.tidyjson:SRC} "--export-fixes" $TIDY_EXPORT_FIXES
- CLANG_TIDY_ARGS+="--default-config-file" ${input:DEFAULT_TIDY_CONFIG}
- CLANG_TIDY_ARGS+="--project-config-file" ${input:PROJECT_TIDY_CONFIG}
- when ($TIDY_CHECKS) {
- CLANG_TIDY_ARGS+="--checks=$TIDY_CHECKS"
- }
- when ($TIDY_HEADER_FILTER) {
- CLANG_TIDY_ARGS+="--header-filter=$TIDY_HEADER_FILTER"
- }
- TIDY_VALUE=USE_CONDITIONAL_SRCS
- }
- otherwise {
- CLANG_TIDY_ARGS=
- TIDY_VALUE=
- }
- NEED_PROFILE_RUNTIME=no
- when ($BUILD_TYPE == "PROFILE" || $BUILD_TYPE == "COVERAGE" || ($CLANG_COVERAGE && $CLANG_COVERAGE != "no") || $GCOV_COVERAGE == "yes" || $PGO_ADD == "yes") {
- when($CLANG && ($TARGET_PLATFORM == "LINUX" || $TARGET_PLATFORM == "DARWIN")) {
- NEED_PROFILE_RUNTIME=yes
- }
- }
- otherwise {
- NEED_PROFILE_RUNTIME=no
- }
- when ($NEED_PROFILE_RUNTIME == "yes") {
- COPY_PROFILE_RUNTIME=\
- $YMAKE_PYTHON3 ${input:"build/scripts/copy_clang_profile_rt.py"} \
- --arch $TARGET_PLATFORM \
- --build-root $ARCADIA_BUILD_ROOT --
- COPY_PROFILE_RUNTIME+=\
- ${rootrel:PEERS} \
- $LDFLAGS
- }
- otherwise {
- COPY_PROFILE_RUNTIME=
- }
- when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") {
- PY_PROGRAM_LINK_EXE=$LINK_EXE && ${hide;kv:"pyndex $TARGET"}
- YNDEXER_ARGS=$YMAKE_PYTHON ${input:"build/scripts/yndexer.py"} $CPPYNDEXER_RESOURCE_GLOBAL/yndexer 1500 $(SOURCE_ROOT) $ARCADIA_BUILD_ROOT ${input:SRC}
- YNDEXER_OUTPUT=${noauto;output;suf=${OBJ_CROSS_SUF}${COMPILE_OUT_SUFFIX}.ydx.pb2:SRC}
- }
- otherwise {
- PY_PROGRAM_LINK_EXE=$LINK_EXE
- YNDEXER_ARGS=
- YNDEXER_OUTPUT=
- }
- when ($RETRY == "yes") {
- RETRY_ARGS=$YMAKE_PYTHON ${input:"build/scripts/retry_cc.py"}
- }
- otherwise {
- RETRY_ARGS=
- }
- COVERAGE_FLAGS=
- EXTRA_OUTPUT=
- when ($CLANG == "yes" || $GCC == "yes") {
- when ($BUILD_TYPE == "COVERAGE" || $GCOV_COVERAGE) {
- COVERAGE_FLAGS=-fprofile-arcs -ftest-coverage
- EXTRA_OUTPUT=${hide;noauto;output;suf=${COMPILE_OUT_SUFFIX}${OBJ_SUF}${_CROSS_SUFFIX}.gcno:SRC}
- }
- }
- when ($OS_CYGWIN == "yes") {
- CFLAGS+=-D_LDBL_EQ_DBL=1 -U__STRICT_ANSI__
- USE_ASMLIB=no
- FSTACK=
- }
- when ($OS_IOS == "yes" || $OS_ANDROID == "yes") {
- USE_ASMLIB=no
- }
- CFLAGS+=$COVERAGE_FLAGS
- LDFLAGS+=$COVERAGE_FLAGS
- CHECKFLAG=
- NO_MAPREDUCE=
- when ($NO_MAPREDUCE == "yes") {
- C_DEFINES+=-DNO_MAPREDUCE
- }
- when ($OS_ANDROID == "yes") {
- PIE=yes
- }
- when ($CLANG && $OS_DARWIN && $SANITIZER_TYPE && $SANITIZER_TYPE != "no") {
- SO_OUTPUTS=yes
- }
- when ($OS_NONE == "yes" || $MAPSMOBI_BUILD_TARGET == "yes" && $OS_LINUX != "yes") {
- USE_STL_SYSTEM=yes
- }
- when ($USE_STL_SYSTEM == "yes") {
- USE_INTERNAL_STL=no
- }
- when ($USE_INTERNAL_STL == "no") {
- USE_STL_SYSTEM=yes
- }
- otherwise {
- USE_INTERNAL_STL=yes
-
-
-
-
-
-
- when ($NORUNTIME != "yes") {
- SYSINCL+=build/sysincl/stl-to-libcxx.yml
- when ($MSVC == "yes" && $CLANG_CL != "yes") {
- SYSINCL+=build/sysincl/stl-to-libcxxmsvc.yml
- }
- when ($NVCC_STD_VER == "17" || $CUDA11 == "yes") {
- SYSINCL+=build/sysincl/stl-to-libcxxcuda11.yml
- }
- when ($MUSL == "yes") {
- SYSINCL+=build/sysincl/libc-musl-libcxx.yml
- }
- }
- }
- USE_ARCADIA_PYTHON=yes
- USE_ARCADIA_LIBM=no
- USE_EAT_MY_DATA=no
- HAVE_MKL=
- when ($HAVE_MKL == "") {
- when ($OS_LINUX && $ARCH_X86_64 && !$SANITIZER_TYPE) {
- HAVE_MKL=yes
- }
- otherwise {
- HAVE_MKL=no
- }
- }
- SFDL_TMP_OUT= ${output;suf=.tmp:SRC}
- ARCH_TOOL=${tool:"tools/archiver"}
- LUA_TOOL=${tool:"tools/lua"}
- ENUM_PARSER_TOOL=${tool:"tools/enum_parser/enum_parser"}
- FATAL_ERROR_MODULE=no
- FATAL_ERROR_MESSAGE=
- ANTLR_PYTHON=Python2
- macro NO_LTO() {
- DISABLE(USE_LTO)
- DISABLE(USE_THINLTO)
- }
- DEFAULT_ALLOCATOR=LF
- when ($OS_ANDROID == "yes" || $MSVC == "yes" || $ARCH_TYPE_32 == "yes" || $ARCH_AARCH64 == "yes") {
- DEFAULT_ALLOCATOR=J
- }
- when ($OS_CYGWIN == "yes" || $ARCH_PPC64LE == "yes") {
- DEFAULT_ALLOCATOR=SYSTEM
- }
- when ($OS_DARWIN == "yes") {
- DEFAULT_ALLOCATOR=SYSTEM
- }
- when ($OS_LINUX == "yes") {
- when ($GCC) {
-
- }
- elsewhen ($ARCH_X86_64) {
- DEFAULT_ALLOCATOR=TCMALLOC_TC
- }
- }
- when ($SANITIZER_TYPE) {
- when ($SANITIZER_TYPE != "no") {
- DEFAULT_ALLOCATOR=SYSTEM
- }
- }
- when ($ARCH_XTENSA == "yes") {
- DEFAULT_ALLOCATOR=FAKE
- }
- macro CHECK_CONFIG_H(Conf) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/check_config_h.py"} ${input;rootrel:Conf} ${output;nopath;noext:Conf.config.cpp} ${hide;kv:"p CH"} ${hide;kv:"pc yellow"}
- OUTPUT_INCLUDES=$Conf
- }
- REQUIRED_TRANSITIVE_PEERS=
- macro REQUIRES(DIRS[]) {
- SET_APPEND(REQUIRED_TRANSITIVE_PEERS $DIRS)
- }
- CHECK_DEPENDENT_DIRS_TYPES=
- CHECK_DEPENDENT_DIRS_RESTRICTIONS=
- macro CHECK_DEPENDENT_DIRS(TYPE, ALL?"UNUSED":"", PEERDIRS?"PEERDIRS":"ALL", RESTRICTIONS...) {
- SET_APPEND(CHECK_DEPENDENT_DIRS_RESTRICTIONS $PEERDIRS $RESTRICTIONS)
- SET_APPEND(CHECK_DEPENDENT_DIRS_TYPES $TYPE)
- }
- macro _RESOURCE_SEM(INPUTS[], KEYS[], OPTS[]) {
- SET(RESOURCE_OUTPUT ${hash:INPUTS}.cpp)
- .SEM=target_macroses-ITEM && target_macroses-macro resources && target_macroses-args ${output;global:RESOURCE_OUTPUT} INPUTS ${input:INPUTS} KEYS $KEYS OPTS $OPTS ${hide;tool:"tools/rescompiler/bin"}
- }
- macro RESOURCE(Args...) {
- PEERDIR(library/cpp/resource)
- }
- RUN_NO_SANITIZE=$YMAKE_PYTHON ${input:"build/scripts/run_tool.py"} --
- when ($IS_CROSS_SANITIZE) {
- RUN_NO_SANITIZE=
- }
- YIELD=$YMAKE_PYTHON ${input:"build/scripts/yield_line.py"} -- ${BINDIR}/__args
- XARGS=$YMAKE_PYTHON ${input:"build/scripts/xargs.py"} -- ${BINDIR}/__args
- WRITER_PY=$YMAKE_PYTHON ${input:"build/scripts/writer.py"} ${hide;input:"build/scripts/process_command_files.py"}
- FS_TOOLS=$YMAKE_PYTHON3 ${input:"build/scripts/fs_tools.py"} ${hide;input:"build/scripts/process_command_files.py"}
- FIX_MSVC_OUTPUT=${YMAKE_PYTHON} ${input:"build/scripts/fix_msvc_output.py"} ${hide;input:"build/scripts/process_command_files.py"} ${hide;input:"build/scripts/fix_py2_protobuf.py"}
- _PROCESS_WHOLE_ARCHIVE_SCRIPT=${hide;input:"build/scripts/process_command_files.py"} ${hide;input:"build/scripts/process_whole_archive_option.py"}
- COPY_CMD=$FS_TOOLS copy
- LINK_OR_COPY_CMD=$FS_TOOLS link_or_copy
- REMOVE_FILE=$FS_TOOLS remove
- MOVE_FILE=$FS_TOOLS rename
- MSVC_DYNAMICBASE=/DYNAMICBASE
- when ($ALLOCATOR == "LF") {
- MSVC_DYNAMICBASE=/DYNAMICBASE:NO
- }
- SANITIZER_CFLAGS=
- NEED_PLATFORM_PEERDIRS=yes
- PEERDIR_TEST_TOOL=yes
- module _BARE_UNIT {
- .EXTS=.*
- .CMD=TOUCH_UNIT
- .IGNORED=GO_PROTO_PLUGIN
- .NODE_TYPE=Bundle
- .PEERDIR_POLICY=as_include
- .RESTRICTED=GRPC USE_SKIFF INDUCED_DEPS FUZZ_DICTS FUZZ_OPTS PACK EXPLICIT_OUTPUTS DOCS_DIR DOCS_CONFIG DOCS_VARS YT_SPEC USE_CXX USE_UTIL WHOLE_ARCHIVE PRIMARY_OUTPUT SECONDARY_OUTPUT DEPENDENCY_MANAGEMENT EXCLUDE NO_DOCTESTS EMBED_JAVA_VCS_INFO RESOURCE_FILES PACK_GLOBALS_IN_LIBRARY _EXPOSE GLOBAL_DEPS LIST_PROTO
- .FINAL_TARGET=no
- PEERDIR_TAGS=__EMPTY__ RESOURCE_LIB
- PEERDIR+=$YMAKE_PYTHON3_PEERDIR
- when ($FATAL_ERROR_MESSAGE && $FATAL_ERROR_MODULE != "yes") {
- PEERDIR+=build/conf_fatal_error
- }
- DEFAULT(MODULE_VERSION)
- DEFAULT(MODULE_PREFIX)
- DEFAULT(MODULE_SUFFIX)
- }
- module GEN_LIBRARY: _BARE_UNIT {
- .PROXY=yes
- .RESTRICTED=SRCS SRC
- .SEM=IGNORED
-
- SET(MODULE_TAG RESOURCE_LIB)
- SET(MODULE_SUFFIX .pkg.fake)
- }
- module _BASE_UNIT: _BARE_UNIT {
- .GLOBAL=_FBS_NAMESPACE_MAP
- PEERDIR_TAGS=CPP_PROTO CPP_PROTO_FROM_SCHEMA CPP_FBS CPP_ROS H_IDL PY2 PY2_NATIVE YQL_UDF_STATIC __EMPTY__ RESOURCE_LIB DLL_LIB
- _CPP_PROTO_WRAPPER_BASE=$YMAKE_PYTHON3 ${input:"build/scripts/cpp_proto_wrapper.py"}
- _CPP_PROTO_CMDLINE_BASE=${cwd;rootdir;input:File} $PROTOC -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_INCLUDE_PATH --cpp_out=${CPP_PROTO_PLUGINS}$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $_PROTOC_FLAGS $PROTOC_STYLEGUIDE_OUT $PROTOC_PLUGIN_STYLEGUIDE ${hide:PROTO_FAKEID} ${input;rootrel:File}
- CPP_PROTO_CMDLINE=$_CPP_PROTO_WRAPPER_BASE --outputs $CPP_PROTO_OUTS -- $_CPP_PROTO_CMDLINE_BASE
- CPP_PROTO_OUTS+=${output;norel;nopath;noext:File.pb.cc} ${output;main;norel;nopath;noext:File.pb.h}
- CPP_PROTO_OUTS_SEM+=${output;main;hide;norel;nopath;noext:File.pb.h}
- CPP_EV_CMDLINE=$_CPP_PROTO_WRAPPER_BASE --outputs $CPP_EV_OUTS -- $_CPP_PROTO_CMDLINE_BASE
- CPP_EV_OUTS+=${output;norel:File.pb.cc} ${output;norel:File.pb.h}
- CPP_EV_OUTS_SEM+=${hide;output;norel:File.pb.h}
- when ($SWIG_LANG == "perl") {
- _SWIG_CMD=$_SWIG_PERL_CMD
- _SWIG_PEERDIR=contrib/tools/swig/Lib/perl5 build/platform/perl
- }
- elsewhen ($SWIG_LANG == "python") {
- _SWIG_CMD=$_SWIG_PYTHON_CMD
- _SWIG_PEERDIR=contrib/tools/swig/Lib/python
- }
- elsewhen ($SWIG_LANG == "jni_cpp") {
- _SWIG_CMD=$_SWIG_JNI_CPP_CMD
- _SWIG_PEERDIR=contrib/tools/swig/Lib/java $_SWIG_JNI_PEERDIR
- }
- elsewhen ($SWIG_LANG == "java") {
- _SWIG_CMD=$_SWIG_JNI_CMD
- _SWIG_PEERDIR=contrib/tools/swig/Lib/java $_SWIG_JNI_PEERDIR
- }
- when ($PY_PROTOS_FOR == "yes") {
- _EVLOG_CMDLINE=$_PY_EVLOG_CMDLINE
- _PROTO_CMDLINE=$_PY_PROTO_CMDLINE
- }
- otherwise {
- _EVLOG_CMDLINE=$_CPP_EVLOG_CMDLINE
- _FBS_CMDLINE=$_CPP_FLATC_CMDLINE
- when ($BUILD_PROTO_AS_EVLOG == "yes") {
- _PROTO_CMDLINE=$_CPP_PROTO_EVLOG_CMDLINE
- }
- otherwise {
- _PROTO_CMDLINE=$_CPP_PROTO_CMDLINE
- }
- when ($USE_VANILLA_PROTOC == "yes") {
- PROTOC=${tool:"contrib/tools/protoc_std"}
- PROTOC_STYLEGUIDE_OUT=
- PROTOC_PLUGIN_STYLEGUIDE=
- PROTOBUF_INCLUDE_PATH=${ARCADIA_ROOT}/contrib/libs/protobuf_std/src
- _PROTO_CMDLINE=$_CPP_VANILLA_PROTO_CMDLINE
- }
- when ($PROTOC_TRANSITIVE_HEADERS == "no") {
- CPP_PROTO_PLUGINS=proto_h=true:${CPP_PROTO_PLUGINS}
- CPP_PROTO_OUTS+=${output;main;norel;nopath;noext:File.deps.pb.h}
- CPP_PROTO_OUTS_SEM+=${output;main;hide;norel;nopath;noext:File.deps.pb.h}
- PROTOC_EXTRA_OUTS_SEM=&& protoc_extra_outs .deps.pb.h
- }
- }
- SANITIZER_DEFINED=no
- when ($SANITIZER_TYPE && $SANITIZER_TYPE != "no") {
- CFLAGS+=-fsanitize=$SANITIZER_TYPE -D${SANITIZER_TYPE}_sanitizer_enabled $SANITIZER_CFLAGS -fno-omit-frame-pointer
- LDFLAGS+=-fsanitize=$SANITIZER_TYPE
- SANITIZER_DEFINED=yes
- when ($CLANG) {
- CFLAGS+=-fsanitize-blacklist=${input:"build/sanitize-blacklist.txt"} -fno-sanitize-link-runtime
- LDFLAGS+=-fsanitize-blacklist=${input:"build/sanitize-blacklist.txt"} -fno-sanitize-link-runtime
- }
- }
- when ($SANITIZER_TYPE && $SANITIZER_TYPE == "memory") {
- CFLAGS+=-fno-sanitize-memory-use-after-dtor -Wno-unused-command-line-argument
- }
- when ($SANITIZE_COVERAGE && $SANITIZE_COVERAGE != "no") {
- CFLAGS+=-fsanitize-coverage=$SANITIZE_COVERAGE
- LDFLAGS+=-fsanitize-coverage=$SANITIZE_COVERAGE
- }
- POPULATE_CPP_COVERAGE_FLAGS()
- when ($NLG_COVERAGE && $NLG_COVERAGE != "no") {
- CFLAGS+=-DNLG_COVERAGE
- }
- when ($GCC) {
- select ($SANITIZER_TYPE) {
- "address" ? {
- LDFLAGS+=-static-libasan
- }
- "undefined" ? {
- LDFLAGS+=-static-libubsan
- }
- "thread" ? {
- PIE=yes
- LDFLAGS+=-static-libtsan
- }
- }
- }
- when ($HARDENING == "yes") {
- when ($CLANG) {
- CFLAGS+=-fstack-protector-all -D_hardening_enabled_
- LDFLAGS+=-z relro -z now -z noexecstack
- PIE=yes
- }
- }
- when ($USE_LTO == "yes") {
- when ($GCC) {
- CFLAGS+=-flto -fno-fat-lto-objects
- LDFLAGS+=-flto
- NO_LTO_CFLAGS=-fno-lto
- }
- when ($CLANG) {
- CFLAGS+=-flto
- LDFLAGS+=-flto
- NO_LTO_CFLAGS=-fno-lto
- }
- }
- when ($USE_THINLTO == "yes") {
- when ($GCC) {
- CFLAGS+=-flto=thin
- LDFLAGS+=-flto=thin
- NO_LTO_CFLAGS=-fno-lto
- }
- when ($CLANG) {
- CFLAGS+=-flto=thin
- LDFLAGS+=-flto=thin
- NO_LTO_CFLAGS=-fno-lto
- }
- }
- when ($CLANG) {
- when ($PGO_ADD == "yes") {
- CFLAGS+=-fprofile-instr-generate
- LDFLAGS+=-fprofile-instr-generate
- }
- when ($PGO_PATH) {
- CFLAGS+=-fprofile-instr-use=$PGO_PATH -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date
- LDFLAGS+=-fprofile-instr-use=$PGO_PATH
- }
- }
- when ($COMPILER_PLATFORM && $NEED_PLATFORM_PEERDIRS == "yes") {
- PEERDIR+=$COMPILER_PLATFORM
- }
- when ($OS_LINUX && $NEED_PLATFORM_PEERDIRS == "yes") {
- PEERDIR+=contrib/libs/linux-headers
- }
- when ($NORUNTIME != "yes") {
- PEERDIR+=contrib/libs/cxxsupp
- when ($MAPSMOBI_BUILD_TARGET == "yes") {
- PEERDIR+=build/platform/mapkit
- }
- }
- when ($NOUTIL != "yes") {
- PEERDIR+=util
- }
- when ($MUSL == "yes") {
- CFLAGS += -D_musl_
- LINK_DYN_LIB_FLAGS += --musl
- LINK_SCRIPT_EXE_FLAGS += --musl
- PEERDIR+=contrib/libs/musl/include
- }
- when ($OS_EMSCRIPTEN == "yes") {
- when ($NOLIBC != "yes") {
- PEERDIR+=contrib/restricted/emscripten/include
- }
- }
-
-
-
-
-
- when ($USE_INTERNAL_STL == "yes" && $MSVC != "yes") {
- CXXFLAGS += -nostdinc++
- }
- otherwise {
- CFLAGS += -DUSE_STL_SYSTEM
- }
- when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") {
- PEERDIR += build/external_resources/codenavigation
- }
- when ($CYTHON_COVERAGE && $CYTHON_COVERAGE == "yes") {
- CFLAGS+=-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1
- }
- DEFAULT(USE_SSE4 yes)
- when ($NOSSE != "yes") {
- CFLAGS+=$SSE_CFLAGS
- C_DEFINES+=$SSE_DEFINES
- when ($USE_SSE4 == "yes") {
- CFLAGS+=$SSE4_CFLAGS
- C_DEFINES+=$SSE4_DEFINES
- }
- }
- elsewhen ($MSVC != "yes") {
- CFLAGS += -mno-sse
- }
- POPULATE_CPP_COVERAGE_FLAGS()
- _REGISTER_NO_CHECK_IMPORTS()
- DEFAULT(PACKAGE_PREFIX_ARGS)
- DEFAULT(SWIG_LANG python)
- DEFAULT(GP_FLAGS -CtTLANSI-C -Dk* -c)
- when ($NEED_BINUTILS_PEERDIR && $BINUTILS_USED && $NEED_PLATFORM_PEERDIRS == "yes") {
- PEERDIR+=build/platform/binutils
- }
- when ($TIDY_ENABLED == "yes") {
- PEERDIR+=build/platform/clang/clang-tidy
- }
- ENABLE(USE_YASM_ASSEMBLER)
- ENABLE(_BISON_FLEX_SET_DEFAULTS)
- }
- _LINKER_ID=
- when ($_LINKER_ID != "" && $_DEFAULT_LINKER_ID != "" && $CLANG == "yes" && $NEED_PLATFORM_PEERDIRS == "yes") {
- when ($_LINKER_ID in [ "gold", "lld", "mold" ]) {
- PEERDIR+=build/platform/${_LINKER_ID}
- }
- }
- macro _USE_LINKER_IMPL(LINKER_ID...) {
- SET(_LINKER_ID $LINKER_ID)
- }
- macro _USE_LINKER() {
- _USE_LINKER_IMPL($_DEFAULT_LINKER_ID)
- }
- macro USE_LINKER_GOLD() {
- _USE_LINKER_IMPL(gold)
- }
- COMMON_LINK_SETTINGS=
- LINK_ADDITIONAL_SECTIONS=
- LINK_ADDITIONAL_SECTIONS_COMMAND=
- when ($COMMON_LINK_SETTINGS == "yes") {
- when ($_LINKER_ID == "lld" && ($OS_LINUX == "yes" || $OS_ANDROID == "yes")) {
- LDFLAGS += -Wl,--gdb-index
- }
- when ($EMBED_LINKER_CREF == "yes") {
- LDFLAGS+=-Wl,--cref ${stdout;tmp;pre=$MODULE_PREFIX;suf=.ldcref:REALPRJNAME} -Wl,--no-demangle
- LINK_ADDITIONAL_SECTIONS+=--add-section=.ya.linker_cref=${tmp;pre=$MODULE_PREFIX;suf=.ldcref:REALPRJNAME}
- }
- elsewhen ($DUMP_LINKER_CREF == "yes") {
- LDFLAGS+=-Wl,--cref ${stdout;output;pre=$MODULE_PREFIX;suf=.ldcref:REALPRJNAME} -Wl,--no-demangle
- }
- when ($EMBED_LINKER_MAP == "yes") {
- LDFLAGS+=-Wl,-Map=${tmp;pre=$MODULE_PREFIX;suf=.map.$_LINKER_ID:REALPRJNAME}
- LINK_ADDITIONAL_SECTIONS+=--add-section=.ya.linker_map.${_LINKER_ID}=${tmp;pre=$MODULE_PREFIX;suf=.map.$_LINKER_ID:REALPRJNAME}
- }
- elsewhen ($DUMP_LINKER_MAP == "yes") {
- LDFLAGS+=-Wl,-Map=${rootrel;output;pre=$MODULE_PREFIX;suf=.map.$_LINKER_ID:REALPRJNAME}
- }
- when ($USE_MKL == "yes") {
- NOPLATFORM=yes
- }
- when ($AUTOCHECK == "yes" && $OS_LINUX == "yes") {
- PEERDIR+=contrib/libs/libeatmydata
-
-
- MODULE_LICENSES_RESTRICTION_EXCEPTIONS+=contrib/libs/libeatmydata
- }
- when ($OS_EMSCRIPTEN == "yes") {
-
- }
- otherwise {
- when ($USE_ARCADIA_LIBM == "yes") {
- PEERDIR+=contrib/libs/libm
- }
- when ($USE_ARCADIA_LIBM == "no") {
- C_SYSTEM_LIBRARIES+=-lm
- }
- }
- when (($MUSL != "yes" && $WITH_VALGRIND == "yes") || $SANITIZER_DEFINED == "yes") {
- when ($ALLOCATOR in [ "TCMALLOC", "TCMALLOC_SMALL_BUT_SLOW", "TCMALLOC_NUMA_256K", "TCMALLOC_NUMA_LARGE_PAGES", "TCMALLOC_256K", "TCMALLOC_TC", "GOOGLE", "J", "LF", "LF_YT", "LF_DBG", "B", "BM", "C", "LOCKLESS", "YT", "YT_TCMALLOC", "YT_TCMALLOC_256K", "MIM", "MIM_SDC", "HU", "PROFILED_HU", "THREAD_PROFILED_HU" ]) {
- PEERDIR+=library/cpp/malloc/system
- }
- }
- otherwise {
- select ($ALLOCATOR) {
- "MIM" ? {
- PEERDIR+=library/cpp/malloc/mimalloc
- }
- "MIM_SDC" ? {
- PEERDIR+=library/cpp/malloc/mimalloc_sdc
- }
- "HU" ? {
- PEERDIR+=library/cpp/malloc/hu
- }
- "PROFILED_HU" ? {
- PEERDIR+=library/cpp/malloc/profiled_hu
- }
- "THREAD_PROFILED_HU" ? {
- PEERDIR+=library/cpp/malloc/thread_profiled_hu
- }
- "TCMALLOC_256K" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/tcmalloc
- }
- "TCMALLOC_SMALL_BUT_SLOW" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/tcmalloc/small_but_slow
- }
- "TCMALLOC_NUMA_256K" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/tcmalloc/numa_256k
- }
- "TCMALLOC_NUMA_LARGE_PAGES" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/tcmalloc/numa_large_pages
- }
- "TCMALLOC" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/tcmalloc/default
- }
- "TCMALLOC_TC" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/tcmalloc/no_percpu_cache
- }
- "GOOGLE" ? {
- PEERDIR+=library/cpp/malloc/galloc
- }
- "J" ? {
- when ($WIN32 == "yes") {
- PEERDIR+=library/cpp/malloc/system
- }
- otherwise {
- PEERDIR+=library/cpp/malloc/jemalloc
- }
- }
- "LF" ? {
- PEERDIR+=library/cpp/lfalloc
- }
- "LF_YT" ? {
- PEERDIR+=library/cpp/lfalloc/yt
- }
- "LF_DBG" ? {
- PEERDIR+=library/cpp/lfalloc/dbg
- }
- "B" ? {
- PEERDIR+=library/cpp/balloc
- }
- "BM" ? {
- PEERDIR+=library/cpp/balloc_market
- }
- "C" ? {
- PEERDIR+=library/cpp/malloc/calloc
- }
- "LOCKLESS" ? {
- PEERDIR+=library/cpp/malloc/lockless
- }
- "YT" ? {
- PEERDIR+=library/cpp/ytalloc/impl
- }
- "YT_TCMALLOC" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/yt_tcmalloc/default
- }
- "YT_TCMALLOC_256K" ? {
- PEERDIR+=library/cpp/malloc/tcmalloc
- PEERDIR+=contrib/libs/yt_tcmalloc
- }
- }
- }
- when ($ALLOCATOR == "SYSTEM") {
- PEERDIR+=library/cpp/malloc/system
- }
- when ($WERROR != "no") {
- when ($WERROR_MODE == "all" || ($WERROR_MODE == "compiler_specific" && $WERROR == "yes")) {
- C_WARNING_OPTS += $WERROR_FLAG
- }
- }
- when ($ICC == "yes") {
- PEERDIR+=contrib/libs/intel/core
- }
- when ($WITH_VALGRIND == "yes") {
- PEERDIR+=contrib/libs/valgrind
-
- CFLAGS+=-fdebug-default-version=4
- }
- }
- when ($EMBED_LINKER_MAP == "yes" || $EMBED_LINKER_CREF == "yes") {
- LINK_ADDITIONAL_SECTIONS_COMMAND+= \
- $OBJCOPY_TOOL $LINK_ADDITIONAL_SECTIONS $TARGET
- }
- _SO_EXT_FILTER=${ext=.so:PEERS} ${hide;late_out;ext=.so;pre=$BINDIR/;nopath;tags_cut:PEERS}
- when ($OS_WINDOWS == "yes") {
- _SO_EXT_FILTER=${ext=.dll:PEERS} ${hide;late_out;ext=.dll;pre=$BINDIR/;nopath;tags_cut:PEERS}
- }
- elsewhen ($OS_DARWIN == "yes" || $OS_IOS == "yes") {
- _SO_EXT_FILTER=${ext=.dylib:PEERS} ${hide;late_out;ext=.dylib;pre=$BINDIR/;nopath;tags_cut:PEERS}
- }
- LINK_OR_COPY_SO_CMD=
- RPATH_GLOBAL=
- when ($SO_OUTPUTS == "yes") {
- LINK_OR_COPY_SO_CMD=$FS_TOOLS link_or_copy_to_dir --no-check $_SO_EXT_FILTER ${BINDIR}
- LDFLAGS+=$RPATH_GLOBAL
- }
- macro WITH_DYNAMIC_LIBS() {
- ENABLE(SO_OUTPUTS)
- }
- macro REAL_LINK_EXE_IMPL(WHOLE_ARCHIVE_PEERS...) {
- .CMD=$REAL_LINK_EXE_CMDLINE && $LINK_OR_COPY_SO_CMD
- }
- macro REAL_LINK_EXEC_DYN_LIB_IMPL(WHOLE_ARCHIVE_PEERS...) {
- .CMD=$REAL_LINK_EXEC_DYN_LIB_CMDLINE
- }
- macro REAL_LINK_DYN_LIB_IMPL(WHOLE_ARCHIVE_PEERS...) {
- .CMD=$REAL_LINK_DYN_LIB_CMDLINE && $LINK_OR_COPY_SO_CMD
- }
- macro LINK_EXE_IMPL(WHOLE_ARCHIVE_PEERS...) {
- .CMD=$LINK_EXE_CMDLINE && $LINK_OR_COPY_SO_CMD
- }
- macro LINK_EXEC_DYN_LIB_IMPL(WHOLE_ARCHIVE_PEERS...) {
- .CMD=$LINK_EXEC_DYN_LIB_CMDLINE
- }
- module _LINK_UNIT: _BASE_UNIT {
- .EXTS=.o .obj .supp .sbom .tidyjson .ld .a .lib
- .CMD=$LINK_EXE
- .STRUCT_CMD=yes
- .ALLOWED=EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES
- .NODE_TYPE=Program
- .PEERDIR_POLICY=as_build_from
- .FINAL_TARGET=yes
- .DEFAULT_NAME_GENERATOR=DirName
- .ARGS_PARSER=Base
- DEFAULT(ALLOCATOR $DEFAULT_ALLOCATOR)
- _USE_LINKER()
-
- when ($DARWIN == "yes" && $NOPLATFORM != "yes") {
- PEERDIR += contrib/libs/cxxsupp
- }
- when ($NEED_PROFILE_RUNTIME == "yes") {
- LDFLAGS+=-resource-dir=contrib/libs/clang-rt
- PEERDIR+=contrib/libs/clang${CLANG_VER}-rt/lib/profile
- }
- when ($USE_LIBCXXRT == "yes") {
- PEERDIR += contrib/libs/cxxsupp/libcxxrt
- }
- when ($USE_DYNAMIC_CUDA == "yes") {
- LINK_DYN_LIB_FLAGS += --dynamic-cuda
- LINK_SCRIPT_EXE_FLAGS += --dynamic-cuda
- }
- when ($USE_DYNAMIC_CUDA != "yes") {
- when ($CUDA_ARCHITECTURES) {
- LINK_DYN_LIB_FLAGS+=--cuda-architectures $CUDA_ARCHITECTURES
- LINK_SCRIPT_EXE_FLAGS+=--cuda-architectures $CUDA_ARCHITECTURES
- LINK_DYN_LIB_FLAGS+=--nvprune-exe $CUDA_ROOT/bin/nvprune
- LINK_SCRIPT_EXE_FLAGS+=--nvprune-exe $CUDA_ROOT/bin/nvprune
- }
- LINK_DYN_LIB_FLAGS+=--objcopy-exe $OBJCOPY_TOOL
- LINK_SCRIPT_EXE_FLAGS+=--objcopy-exe $OBJCOPY_TOOL
- }
- when ($OPENSOURCE == "yes" && $AUTOCHECK == "yes") {
-
- MODULE_LICENSES_RESTRICTION_TYPES = ALLOW_ONLY
- MODULE_LICENSES_RESTRICTIONS = SERVICE REQUIRE_CITATION REQUIRE_MODIFICATIONS_DISCLOSURE
- }
- when ($OS_IOS == "yes" || $OS_ANDROID == "yes" || $MAPSMOBI_BUILD_TARGET == "yes") {
- MODULE_LICENSES_RESTRICTION_TYPES = ALLOW_ONLY
- MODULE_LICENSES_RESTRICTIONS = SERVICE REQUIRE_CITATION
- }
- ENABLE(COMMON_LINK_SETTINGS)
- CHECK_PROVIDES()
- ADD_CLANG_TIDY()
- when ($TIDY_ENABLED == "yes") {
- MODULE_PREFIX=
- MODULE_SUFFIX=.tidyjson
- _MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_project_map.json
- _MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_default_map.json
- }
- }
- MODULE_TYPE=UNKNOWN
- macro ADD_CLANG_TIDY() {
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME$MODULE_SUFFIX clang_tidy)
- }
- module _BASE_PROGRAM: _LINK_UNIT {
- .SYMLINK_POLICY=EXE
- .ALLOWED=INDUCED_DEPS WHOLE_ARCHIVE
- .GLOBAL=LDFLAGS _WHOLE_ARCHIVE_LIBS_VALUE RPATH OBJADDE_LIB
- SET(MODULE_TYPE PROGRAM)
- SET(MODULE_LANG CPP)
- FORCE_COVERAGE_ENABLED=yes
- when ($OS_IOS == "yes") {
- EXTS+=.ios.interface
- }
- when ($WIN32 == "yes" || $OS_CYGWIN == "yes") {
- MODULE_SUFFIX=.exe
- }
- when ($MSVC != "yes" && $NOPLATFORM != "yes" && $WITH_VALGRIND != "yes" && $USE_ASMLIB != "no" && $MIC_ARCH != "yes" && $PIC != "yes" && $PIE != "yes") {
- when ($OS_LINUX == "yes" && $ARCH_X86_64 == "yes" && $MUSL != "yes" && $SANITIZER_DEFINED != "yes" && $USE_THINLTO != "yes") {
- PEERDIR+=contrib/libs/glibcasm
- }
- otherwise {
- PEERDIR+=contrib/libs/asmlib
- }
- }
- when ($MUSL == "yes") {
- when ($MUSL_LITE == "yes") {
- PEERDIR += contrib/libs/musl
- }
- otherwise {
- PEERDIR += contrib/libs/musl/full
- }
- }
- DEFAULT(CPU_CHECK yes)
- when ($USE_SSE4 != "yes" || $NOUTIL == "yes" || $ALLOCATOR == "FAKE") {
- CPU_CHECK = no
- }
- when ($CPU_CHECK == "yes") {
- PEERDIR += library/cpp/cpuid_check
- }
- when ($USE_ARC_PROFILE == "yes" && $NOUTIL != "yes") {
- PEERDIR += library/cpp/execprofile/autostart
- }
- when ($SANITIZER_TYPE && $SANITIZER_TYPE != "no") {
- PEERDIR += contrib/libs/cxxsupp/libsan
- when ($CLANG) {
- select ($TARGET_PLATFORM) {
- "LINUX" ? {
- PEERDIR += library/cpp/sanitizer/${SANITIZER_TYPE}/static
- }
- "DARWIN" ? {
-
-
- when ($SANITIZER_TYPE != "memory") {
- PEERDIR += library/cpp/sanitizer/${SANITIZER_TYPE}/dynamic
- }
- }
- default ? {
- FATAL_ERROR_MESSAGE+=Unsupported platform for sanitizer
- }
- }
- }
- }
- when ($CLANG_COVERAGE && $CLANG_COVERAGE != "no") {
- PEERDIR+=library/cpp/testing/dump_clang_coverage
- }
- when ($IDE_MSVS == "yes") {
- PEERDIR+=build/scripts/c_templates
- }
- when ($_CUSTOM_LINK_STEP_SCRIPT) {
- LINK_SCRIPT_EXE_FLAGS+=--python=$YMAKE_PYTHON --custom-step=${input:_CUSTOM_LINK_STEP_SCRIPT}
- }
- }
- VCS_INFO_SEM=target_macroses-ITEM && target_macroses-macro vcs_info && target_macroses-args ${hide;input:"build/scripts/vcs_info.py"} ${hide;input:"build/scripts/c_templates/svn_interface.c"} ${hide;input:"build/scripts/c_templates/svnversion.h"}
- CPP_PROGRAM_SEM=add_executable $MODDIR $CMAKE_TARGET_NAME ${hide:TARGET} ${hide:AUTO_INPUT} $CMAKE_TARGET_ARTEFACT_RENAME_RULES \
- && ${VCS_INFO_SEM} \
- && target_options-privates-ITEM && target_options-privates-option target_link_options && target_options-privates-args $LDFLAGS_GLOBAL_RAW $LDFLAGS $OBJADDE_LIB $OBJADDE_LIB_GLOBAL $OBJADDE \
- && target_options-privates-ITEM && target_options-privates-option target_include_directories && target_options-privates-args $_C__INCLUDE_OWNED \
- && target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \
- && target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW \
- && target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${MODULE_EXPLICIT_HEADERS}
- module PROGRAM: _BASE_PROGRAM {
- .SEM=CPP_PROGRAM_SEM
- .ALIASES=EXTRALIBS=PY_EXTRALIBS
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME coverage.extractor)
- _DONT_REQUIRE_LICENSE()
- WITHOUT_VERSION()
- }
- macro EXPORTS_SCRIPT(Arg) {
- SET(EXPORTS_FILE $Arg)
- }
- macro NO_EXPORT_DYNAMIC_SYMBOLS() {
- ENABLE(NO_EXPORT_DYNAMIC_SYMBOLS)
- }
- macro EXPORT_ALL_DYNAMIC_SYMBOLS() {
-
- ENABLE(EXPORT_ALL_DYNAMIC_SYMBOLS)
- }
- macro USE_DYNAMIC_CUDA() {
- LDFLAGS(-Wl,-rpath,$ORIGIN)
- ENABLE(USE_DYNAMIC_CUDA)
- }
- macro CUSTOM_LINK_STEP_SCRIPT(Name) {
- SET(_CUSTOM_LINK_STEP_SCRIPT build/scripts/$Name)
- }
- module _BASE_UNITTEST: _BASE_PROGRAM {
- .FINAL_TARGET=no
- .NODE_TYPE=Program
- .ALLOWED=YT_SPEC
- .DEFAULT_NAME_GENERATOR=FullPath
- when ($UT_SKIP_EXCEPTIONS == "yes") {
- C_DEFINES+=-DUT_SKIP_EXCEPTIONS
- }
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json)
-
-
- _DONT_REQUIRE_LICENSE()
- WITHOUT_VERSION()
- }
- _TEST_SPLIT_FACTOR_SEM=1
- _TEST_TIMEOUT_SEM=
- _TEST_PARTITION_SEM=
- UNITTEST_SEM=$CPP_PROGRAM_SEM \
- && target_commands-ITEM && target_commands-macro set_property && target_commands-args TARGET $REALPRJNAME PROPERTY SPLIT_FACTOR $_TEST_SPLIT_FACTOR_SEM \
- $_TEST_PARTITION_SEM \
- && target_commands-ITEM && target_commands-macro add_yunittest && target_commands-args NAME $REALPRJNAME TEST_TARGET $REALPRJNAME TEST_ARG --print-before-suite --print-before-test --fork-tests --print-times --show-fails \
- && target_commands-ITEM && target_commands-macro set_yunittest_property && target_commands-args TEST $REALPRJNAME PROPERTY LABELS $TEST_SIZE_NAME $FILTER_ONLY_TEST_TAGS \
- && add_ytest_requirements $REALPRJNAME $DEFAULT_REQUIREMENTS $TEST_REQUIREMENTS_VALUE \
- && target_commands-ITEM && target_commands-macro set_yunittest_property && target_commands-args TEST $REALPRJNAME PROPERTY ENVIRONMENT && target_commands-args_escaped $TEST_ENV_VALUE \
- $_TEST_TIMEOUT_SEM
- module UNITTEST: _BASE_UNITTEST {
- .SEM=UNITTEST_SEM
- .ARGS_PARSER=Base
- PEERDIR(library/cpp/testing/unittest_main)
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME unittest.py)
- when ($TEST_FORK_MODE != "none") {
- when ($TEST_SPLIT_FACTOR) {
- _TEST_SPLIT_FACTOR_SEM=$TEST_SPLIT_FACTOR
- }
- otherwise {
- _TEST_SPLIT_FACTOR_SEM=10
- }
- when ($TEST_PARTITION == "MODULO") {
- _TEST_PARTITION_SEM=&& target_commands-ITEM && target_commands-macro set_property && target_commands-args TARGET $REALPRJNAME PROPERTY SPLIT_TYPE $TEST_PARTITION
- }
- }
- when ($TEST_TIMEOUT) {
- _TEST_TIMEOUT_SEM=&& target_commands-ITEM && target_commands-macro set_yunittest_property && target_commands-args TEST $REALPRJNAME PROPERTY TIMEOUT $TEST_TIMEOUT
- }
- }
- module YT_UNITTEST: _BASE_UNITTEST {
- .SEM=UNITTEST_SEM
- PEERDIR(library/cpp/testing/unittest_main yt/cpp/mapreduce/tests/yt_initialize_hook)
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME unittest.py)
- }
- module UNITTEST_WITH_CUSTOM_ENTRY_POINT: _BASE_UNITTEST {
- .SEM=UNITTEST_SEM
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME unittest.py)
- }
- GTEST_SEM=$CPP_PROGRAM_SEM \
- && target_commands-ITEM && target_commands-macro add_test && target_commands-args NAME $REALPRJNAME COMMAND $REALPRJNAME \
- && target_commands-ITEM && target_commands-macro set_property && target_commands-args TEST $REALPRJNAME PROPERTY LABELS $TEST_SIZE_NAME $FILTER_ONLY_TEST_TAGS \
- && add_test_requirements $REALPRJNAME $DEFAULT_REQUIREMENTS $TEST_REQUIREMENTS_VALUE \
- && target_commands-ITEM && target_commands-macro set_property && target_commands-args TEST $REALPRJNAME PROPERTY ENVIRONMENT && target_commands-args_escaped $TEST_ENV_VALUE \
- $_TEST_TIMEOUT_SEM
- module GTEST: _BASE_UNITTEST {
- .SEM=GTEST_SEM
- .DEFAULT_NAME_GENERATOR=FullPath
- .ARGS_PARSER=Base
- PEERDIR(library/cpp/testing/gtest library/cpp/testing/gtest_main)
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME gunittest)
- when ($TEST_TIMEOUT) {
- _TEST_TIMEOUT_SEM=&& target_commands-ITEM && target_commands-macro set_property && target_commands-args TEST $REALPRJNAME PROPERTY TIMEOUT $TEST_TIMEOUT
- }
- }
- USE_AFL=no
- module FUZZ: _BASE_PROGRAM {
- .NODE_TYPE=Program
- .FINAL_TARGET=no
- .ALLOWED=FUZZ_DICTS FUZZ_OPTS
- SET(LIBFUZZER_PATH contrib/libs/libfuzzer)
- when ($USE_AFL == "no") {
- PEERDIR+=$LIBFUZZER_PATH
- }
- when ($USE_AFL == "yes") {
- PEERDIR+=$LIBFUZZER_PATH/afl
- }
- when (!$SANITIZER_TYPE || $SANITIZER_TYPE == "no") {
- PEERDIR+=library/cpp/testing/nofuzz
- }
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME fuzz.test)
- }
- PACK_IOS_CMD=
- when ($OS_IOS && $BUILD_IOS_APP) {
- PACK_IOS_CMD=$YMAKE_PYTHON ${input:"build/scripts/pack_ios.py"} --binary $TARGET --target $TARGET --temp-dir $BINDIR $PEERS
- }
- LINK_BOOSTTEST_CMD=
- BOOST_TEST_TYPE_STRING=
- when ($BOOSTTEST_IS_FAT_OBJECT) {
- LINK_BOOSTTEST_CMD=$LINK_RECURSIVE_LIBRARY
- BOOST_TEST_TYPE_STRING=no.test
- }
- otherwise {
- LINK_BOOSTTEST_CMD=$LINK_EXE
- BOOST_TEST_TYPE_STRING=boost.test
- }
- module BOOSTTEST: _BASE_PROGRAM {
- .NODE_TYPE=Program
- .FINAL_TARGET=no
- .CMD=$LINK_BOOSTTEST_CMD
- PEERDIR(library/cpp/testing/boost_test)
- when ($BOOSTTEST_IS_FAT_OBJECT) {
- MODULE_SUFFIX=.a
- }
- elsewhen ($OS_IOS && $BUILD_IOS_APP) {
- PEERDIR+=devtools/boosttest_ios_wrapper/library
- MODULE_SUFFIX=.ios.tar
- }
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME $BOOST_TEST_TYPE_STRING)
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json)
- _DONT_REQUIRE_LICENSE()
- WITHOUT_VERSION()
- }
- module BOOSTTEST_WITH_MAIN: BOOSTTEST {
- PEERDIR(library/cpp/testing/boost_test_main)
- }
- FUZZ_DICTS_VALUE=
- macro FUZZ_DICTS(Data...) {
- SET_APPEND(FUZZ_DICTS_VALUE $Data)
- }
- FUZZ_OPTS_VALUE=
- macro FUZZ_OPTS(Data...) {
- SET_APPEND(FUZZ_OPTS_VALUE $Data)
- }
- TEST_YT_SPEC_VALUE=
- macro YT_SPEC(Data...) {
- SET_APPEND(TEST_YT_SPEC_VALUE $Data)
- }
- TEST_SRCS_VALUE=
- macro TEST_SRCS(Tests...) {
- SET_APPEND(TEST_SRCS_VALUE $Tests)
- }
- macro DISABLE_DATA_VALIDATION() {
- DISABLE(VALIDATE_DATA)
- }
- TEST_DATA_VALUE=
- macro DATA(Data...) {
- SET_APPEND(TEST_DATA_VALUE $Data)
- ADD_CHECK(check.data $Data)
- }
- DOCKER_IMAGES_VALUE=
- macro DOCKER_IMAGE(Images...) {
- SET_APPEND(DOCKER_IMAGES_VALUE $Images)
- }
- macro DATA_FILES(Paths...) {
- SET_APPEND(TEST_DATA_VALUE ${pre=arcadia/:Paths})
- _DATA_FILES($Paths)
- }
- ADD_SRCDIR_TO_TEST_DATA=yes
- macro EXPLICIT_DATA() {
- SET(ADD_SRCDIR_TO_TEST_DATA no)
- }
- TEST_TAGS_VALUE=
- macro TAG(Tags...) {
- SET_APPEND(TEST_TAGS_VALUE $Tags)
- }
- TEST_REQUIREMENTS_VALUE=
- macro REQUIREMENTS(Tags...) {
- SET_APPEND(TEST_REQUIREMENTS_VALUE $Tags)
- }
- TEST_ENV_VALUE=
- macro ENV(Data...) {
- SET_APPEND(TEST_ENV_VALUE ${quo:Data})
- }
- macro CONFTEST_LOAD_POLICY_LOCAL() {
- SET_APPEND(TEST_ENV_VALUE "CONFTEST_LOAD_POLICY=LOCAL")
- }
- TEST_RECIPES_VALUE=
- macro USE_RECIPE(Data...) {
- SET_APPEND(TEST_RECIPES_VALUE $Data)
- SET_APPEND(TEST_RECIPES_VALUE "USE_RECIPE_DELIM")
- }
- TEST_PYTHON_PATH_VALUE=
- macro PYTHON_PATH(Path) {
- SET(TEST_PYTHON_PATH_VALUE $Path)
- }
- SKIP_TEST_VALUE=
- macro SKIP_TEST(Reason...) {
- SET(SKIP_TEST_VALUE $Reason)
- }
- LINT_LEVEL_VALUE=extended
- _NO_LINT_VALUE=
- macro NO_LINT(ktlint?"ktlint":"none") {
- SET(_NO_LINT_VALUE ${ktlint})
- }
- macro LINT(level) {
- SET(LINT_LEVEL_VALUE $level)
- }
- module CPP_STYLE_TEST_16: PY3TEST_BIN {
- DEPENDS(contrib/libs/clang16/tools/clang-format)
- PEERDIR+=library/python/cpp_test
- }
- macro STYLE(Globs...) {
- _GLOB(STYLE_SRCS_GLOB ${pre=${ARCADIA_ROOT}:Globs})
- _STYLE(${STYLE_SRCS_GLOB})
- }
- module EXECTEST: _BARE_UNIT {
- .NODE_TYPE=Program
- .FINAL_TARGET=no
- .ALLOWED=YT_SPEC
- .RESTRICTED=FORK_TEST_FILES
- .DEFAULT_NAME_GENERATOR=FullPath
- .ARGS_PARSER=Base
- SET(MODULE_SUFFIX .pkg.fake)
- SETUP_EXECTEST()
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json)
- }
- module Y_BENCHMARK: PROGRAM {
- .SEM=CPP_PROGRAM_SEM
- PEERDIR(library/cpp/testing/benchmark/main)
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME y_benchmark)
- }
- GBENCH_SEM=$CPP_PROGRAM_SEM \
- && target_commands-ITEM && target_commands-macro add_test && target_commands-args NAME $REALPRJNAME COMMAND $REALPRJNAME \
- && target_commands-ITEM && target_commands-macro set_property && target_commands-args TEST $REALPRJNAME PROPERTY LABELS SMALL $FILTER_ONLY_TEST_TAGS \
- && add_test_requirements $REALPRJNAME $DEFAULT_REQUIREMENTS $TEST_REQUIREMENTS_VALUE \
- $_TEST_TIMEOUT_SEM
- module G_BENCHMARK: _BASE_PROGRAM {
- .SEM=GBENCH_SEM
- .ALLOWED=YT_SPEC
- PEERDIR(library/cpp/testing/gbenchmark)
- ADD_YTEST($MODULE_PREFIX$REALPRJNAME g_benchmark)
- }
- BENCHMARK_OPTS_VALUE=
- macro BENCHMARK_OPTS(Data...) {
- SET_APPEND(BENCHMARK_OPTS_VALUE $Data)
- }
- TEST_ROOT=$(TESTS_DATA_ROOT)
- RESULT_MAX_FILE=0
- STRIP_FILES=--dont-strip-files
- VERIFY_RESULTS=--verify-results
- ADDITIONAL_PATH=
- YA_ROOT=ya
- when ($YA_DEV == "yes") {
- YA_ROOT=ya-dev
- }
- module UNITTEST_FOR: UNITTEST {
- .SEM=UNITTEST_SEM
- PEERDIR(ADDINCL $UNITTEST_DIR)
- SRCDIR($UNITTEST_DIR)
- }
- module _LIBRARY: _BASE_UNIT {
- .CMD=$LINK_LIB
- .STRUCT_CMD=yes
- .NODE_TYPE=Library
- .PEERDIR_POLICY=as_include
- .EXTS=.o .obj .a .mf .supp .sbom .tidyjson .ld .lib .sdcmeta
- .ALLOWED=GRPC USE_SKIFF EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES
- .GLOBAL=USER_CFLAGS USER_CXXFLAGS USER_CONLYFLAGS LDFLAGS SRCS _WHOLE_ARCHIVE_LIBS_VALUE RPATH OBJADDE_LIB
- .RESTRICTED=ALLOCATOR SIZE TAG DATA TEST_DATA DEPENDS FORK_TESTS FORK_SUBTESTS SPLIT_FACTOR TEST_CWD RUN TIMEOUT SPLIT_DWARF
- .ALIASES=EXTRALIBS=PY_EXTRALIBS
- .FINAL_TARGET=no
- .GLOBAL_CMD=$GLOBAL_LINK_LIB
- .GLOBAL_EXTS=.o .obj .tidyjson
- GLOBAL_SUFFIX=.global$MODULE_SUFFIX
-
- ENABLE(NEED_ADD_FAKE_SRC)
- CHECK_CONTRIB_CREDITS(contrib/clickhouse contrib/libs contrib/deprecated EXCEPT contrib/deprecated/python)
- when ($USE_MKL == "yes") {
- NOPLATFORM=yes
- }
- when ($MSVC == "yes" || $CYGWIN == "yes") {
- MODULE_PREFIX=
- MODULE_SUFFIX=.lib
- }
- elsewhen ($TIDY_ENABLED == "yes") {
- MODULE_PREFIX=
- MODULE_SUFFIX=.tidyjson
- }
- otherwise {
- MODULE_PREFIX=lib
- MODULE_SUFFIX=.a
- }
- when ($WERROR != "no") {
- when ($WERROR_MODE == "all" || ($WERROR_MODE == "compiler_specific" && $WERROR == "yes")) {
- C_WARNING_OPTS += $WERROR_FLAG
- }
- }
- when ($WITH_VALGRIND == "yes") {
- PEERDIR+=contrib/libs/valgrind
-
- CFLAGS+=-fdebug-default-version=4
- }
- }
- CPP_LIBRARY_INDUCED_LINKS=link-publics
- CPP_LIBRARY_SEM=add_library ${MODDIR} $CMAKE_TARGET_NAME ${hide:TARGET} ${hide:AUTO_INPUT} $CMAKE_TARGET_ARTEFACT_RENAME_RULES \
- && is_fake_module ${FAKE_MODULE} \
- && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET \
- && target_options-publics-ITEM && target_options-publics-option target_include_directories && target_options-publics-args $_C__INCLUDE_GLOBAL \
- && target_options-privates-ITEM && target_options-privates-option target_include_directories && target_options-privates-args $_C__INCLUDE_OWNED \
- && target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \
- && target_options-publics-ITEM && target_options-publics-option target_compile_options && target_options-publics-args $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW \
- && target_options-interfaces-ITEM && target_options-interfaces-option target_link_options && target_options-interfaces-args $LDFLAGS_GLOBAL_RAW \
- && project_languages C && project_languages CXX \
- && target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${MODULE_EXPLICIT_HEADERS}
- CPP_OBJ_LIBRARY_SEM=add_global_library_for ${MODDIR} ${suf=.global:CMAKE_TARGET_NAME} $CMAKE_TARGET_NAME ${hide:GLOBAL_TARGET} ${hide:AUTO_INPUT} \
- && target_options-publics-ITEM && target_options-publics-option target_include_directories && target_options-publics-args $_C__INCLUDE_GLOBAL \
- && target_options-privates-ITEM && target_options-privates-option target_include_directories && target_options-privates-args $_C__INCLUDE_OWNED \
- && target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \
- && target_options-publics-ITEM && target_options-publics-option target_compile_options && target_options-publics-args $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW
- CMAKE_FIND_PKG=
- CMAKE_LINK_TARGET=$REALPRJNAME
- CMAKE_FIND_PKG_COMP=
- module LIBRARY: _LIBRARY {
- .GLOBAL=_AARS _PROGUARD_RULES
- .SEM=CPP_LIBRARY_SEM
- .ALIASES=EXTRALIBS=PY_EXTRALIBS
- .GLOBAL_SEM=CPP_OBJ_LIBRARY_SEM
- .DEFAULT_NAME_GENERATOR=ThreeDirNames
- .ARGS_PARSER=Base
- when ($CMAKE_PACKAGE_SEM != "" || $CONAN_REQUIRES_SEM != "" || $CONAN_OPTS_SEM != "" || $CONAN_OS_REQUIRES_SEM != "" || $CONAN_OS_OPTIONS_SEM != "") {
- CPP_LIBRARY_SEM=$CMAKE_PACKAGE_SEM && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRES_SEM $CONAN_OPTIONS_SEM $CONAN_OS_REQUIRES_SEM $CONAN_OS_OPTIONS_SEM && IGNORED
- }
- when ($OPENSOURCE_EXPORT == "no") {
- CPP_LIBRARY_SEM=IGNORED
- }
- when ($HAS_CPP_PROTOBUF_PEERS == "yes") {
- PEERDIR+=$CPP_PROTOBUF_PEERS
- }
- SET(MODULE_TYPE LIBRARY)
- SET(MODULE_LANG CPP)
- ADD_CLANG_TIDY()
- when ($TIDY_ENABLED == "yes") {
- _MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_project_map.json
- _MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_default_map.json
- }
- }
- macro _BARE_MODULE() {
- SET(NEED_PLATFORM_PEERDIRS no)
- SET(PEERDIR_TEST_TOOL no)
- DISABLE(WITH_VALGRIND)
- NO_CODENAVIGATION()
- NO_PLATFORM()
- NO_RUNTIME()
- NO_UTIL()
- NO_CLANG_TIDY()
- }
- macro _BARE_LINK_MODULE() {
- _BARE_MODULE()
- DISABLE(COMMON_LINK_SETTINGS)
- ALLOCATOR(FAKE)
- }
- macro _CONDITIONAL_SRCS(USE_CONDITIONAL_SRCS[], DYMMY...) {
- SRCS($USE_CONDITIONAL_SRCS)
- }
- RESOURCES_LIBRARY_LINK=$TOUCH_UNIT
- RESOURCES_LIBRARY_SEM=IGNORED
- module RESOURCES_LIBRARY: _BARE_UNIT {
- .CMD=RESOURCES_LIBRARY_LINK
- .SEM=RESOURCES_LIBRARY_SEM
- .ALLOWED=DECLARE_EXTERNAL_RESOURCE EXTRALIBS OBJADDE_GLOBAL
- .RESTRICTED=ALLOCATOR SIZE TAG DATA TEST_DATA DEPENDS FORK_TESTS FORK_SUBTESTS SPLIT_FACTOR TEST_CWD RUN TIMEOUT SRC SRCS SPLIT_DWARF
- .ALIASES=EXTRALIBS=PY_EXTRALIBS
- .NODE_TYPE=Library
- .PEERDIR_POLICY=as_include
- .EXTS=.o .obj .a .mf .supp .sbom .tidyjson .ld .lib
- .GLOBAL=USER_CFLAGS USER_CXXFLAGS USER_CONLYFLAGS LDFLAGS _WHOLE_ARCHIVE_LIBS_VALUE RPATH OBJADDE_LIB SRCS
- SET(MODULE_TAG RESOURCE_LIB)
- SET(PEERDIR_TAGS RESOURCE_LIB)
- when ($CMAKE_PACKAGE_SEM != "" || $CONAN_REQUIRES_SEM != "" || $CONAN_OPTS_SEM != "" || $CONAN_OS_REQUIRES_SEM != "" || $CONAN_OS_OPTIONS_SEM != "") {
- RESOURCES_LIBRARY_SEM=$CMAKE_PACKAGE_SEM && ${CPP_LIBRARY_INDUCED_LINKS} $CMAKE_LINK_TARGET $CONAN_REQUIRES_SEM $CONAN_OPTIONS_SEM $CONAN_OS_REQUIRES_SEM $CONAN_OS_OPTIONS_SEM && IGNORED
- }
- MODULE_SUFFIX=.pkg.fake
- ENABLE(NEED_ADD_FAKE_SRC)
- WITHOUT_LICENSE_TEXTS()
- }
- FAT_OBJECT_SEM=add_fat_object ${MODDIR} ${CMAKE_TARGET_NAME} ${hide:TARGET} ${hide:AUTO_INPUT} ${CMAKE_TARGET_ARTEFACT_RENAME_RULES} \
- && target_options-privates-ITEM && target_options-privates-option target_include_directories && target_options-privates-args $_C__INCLUDE_OWNED \
- && target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \
- && platform_vars-FAT_OBJECT_PREFIX ${quo:MODULE_PREFIX} \
- && platform_vars-FAT_OBJECT_SUFFIX ${quo:MODULE_SUFFIX}
- KEEP_FAT_OBJECT_SYMBOLS=no
- module FAT_OBJECT: LIBRARY {
- .ALLOWED=PACK_GLOBALS_IN_LIBRARY
- .CMD=$LINK_FAT_OBJECT
- .SEM=FAT_OBJECT_SEM
- .PEERDIR_POLICY=as_build_from
- when ($MSVC == "yes" || $CYGWIN == "yes") {
- MODULE_SUFFIX=.lib
- }
- otherwise {
- MODULE_SUFFIX=.a
- }
- when (($OS_DARWIN == "yes" || $OS_IOS == "yes") && $KEEP_FAT_OBJECT_SYMBOLS == "yes") {
- LDFLAGS_GLOBAL += -keep_private_externs
- }
- when ($OS_IOS == "yes" || $OS_ANDROID == "yes" || $MAPSMOBI_BUILD_TARGET == "yes") {
- MODULE_LICENSES_RESTRICTION_TYPES = ALLOW_ONLY
- MODULE_LICENSES_RESTRICTIONS = SERVICE REQUIRE_CITATION
- }
-
- when ($OS_ANDROID == "yes") {
- MODULE_PREFIX=lib
- }
- otherwise {
- MODULE_PREFIX=
- }
- _USE_LINKER()
-
-
- DISABLE(NEED_ADD_FAKE_SRC)
- SRCS(build/scripts/_fake_src.cpp)
- }
- RECURSIVE_LIBRARY_SEM=add_recursive_library ${MODDIR} ${CMAKE_TARGET_NAME} ${hide:TARGET} ${hide:AUTO_INPUT} ${CMAKE_TARGET_ARTEFACT_RENAME_RULES} \
- && target_options-publics-ITEM && target_options-publics-option target_include_directories && target_options-publics-args $_C__INCLUDE_GLOBAL \
- && target_options-privates-ITEM && target_options-privates-option target_include_directories && target_options-privates-args $_C__INCLUDE_OWNED \
- && target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \
- && target_options-publics-ITEM && target_options-publics-option target_compile_options && target_options-publics-args $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW \
- && target_options-interfaces-ITEM && target_options-interfaces-option target_link_options && target_options-interfaces-args $LDFLAGS_GLOBAL_RAW
- module RECURSIVE_LIBRARY: LIBRARY {
- .CMD=$LINK_RECURSIVE_LIBRARY
- .SEM=RECURSIVE_LIBRARY_SEM
- .PEERDIR_POLICY=as_build_from
-
-
- DISABLE(NEED_ADD_FAKE_SRC)
- SRCS(build/scripts/_fake_src.cpp)
- }
- _SONAME=
- _EXPORT_SCRIPT_SEM=
- _CLEAN_TEXTREL=
- macro _ADD_DYNLYB_SEM(Libname) {
- .SEM=add_shared_library ${MODDIR} ${Libname} ${hide:TARGET} ${hide:AUTO_INPUT} && target_options-publics-ITEM && target_options-publics-option target_include_directories && target_options-publics-args $_C__INCLUDE_GLOBAL && target_options-privates-ITEM && target_options-privates-option target_include_directories && target_options-privates-args $_C__INCLUDE_OWNED && target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS && target_options-publics-ITEM && target_options-publics-option target_compile_options && target_options-publics-args $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW && target_options-privates-ITEM && target_options-privates-option target_link_options && target_options-privates-args $LDFLAGS_GLOBAL_RAW $LDFLAGS $OBJADDE_LIB $OBJADDE_LIB_GLOBAL $OBJADDE && ${VCS_INFO_SEM} $_EXPORT_SCRIPT_SEM
- }
- CPP_DYN_LIBRARY_SEM=$_ADD_DYNLYB_SEM($CMAKE_TARGET_NAME) $CMAKE_TARGET_ARTEFACT_RENAME_RULES
- macro CLEAN_TEXTREL() {
- SET(_CLEAN_TEXTREL yes)
- }
- module DLL_UNIT: _LINK_UNIT {
- .CMD=$LINK_DYN_LIB
- .SEM=CPP_DYN_LIBRARY_SEM
- .NODE_TYPE=Library
- .SYMLINK_POLICY=SO
- .GLOBAL=USER_CFLAGS USER_CXXFLAGS USER_CONLYFLAGS LDFLAGS _WHOLE_ARCHIVE_LIBS_VALUE RPATH OBJADDE_LIB
- .ALLOWED=WHOLE_ARCHIVE
- .ALIASES=EXTRALIBS=PY_EXTRALIBS
- .DEFAULT_NAME_GENERATOR=TwoDirNames
- .ARGS_PARSER=DLL
- DYNAMIC_LINK=yes
- ALLOCATOR(FAKE)
- SET(MODULE_TYPE DLL)
- SET(MODULE_TAG DLL)
- SET(MODULE_LANG CPP)
- when ($EXPORTS_FILE) {
- _EXPORT_SCRIPT_SEM=&& target_macroses-ITEM && target_macroses-macro use_export_script && target_macroses-args ${input:EXPORTS_FILE}
- }
- when ($MSVC == "yes" || $CYGWIN == "yes") {
- MODULE_SUFFIX=.dll
- }
- elsewhen ($DARWIN == "yes" || $OS_IOS == "yes") {
- MODULE_PREFIX=lib
- MODULE_SUFFIX=.dylib
- }
- elsewhen ($TIDY_ENABLED != "yes") {
- MODULE_PREFIX=lib
- MODULE_SUFFIX=.so
- }
-
- SONAME=${pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX:REALPRJNAME}
- when ($MODULE_VERSION) {
- LINK_DYN_LIB_FLAGS=--soname ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX$MODULE_VERSION:REALPRJNAME}
- }
- _SONAME=$SONAME$MODULE_VERSION
- when ($LINUX == "yes") {
-
- when ($_CLEAN_TEXTREL != "yes") {
- LDFLAGS += -Wl,-z,notext
- }
- }
- when ($OS_LINUX == "yes" && $ARCH_X86_64 == "yes") {
- when ($_NO_FIX_ELF != "yes") {
- LINK_DYN_LIB_FLAGS+=--fix-elf ${tool:"tools/fix_elf"}
- }
- }
- when ($DARWIN == "yes") {
- LDFLAGS += -undefined dynamic_lookup
- }
- when ($CLANG_COVERAGE && $CLANG_COVERAGE != "no") {
- PEERDIR+=library/cpp/testing/dump_clang_coverage
- }
- when ($IDE_MSVS == "yes") {
- PEERDIR+=build/scripts/c_templates
- }
- when ($_CUSTOM_LINK_STEP_SCRIPT) {
- LINK_DYN_LIB_FLAGS+=--python=$YMAKE_PYTHON --custom-step=${input:_CUSTOM_LINK_STEP_SCRIPT}
- }
- }
- module R_MODULE: DLL_UNIT {
- .SEM=CPP_DYN_LIBRARY_SEM
- when ($DARWIN == "yes") {
- LDFLAGS+=-flat_namespace -dynamiclib
- }
- when ($MSVC == "yes" || $CYGWIN == "yes") {
- MODULE_PREFIX=lib
- MODULE_SUFFIX=.dll
- }
- ADDINCL(contrib/libs/r-lang)
- }
- macro DYNAMIC_LIBRARY_FROM(Path...) {
- PEERDIR($Path)
- WHOLE_ARCHIVE($Path)
- }
- module DLL: DLL_UNIT {
- .SEM=CPP_DYN_LIBRARY_SEM
- SET(MAKE_ONLY_SHARED_LIB yes)
- when ($OS_WINDOWS) {
- MODULE_SUFFIX=.dll
- }
-
-
-
-
-
-
-
- }
- module DLL_TOOL: DLL {
- .SEM=CPP_DYN_LIBRARY_SEM
-
- .NODE_TYPE=Program
- }
- module SO_PROGRAM: DLL {
- .CMD=$LINK_EXEC_DYN_LIB
- SET(MODULE_TYPE PROGRAM)
- MODULE_PREFIX=
- when ($MSVC == "yes" || $CYGWIN == "yes") {
- MODULE_SUFFIX=.exe
- }
- otherwise {
- MODULE_SUFFIX=
- }
- }
- DLL_PROXY_CMD_MF=$GENERATE_MF && $COPY_CMD $AUTO_INPUT $TARGET
- module DEV_DLL_PROXY: _BARE_UNIT {
- .NODE_TYPE=Library
- .EXTS=.so .dll .dylib .mf
- .CMD=DLL_PROXY_CMD_MF
- DYNAMIC_LINK=yes
- when ($OS_WINDOWS == "yes") {
- MODULE_SUFFIX=.dll
- }
- elsewhen ($DARWIN == "yes" || $OS_IOS == "yes") {
- MODULE_PREFIX=lib
- MODULE_SUFFIX=.dylib$MODULE_VERSION
- }
- otherwise {
- MODULE_PREFIX=lib
- MODULE_SUFFIX=.so$MODULE_VERSION
- }
- }
- macro DYNAMIC_DEPS(Path...) {
-
- SET_APPEND(PEERDIR $Path)
- }
- multimodule DYNAMIC_LIBRARY {
- module DLL_BIN: DLL {
- .PROXY=yes
- .IGNORED=PROVIDES
- SET(MODULE_TAG DLL)
- }
- module DLL_LIB: _DLL_COMPATIBLE_LIBRARY {
- .CMD=$TOUCH_UNIT_MF
- .PEERDIRSELF=DLL_BIN
- .IGNORED=SRCS PEERDIR RUN_PROGRAM PYTHON DYNAMIC_LIBRARY_FROM GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_PYTHON2 USE_PYTHON3
- .ALLOWED=DYNAMIC_DEPS
- SET(PEERDIR_TAGS DLL_LIB __EMPTY__ RESOURCE_LIB)
- _BARE_MODULE()
- DYNAMIC_LINK=yes
- MODULE_SUFFIX=.pkg.fake
- PEERDIR+=build/platform/local_so
-
- SET(CREDITS_FLAGS)
- }
- }
- macro GLOBAL_SRCS(Files...) {
- SRCS(${pre=GLOBAL :Files})
- }
- macro ALL_SRCS(GLOBAL?"GLOBAL":"", Files...) {
- SRCS(${pre=$GLOBAL :Files})
- }
- module _DLL_COMPATIBLE_LIBRARY: LIBRARY {
- .DEFAULT_NAME_GENERATOR=TwoDirNames
- .ARGS_PARSER=DLL
- }
- PACKED_PACKAGE_ARGS=
- PACKED_PACKAGE_EXT=
- macro PACK(Ext) {
- SET(PACKED_PACKAGE_EXT $Ext)
- }
- multimodule PACKAGE {
- module PACKAGE_FINAL: _BASE_UNIT {
- .CMD=TOUCH_PACKAGE_MF
- .ALIASES=SRCS=FILES
- .ALLOWED=PACK
- .PEERDIRSELF=PACKAGE_UNION
- .USE_PEERS_LATE_OUTS=yes
- .PEERDIR_POLICY=as_build_from
- .FINAL_TARGET=yes
- SET(PEERDIR_TAGS CPP_PROTO CPP_PROTO_FROM_SCHEMA CPP_FBS PY2 PY3 PY2_NATIVE PY3_NATIVE YQL_UDF_SHARED __EMPTY__ RESOURCE_LIB DOCSBOOK JAR_RUNNABLE PY3_BIN PY3TEST_PROGRAM DLL GO_PROGRAM PACKAGE_UNION)
- SET(MODULE_SUFFIX .final.pkg.fake)
- SET(DONT_RESOLVE_INCLUDES yes)
- NO_PLATFORM()
- when ($PACKED_PACKAGE_EXT) {
- PACKED_PACKAGE_ARGS+=--dest-arch ${output;pre=$MODULE_PREFIX;suf=.$PACKED_PACKAGE_EXT:REALPRJNAME}
- }
- SET(NEED_PLATFORM_PEERDIRS no)
- SET(_COPY_FILE_CONTEXT TEXT)
- }
- module PACKAGE_UNION: UNION {
- .CMD=UNION_CMD
- .FINAL_TARGET=no
- .ALLOWED=PACK
- .IGNORED=VCS_INFO_FILE
- SET(MODULE_SUFFIX .pkg.fake)
- SET(PEERDIR_TAGS CPP_PROTO CPP_PROTO_FROM_SCHEMA CPP_FBS PY2 PY3 PY2_NATIVE PY3_NATIVE YQL_UDF_SHARED __EMPTY__ RESOURCE_LIB DOCSBOOK JAR_RUNNABLE PY3_BIN PY3TEST_PROGRAM DLL GO_PROGRAM PACKAGE_UNION)
- DISABLE(START_TARGET)
- SET(_COPY_FILE_CONTEXT TEXT)
- }
- }
- TOUCH_GROUP=$FAKE_PACKAGE_CMD $VCS_INFO_DISABLE_CACHE__NO_UID__ ${hide:PEERS} ${hide:AUTO_INPUT} ${hide:SRCS_GLOBAL} ${hide;kv:"p CI"} ${hide;kv:"package PACKAGE"}
- module CI_GROUP: _BARE_UNIT {
- .CMD=TOUCH_GROUP
- .PEERDIR_POLICY=as_build_from
- .FINAL_TARGET=yes
- .RESTRICTED=SRCS
- .USE_PEERS_LATE_OUTS=yes
- MODULE_SUFFIX=.ci.pkg.fake
- PEERDIR_TAGS=CPP_PROTO CPP_PROTO_FROM_SCHEMA PY3 PY3_NATIVE PY3_BIN PY3TEST_PROGRAM YQL_UDF_SHARED __EMPTY__ RESOURCE_LIB DOCSBOOK JAR_RUNNABLE DLL PACKAGE_FINAL
- }
- TOUCH_UNIT_MF=$TOUCH_UNIT && $GENERATE_MF
- module UNION: _BASE_UNIT {
- .CMD=UNION_CMD_MF
- .FINAL_TARGET=no
- .ALIASES=SRCS=FILES
- .ALLOWED=EXPLICIT_OUTPUTS
- .IGNORED=VCS_INFO_FILE
- NO_PLATFORM()
- SET(MODULE_SUFFIX .pkg.fake)
- SET(DONT_RESOLVE_INCLUDES yes)
- SET(NEED_PLATFORM_PEERDIRS no)
- PEERDIR_TAGS=CPP_PROTO CPP_PROTO_FROM_SCHEMA CPP_FBS PY2 PY2_NATIVE PY3_NATIVE YQL_UDF_SHARED __EMPTY__ RESOURCE_LIB DOCSBOOK JAR_RUNNABLE PY3_BIN DLL PACKAGE_UNION
- UNION_OUTS=${hide;late_out:AUTO_INPUT}
- when ($_UNION_EXPLICIT_OUTPUTS) {
- UNION_OUTS=$_EXPAND_INS_OUTS($_UNION_EXPLICIT_OUTPUTS)
- }
- SET(_COPY_FILE_CONTEXT TEXT)
- }
- macro _ADD_HIDDEN_INPUTS(Inputs...) {
- .CMD=${hide;input:Inputs}
- }
- macro _SET_FIRST_VALUE(NAME, VALUE, OTHER...) {
- SET($NAME $VALUE)
- }
- macro _SRCS_NO_GLOBAL(GLOBAL[], FILES...) {
- SRCS($GLOBAL $FILES)
- }
- @import "${CONF_ROOT}/conf/java.conf"
- @import "${CONF_ROOT}/conf/python.conf"
- TEST_CWD_VALUE=
- macro TEST_CWD(Arg) {
- SET(TEST_CWD_VALUE $Arg)
- }
- macro ALLOCATOR(Alloc) {
- SET(ALLOCATOR $Alloc)
- when ($ALLOCATOR in [ "LF", "LF_YT", "LF_DBG", "YT", "YT_TCMALLOC", "YT_TCMALLOC_256K", "J", "B", "BM", "C", "TCMALLOC", "TCMALLOC_SMALL_BUT_SLOW", "TCMALLOC_NUMA_256K", "TCMALLOC_NUMA_LARGE_PAGES", "TCMALLOC_256K", "TCMALLOC_TC", "GOOGLE", "LOCKLESS", "SYSTEM", "FAKE", "MIM", "MIM_SDC", "HU", "PROFILED_HU", "THREAD_PROFILED_HU" ]) {
- }
- otherwise {
- PEERDIR+=___configure_error___unknown_allocator_type___$ALLOCATOR
- }
- }
- when ($MIC_ARCH == "yes") {
- CFLAGS+=-mmic
- LDFLAGS+=-mmic
- }
- when ($USE_OPENMP == "yes") {
- PEERDIR+=contrib/libs/openmp
- }
- when ($STRIP == "yes" && $NO_STRIP != "yes") {
- STRIP_FLAG=$LD_STRIP_FLAG
- DWARF_COMMAND=
- GO_LINK_FLAGS_VALUE+=-s
- }
- when ($NO_LINKER_DCE != "yes") {
- DCE_FLAG=$LD_DCE_FLAG
- }
- when ($BT_MINSIZEREL == "yes" || $LINKER_ICF == "yes") {
- ICF_FLAG=$LD_ICF_FLAG
- }
- OBJCOPY_TOOL=$OBJCOPY_TOOL_VENDOR
- OBJDUMP_TOOL=$OBJDUMP_TOOL_VENDOR
- STRIP_TOOL=$STRIP_TOOL_VENDOR
- NEED_BINUTILS_PEERDIR=
- BINUTILS_USED=
- when (!$OBJCOPY_TOOL_VENDOR) {
- OBJCOPY_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/objcopy
- NEED_BINUTILS_PEERDIR=yes
- }
- when (!$OBJDUMP_TOOL_VENDOR) {
- OBJDUMP_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/objdump
- NEED_BINUTILS_PEERDIR=yes
- }
- when (!$STRIP_TOOL_VENDOR) {
- STRIP_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/strip
- NEED_BINUTILS_PEERDIR=yes
- }
- SPLIT_DWARF_VALUE=no
- NO_SPLIT_DWARF=no
- when ($OS_DARWIN || $OS_IOS || $OS_IOSSIM) {
- SPLIT_DWARF_VALUE=yes
- }
- when ($STRIP_DEBUG_INFO) {
- SPLIT_DWARF_VALUE=yes
- NO_SPLIT_DWARF=no
- }
- macro SPLIT_DWARF() {
- SET(SPLIT_DWARF_VALUE yes)
- }
- macro NO_SPLIT_DWARF() {
- SET(SPLIT_DWARF_VALUE no)
- }
- SPLIT_DWARF_OUTPUT=${tobindir;output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.debug:REALPRJNAME}
- when ($SPLIT_DWARF_VALUE == "yes" && $NO_SPLIT_DWARF != "yes" && $NO_DEBUGINFO != "yes" && $HOST_OS_LINUX == "yes" && $TARGET_PLATFORM == "LINUX") {
- DWARF_COMMAND= \
- $OBJCOPY_TOOL --only-keep-debug $TARGET $SPLIT_DWARF_OUTPUT && \
- $STRIP_TOOL --strip-debug $TARGET && \
- $OBJCOPY_TOOL --remove-section=.gnu_debuglink --add-gnu-debuglink $SPLIT_DWARF_OUTPUT $TARGET
- BINUTILS_USED=yes
- }
- macro EXTRALIBS_STATIC(Args...) {
- LDFLAGS(-Wl,-Bstatic ${Args} -Wl,-Bdynamic)
- }
- macro ADD_COMPILABLE_TRANSLATE(Dict, Name, MakeTransDictOptions...) {
- __translatename_lower=${tolower:Name}
- __translate_dict=${BINDIR}/transdict.${__translatename_lower}.cpp
- RUN_PROGRAM(dict/tools/maketransdict -i ${Dict} ${MakeTransDictOptions} ${Name} STDOUT_NOAUTO ${__translate_dict} IN ${Dict})
- }
- macro ADD_COMPILABLE_TRANSLIT(TranslitTable, NGrams, Name, Options...) {
- __translitname_lower=${tolower:Name}
- __translit_table=${BINDIR}/translit_trie_${__translitname_lower}.cpp
- __untranslit_table=${BINDIR}/untranslit_trie_${__translitname_lower}.cpp
- __ngrams_table=${BINDIR}/ngr_arr_${__translitname_lower}.cpp
- __gentrie_dir=dict/tools/make_untranslit_trie
- RUN_PROGRAM(${__gentrie_dir} -i ${TranslitTable} ${Options} ${__translitname_lower} IN ${TranslitTable} STDOUT ${__untranslit_table})
- RUN_PROGRAM(${__gentrie_dir} -i ${TranslitTable} -n ${Options} ${__translitname_lower} IN ${TranslitTable} STDOUT ${__translit_table})
- RUN_PROGRAM(dict/tools/make_ngrams -i ${NGrams} ${Options} ${__translitname_lower} IN ${NGrams} STDOUT ${__ngrams_table})
- }
- _COPY_FILE_CONTEXT=
- macro _COPY_FILE_IMPL(TEXT[], AUTO_DST="", NOAUTO_DST="", OUTPUT_INCLUDES[], INDUCED_DEPS[], OUTPUT_INCLUDES_INP[], FILE...) {
- .CMD=$COPY_CMD ${input:FILE} ${context=TEXT;input:TEXT} ${output:AUTO_DST} ${noauto;output:NOAUTO_DST} ${hide;output_include:OUTPUT_INCLUDES} ${output_include;from_input;hide:OUTPUT_INCLUDES_INP} $INDUCED_DEPS ${hide;kv:"p CP"} ${hide;kv:"pc light-cyan"}
- .SEM=target_commands-ITEM && target_commands-macro copy_file && target_commands-args ${input:FILE} ${output:AUTO_DST} ${noauto;output:NOAUTO_DST}
- }
- macro COPY_FILE(File, Destination, AUTO?"AUTO_DST":"NOAUTO_DST", OUTPUT_INCLUDES[], INDUCED_DEPS[], TEXT?"TEXT":"$_COPY_FILE_CONTEXT") {
- .CMD=$_COPY_FILE_IMPL($TEXT $File $AUTO $Destination OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS)
- .SEM=$_COPY_FILE_IMPL($File $AUTO $Destination)
- }
- macro COPY_FILE_WITH_CONTEXT(FILE, DEST, AUTO?"AUTO_DST":"NOAUTO_DST", OUTPUT_INCLUDES[], INDUCED_DEPS[]) {
- .CMD=$_COPY_FILE_IMPL($FILE $AUTO $DEST OUTPUT_INCLUDES_INP $FILE OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS)
- }
- macro _ARF_HELPER(Args...) {
- RESOURCE_FILES($Args)
- }
- macro ALL_RESOURCE_FILES(EXT, PREFIX="", STRIP="", DIRS...) {
- _GLOB(ALL_RES_$EXT ${suf=/*.$EXT:DIRS})
- _ARF_HELPER(${pre=PREFIX :PREFIX} STRIP ${ARCADIA_ROOT}/${MODDIR}/${STRIP} ${pre=$ALL_RES_:EXT})
- }
- macro ALL_RESOURCE_FILES_FROM_DIRS(PREFIX="", STRIP="", DIRS...) {
- _GLOB(_ALL_RES_DIRS ${suf=/*:DIRS})
- _ARF_HELPER(${pre=PREFIX :PREFIX} STRIP ${ARCADIA_ROOT}/${MODDIR}/${STRIP} ${_ALL_RES_DIRS})
- }
- macro _BUNDLE_TARGET(Target, Destination, Suffix) {
- .CMD=$MOVE_FILE ${result:Target}$Suffix ${noauto;output:Destination} ${hide;kv:"p BN"} ${hide;kv:"pc light-cyan"} $VCS_INFO_DISABLE_CACHE__NO_UID__
- }
- macro TIMEOUT(Time) {
- SET(TEST_TIMEOUT $Time)
- }
- SBR_UID_EXT=""
- macro VALIDATE_DATA_RESTART(Ext) {
- SET(SBR_UID_EXT $Ext)
- }
- TEST_FORK_MODE=none
- TEST_PARTITION=SEQUENTIAL
- macro FORK_TESTS(MODE...) {
- SET(TEST_FORK_MODE tests)
- SET(TEST_PARTITION $MODE)
- }
- macro FORK_SUBTESTS(MODE...) {
- SET(TEST_FORK_MODE subtests)
- SET(TEST_PARTITION $MODE)
- }
- macro SPLIT_FACTOR(Factor) {
- SET(TEST_SPLIT_FACTOR $Factor)
- }
- FORK_TEST_FILES_MODE=
- macro FORK_TEST_FILES() {
- SET(FORK_TEST_FILES_MODE on)
- }
- TEST_SIZE_NAME=SMALL
- macro SIZE(Type) {
- SET(TEST_SIZE_NAME $Type)
- }
- macro JOIN_SRCS(Out, Src...) {
- .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/gen_join_srcs.py"} ${hide;input:"build/scripts/process_command_files.py"} ${output:Out} --ya-start-command-file ${context=TEXT;input;rootrel:Src} --ya-end-command-file ${output_include;from_input;hide:Src} ${hide;kv:"p JS"} ${hide;kv:"pc magenta"}
- .SEM=target_macroses-ITEM && target_macroses-macro target_joined_source && target_macroses-args $Out ${input:Src} ${hide;output;suf=.o:Out} ${hide;input:"build/scripts/gen_join_srcs.py"} ${hide;input:"build/scripts/process_command_files.py"}
- _CONDITIONAL_SRCS($TIDY_VALUE $Src)
- }
- macro JOIN_SRCS_GLOBAL(Out, Src...) {
- .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/gen_join_srcs.py"} ${hide;input:"build/scripts/process_command_files.py"} ${noauto;output:Out} --ya-start-command-file ${input;rootrel;context=TEXT:Src} --ya-end-command-file ${output_include;from_input;hide:Src} ${hide;kv:"p JS"} ${hide;kv:"pc magenta"}
- SRCS(GLOBAL $Out)
- }
- macro FLAT_JOIN_SRCS_GLOBAL(Out, Src...) {
- .CMD=$FS_TOOLS cat ${noauto;output:Out} --ya-start-command-file ${context=TEXT;input:Src} --ya-end-command-file ${output_include;from_input;hide:Src} ${hide;kv:"p JS"} ${hide;kv:"pc magenta"}
- SRCS(GLOBAL $Out)
- }
- PIC_CFLAGS=
- SSE2_CFLAGS=
- SSE3_CFLAGS=
- SSSE3_CFLAGS=
- SSE41_CFLAGS=
- SSE42_CFLAGS=
- POPCNT_CFLAGS=
- PCLMUL_CFLAGS=
- CX16_FLAGS=
- AVX_CFLAGS=
- AVX2_CFLAGS=
- AVX512_CFLAGS=
- AMX_CFLAGS=
- SSE_DEFINES=
- SSE_CFLAGS=
- SSE4_DEFINES=
- SSE4_CFLAGS=
- XOP_CFLAGS=
- NO_LTO_CFLAGS=
- when (($ARCH_X86_64 || $ARCH_I386) && $DISABLE_INSTRUCTION_SETS != "yes") {
- when ($CLANG || $CLANG_CL || $GCC) {
- PIC_CFLAGS=-fPIC
- SSE2_CFLAGS=-msse2
- SSE3_CFLAGS=-msse3
- SSSE3_CFLAGS=-mssse3
- SSE41_CFLAGS=-msse4.1
- SSE42_CFLAGS=-msse4.2
- XOP_CFLAGS=-mxop
- POPCNT_CFLAGS=-mpopcnt
- PCLMUL_CFLAGS=-mpclmul
- AVX_CFLAGS=-mavx
-
-
-
-
-
-
-
-
-
-
-
- AVX2_CFLAGS=-mavx2 -mfma -mbmi -mbmi2
-
-
-
-
- AVX512_CFLAGS=-mavx512f -mavx512cd -mavx512bw -mavx512dq -mavx512vl
-
-
-
-
- AMX_CFLAGS=-mamx-tile -mamx-int8 ${AVX512_CFLAGS}
- when ($ARCH_X86_64 && $OS_ANDROID != "yes") {
- CX16_FLAGS=-mcx16
- }
- SSE_DEFINES=-DSSE_ENABLED=1 -DSSE3_ENABLED=1 -DSSSE3_ENABLED=1
- SSE4_DEFINES=-DSSE41_ENABLED=1 -DSSE42_ENABLED=1 -DPOPCNT_ENABLED=1 -DCX16_ENABLED=1
- }
- elsewhen ($MSVC) {
- SSE2_CFLAGS=/D__SSE2__=1
- SSE3_CFLAGS=/D__SSE3__=1
- SSSE3_CFLAGS=/D__SSSE3__=1
- SSE41_CFLAGS=/D__SSE4_1__=1
- SSE42_CFLAGS=/D__SSE4_2__=1
- POPCNT_CFLAGS=/D__POPCNT__=1
- PCLMUL_CFLAGS=/D__PCLMUL__=1
- AVX_CFLAGS=/arch:AVX /DAVX_ENABLED=1
- AVX2_CFLAGS=/arch:AVX2 /DAVX2_ENABLED=1
- AVX512_CFLAGS=/arch:AVX512 /DAVX512_ENABLED=1
- SSE_DEFINES=/DSSE_ENABLED=1 /DSSE3_ENABLED=1 /DSSSE3_ENABLED=1
- SSE4_DEFINES=/DSSE41_ENABLED=1 /DSSE42_ENABLED=1 /DPOPCNT_ENABLED=1 /DCX16_ENABLED=1
- }
- SSE_CFLAGS=$SSE2_CFLAGS $SSE3_CFLAGS $SSSE3_CFLAGS
- SSE4_CFLAGS=$SSE41_CFLAGS $SSE42_CFLAGS $POPCNT_CFLAGS $CX16_FLAGS
- when ($ARCH_I386 && $OS_ANDROID == "yes") {
- USE_SSE4=no
- }
- }
- otherwise {
- USE_SSE4=no
- CPU_CHECK=no
- }
- when ($NOSSE == "yes") {
- USE_SSE4=no
- }
- macro NO_SSE4() {
- SET(USE_SSE4 no)
- }
- macro NO_CPU_CHECK() {
- SET(CPU_CHECK no)
- }
- macro ADDINCLSELF(FOR="") {
- when($FOR) {
- ADDINCL+=FOR $FOR ${MODDIR}
- }
- otherwise {
- ADDINCL+=${MODDIR}
- }
- }
- COMPILE_OUT_SUFFIX=
- _COMPILE_OUTPUTS=${output;suf=${COMPILE_OUT_SUFFIX}${OBJECT_SUF}:SRC}
- _COMPILE_TIME_TRACE_OUTPUTS=${noauto;output;suf=${COMPILE_OUT_SUFFIX}${OBJECT_SUF}.time_trace.json:SRC}
- macro SET_COMPILE_OUTPUTS_MODIFIERS(NOREL?"norel;output":"output") {
- SET(_COMPILE_OUTPUTS \${$NOREL;suf=\${OBJECT_SUF}:SRC})
- SET(_COMPILE_TIME_TRACE_OUTPUTS \${noauto;$NOREL;suf=\${OBJECT_SUF}.time_trace.json:SRC})
- }
- macro _ADD_EXTRA_FLAGS_IMPL(GENERATE?" && target_commands-ITEM && target_commands-macro set_property && target_commands-args SOURCE ${input:SRC} APPEND PROPERTY COMPILE_OPTIONS ":"", Args...) {
- .SEM=$GENERATE $Args
- }
- macro _ADD_EXTRA_FLAGS(COMPILE_OUT_SUFFIX="", Args...) {
- .SEM=$_ADD_EXTRA_FLAGS_IMPL(${pre=GENERATE :Args})
- }
- _EMPTY_CMD=
- macro _SRC("swg", SRC, SRCFLAGS...) {
- .CMD=${_SWIG_CMD}
- .PEERDIR=${_SWIG_PEERDIR}
- .SEM=conan-tool_requires swig/4.0.2 && conan-imports 'bin, *swig* -> ./bin' ${hide;input:SRC} ${_SWIG_SEM_TO_MODULE_LINK}
- }
- RODATA_SYMBOL_PREFIX=
- when ($DARWIN == "yes" || $IOS == "yes" || ($WINDOWS == "yes" && $ARCH_TYPE_32 == "yes")) {
- RODATA_SYMBOL_PREFIX=_
- }
- RODATA_ELF_FLAGS=
- when($LINUX == "yes" || $ANDROID == "yes") {
- RODATA_ELF_FLAGS=--elf
- }
- RODATA_COMPILE=$YMAKE_PYTHON3 ${input:"build/scripts/rodata2asm.py"} $RODATA_ELF_FLAGS ${RODATA_SYMBOL_PREFIX}${noext;nopath:SRC} ${input:SRC} ${tmp;suf=.asm:SRC} ${hide:OBJECT_SUF} && $_SRC_yasm_helper(${tmp;suf=.asm:SRC})
- when (($ARCH_AARCH64 || $ARCH_ARM || $ARCH_PPC64LE || $ARCH_RISCV32) == "yes") {
- RODATA_COMPILE=$YMAKE_PYTHON3 ${input:"build/scripts/rodata2cpp.py"} ${noext;nopath:SRC} ${input:SRC} ${output;suf=.cpp:SRC}
- }
- macro _SRC("rodata", SRC, SRCFLAGS...) {
- .CMD=$RODATA_COMPILE ${hide;kv:"p RD"} ${hide;kv:"pc light-green"}
- .SEM=target_macroses-ITEM && target_macroses-macro target_rodata_sources && target_macroses-args PRIVATE ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} ${hide;input:"build/scripts/rodata2cpp.py"}
- }
- macro _SRC_S_ASM(SRC, SRCFLAGS...) {
- .CMD=$C_COMPILER $C_FLAGS_PLATFORM $CFLAGS $SFLAGS $SRCFLAGS -c -o ${output;suf=.o:SRC} ${input:SRC} $TOOLCHAIN_ENV ${pre=-I:_C__INCLUDE} ${hide;kv:"p AS"} ${hide;kv:"pc light-green"}
- .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} && project_languages ASM
- }
- macro _SRC("S", SRC, SRCFLAGS...) {
- .CMD=$_SRC_S_ASM($SRC $SRCFLAGS)
- .SEM=$_SRC_S_ASM($SRC, $SRCFLAGS)
- .STRUCT_CMD=yes
- }
- macro _SRC("s", SRC, SRCFLAGS...) {
- .CMD=$_SRC_S_ASM($SRC $SRCFLAGS)
- .SEM=$_SRC_S_ASM($SRC, $SRCFLAGS)
- .STRUCT_CMD=yes
- }
- macro _SRC("s79", SRC, SRCFLAGS...) {
- .CMD=$_SRC(S, $SRC $SRCFLAGS -x assembler-with-cpp)
- }
- macro _SRC("mm", SRC, SRCFLAGS...) {
- .CMD=$C_COMPILER $C_FLAGS_PLATFORM -x objective-c++ -fobjc-arc -fobjc-abi-version=2 -c -o ${output;suf=.o:SRC} ${input:SRC} $CXXFLAGS ${pre=-I:_C__INCLUDE} ${SRCFLAGS} ${hide;kv:"p CC"} ${hide;kv:"pc light-green"} $TOOLCHAIN_ENV
- .STRUCT_CMD=yes
- }
- macro _SRC("sfdl", SRC, SRCFLAGS...) {
- .CMD=$CXX_COMPILER $C_FLAGS_PLATFORM $CXXFLAGS $SFDL_FLAG ${SRCFLAGS} ${input:SRC} && ${tool:"tools/calcstaticopt"} -i ${tmp;suf=.tmp:SRC} -a $ARCADIA_ROOT ${stdout;output;defext=.inc;nopath;noext:SRC} ${hide;kv:"p SF"} ${hide;kv:"pc yellow"} $TOOLCHAIN_ENV
- .STRUCT_CMD=yes
- }
- macro _XS_SRCS(SRC, TYPEMAPS[], SRCFLAGS...) {
- .CMD=$PERL_LD_LIBRARY_PATH $PERL $PERL_INCLUDE ${suf=/ExtUtils/xsubpp:PERL_PRIVLIB} -typemap ${suf=/ExtUtils/typemap:PERL_PRIVLIB} $PERLSUFFIX $XSUBPPFLAGS ${pre=-typemap :TYPEMAPS} ${hide;input:TYPEMAPS} ${SRCFLAGS} ${input:SRC} ${PERLOUTPUT} ${hide;kv:"p XS"} ${hide;kv:"pc yellow"}
- }
- macro _SRC("xs", SRC, SRCFLAGS...) {
- .CMD=$_XS_SRCS($SRC TYPEMAPS $_XSTYPEMAPS $SRCFLAGS)
- }
- macro _SRC("gperf", SRC, SRCFLAGS...) {
- .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/gperf"} $GP_FLAGS ${SRCFLAGS} ${pre=-Nin_;suf=_set;nopath;noallext:SRC} ${input:SRC} ${stdout;output;nopath;noext;defext=.gperf.cpp:SRC} ${hide;kv:"p GP"} ${hide;kv:"pc yellow"}
- }
- macro _SRC("rl", SRC, SRCFLAGS...) {
- .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/ragel5/ragel"} $RAGEL_FLAGS ${SRCFLAGS} -o ${tmp:SRC.tmp} ${input:SRC} && $RUN_NO_SANITIZE ${tool:"contrib/tools/ragel5/rlgen-cd"} $RLGEN_FLAGS -o ${output;nopath;noext;defext=.rl5.cpp:SRC} ${tmp:SRC.tmp} ${hide;kv:"p R5"} ${hide;kv:"pc yellow"}
- }
- macro _SRC("xsyn", SRC, SRCFLAGS...) {
- .CMD=$YMAKE_PYTHON ${input:"library/cpp/xml/parslib/xsyn2ragel.py"} ${input:SRC} ${input:"library/cpp/xml/parslib/xmlpars.xh"} dontuse ${stdout;output;suf=.h.rl5:SRC} ${hide;kv:"p XN"} ${hide;kv:"pc yellow"}
- }
- macro _SRC("rl5", SRC, SRCFLAGS...) {
- .CMD=$_SRC(rl $SRC $SRCFLAGS)
- }
- macro _SRC("asp", SRC, SRCFLAGS...) {
- .CMD=$RUN_NO_SANITIZE ${tool:"tools/html2cpp"} ${input:SRC} ${output:SRC.cpp} ${hide;kv:"p HT"} ${hide;kv:"pc yellow"}
- }
- macro _SRC("rl6", SRC, SRCFLAGS...) {
- .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/ragel6"} $RAGEL6_FLAGS ${SRCFLAGS} -L -I${ARCADIA_ROOT} -o ${output;nopath;noext;defext=.rl6.cpp:SRC} ${input:SRC} ${hide;kv:"p R6"} ${hide;kv:"pc yellow"}
- .SEM=target_macroses-ITEM && target_macroses-macro target_ragel_lexers && target_macroses-args PRIVATE ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $RAGEL6_FLAGS ${SRCFLAGS} && platform_vars-RAGEL_FLAGS "-L -I $S/" && conan-tool_requires ragel/6.10 && conan-imports 'bin, ragel* -> ./bin' ${hide;input:"build/scripts/run_tool.py"}
- }
- macro _SRC("xsyn", SRC, SRCFLAGS...) {
- .CMD=$YMAKE_PYTHON ${input:"library/cpp/xml/parslib/xsyn2ragel.py"} ${input:SRC} ${input:"library/cpp/xml/parslib/xmlpars.xh"} dontuse ${stdout;output:SRC.h.rl5} ${hide;kv:"p XN"} ${hide;kv:"pc yellow"}
- }
- macro _SRC("ev", SRC, SRCFLAGS...) {
- .CMD=$EVLOG_CMD($SRC)
- .SEM=$EVLOG_CMD($SRC)
- }
- macro _SRC("proto", SRC, SRCFLAGS...) {
- .CMD=$PROTO_CMD($SRC)
- .SEM=$PROTO_CMD($SRC)
- }
- macro _SRC("gztproto", SRC, SRCFLAGS...) {
-
-
- .CMD=${tool:"dict/gazetteer/converter"} -I$PROTOBUF_INCLUDE_PATH ${pre="-I":_PROTO__INCLUDE} -I$ARCADIA_ROOT ${SRCFLAGS} ${input:SRC} ${output;nopath;noext;norel:SRC.proto} ${hide;kv:"p GZ"} ${hide;kv:"pc yellow"}
- .PEERDIR=kernel/gazetteer/proto
- }
- macro _SRC("cfgproto", SRC, SRCFLAGS...) {
- .CMD=$_CPP_CFGPROTO_CMD($SRC)
- }
- macro _SRC("pyx", SRC, SRCFLAGS...) {
-
- .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:SRC} -o ${output;tobindir;suf=${OBJ_SUF}.cpp:SRC} $CYTHON_OUTPUT_INCLUDES ${SRCFLAGS} ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- .SEM=target_options-privates-ITEM && target_options-privates-option target_cython_sources && target_options-privates-args ${input:Src} ${hide;output;tobindir:Src.fake.o} && target_macroses-ITEM && target_macroses-macro target_cython_options && target_macroses-args $CYTHON_OPTIONS --cplus ${SRCFLAGS} ${CYTHON_CPP_OUTPUT_INCLUDES} && target_macroses-ITEM && target_macroses-macro target_cython_include_directories && target_macroses-args $_CYTHON__INCLUDE && target_macroses-ITEM && target_macroses-macro set_python_type_for_cython && target_macroses-args $PYTHON_TYPE_FOR_CYTHON
- .ADDINCL=FOR cython contrib/tools/cython/Cython/Includes
- }
- macro _SRC("in", SRC, SRCFLAGS...) {
- .CMD=$CONFIGURE_FILE(${SRC} ${nopath;noext:SRC})
- .SEM=$CONFIGURE_FILE(${SRC} ${nopath;noext:SRC})
- }
- macro MANUAL_GENERATION(Outs...) {
- .SEM=IGNORED ${hide;noauto;output:Outs}
- }
- macro _SRC("sc", SRC, SRCFLAGS...) {
- .CMD=${tool:"tools/domschemec"} --in ${input:SRC} --out ${output;norel:SRC.h} ${hide;output_include:"library/cpp/domscheme/runtime.h"} ${SRCFLAGS} ${hide;kv:"p SC"} ${hide;kv:"pc yellow"}
- .PEERDIR=library/cpp/domscheme
- }
- macro _SRC("ssqls", SRC, SRCFLAGS...) {
- .CMD=${tool:"metrika/core/tools/ssqls"} ${input;notransformbuilddir:SRC} -S $ARCADIA_ROOT -B $ARCADIA_BUILD_ROOT $SRCFLAGS ${output;noext;hide:SRC.cpp} ${output;noext;hide:SRC.h} ${hide;kv:"p SS"} ${hide;kv:"pc yellow"}
- }
- macro _SRC("f", SRC, SRCFLAGS...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/f2c.py"} -t ${tool:"contrib/tools/f2c"} -c ${input:SRC} -o ${output:SRC.c} ${hide;output_include:"f2c.h"} ${hide;kv:"p FT"} ${hide;kv:"pc light-green"}
- .PEERDIR=contrib/libs/libf2c
- .ADDINCL=contrib/libs/libf2c
- }
- _SRC_CPP_TOOLCHAIN_INFO_PEER=
- macro _SRC("cpp", SRC, SRCFLAGS...) {
- .CMD=$_SRC_cpp_new($SRC $SRCFLAGS)
- .PEERDIR=$_SRC_CPP_TOOLCHAIN_INFO_PEER
- .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS)
- .STRUCT_CMD=yes
- }
- macro _SRC("cxx", SRC, SRCFLAGS...) {
- .CMD=$_SRC_cpp_new($SRC $SRCFLAGS)
- .PEERDIR=$_SRC_CPP_TOOLCHAIN_INFO_PEER
- .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS)
- .STRUCT_CMD=yes
- }
- macro _SRC("cc", SRC, SRCFLAGS...) {
- .CMD=$_SRC_cpp_new($SRC $SRCFLAGS)
- .PEERDIR=$_SRC_CPP_TOOLCHAIN_INFO_PEER
- .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS)
- .STRUCT_CMD=yes
- }
- macro _SRC("auxcpp", SRC, SRCFLAGS...) {
- .CMD=$_SRC_cpp_new($SRC $_FORCE_CPP_FLAGS $SRCFLAGS)
- .PEERDIR=$_SRC_CPP_TOOLCHAIN_INFO_PEER
- .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($_FORCE_CPP_FLAGS $SRCFLAGS)
- .STRUCT_CMD=yes
- }
- macro _SRC("C", SRC, SRCFLAGS...) {
- .CMD=$_SRC_cpp_new($SRC $SRCFLAGS)
- .PEERDIR=$_SRC_CPP_TOOLCHAIN_INFO_PEER
- .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS)
- .STRUCT_CMD=yes
- }
- macro _SRC("c", SRC, SRCFLAGS...) {
- .CMD=$_SRC_c_new($SRC $SRCFLAGS)
- .PEERDIR=$_SRC_CPP_TOOLCHAIN_INFO_PEER
- .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS $USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL)
- .STRUCT_CMD=yes
- }
- macro _SRC("m", SRC, SRCFLAGS...) {
- .CMD=$_SRC(c $SRC $SRCFLAGS)
- }
- MASM_SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} \
- && dir_macroses-ITEM && dir_macroses-macro curdir_masm_flags && dir_macroses-args ${MASMFLAGS}
- YASM_SEM=target_macroses-ITEM && target_macroses-macro target_yasm_source && target_macroses-args PRIVATE ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS ${pre=-P :PREINCLUDES} ${hide;input:"build/scripts/run_tool.py"} \
- && platform_vars-YASM_FLAGS "-f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D _YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE" \
- && project_languages ASM \
- && conan-tool_requires yasm/1.3.0 && conan-imports 'bin, *yasm* -> ./bin' && conan-imports 'bin, ytasm* -> ./bin'
- ASM_SEM=target_macroses-ITEM && target_macroses-macro target_yasm_source && target_macroses-args PRIVATE ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS ${hide;input:"build/scripts/run_tool.py"} \
- && platform_vars-YASM_FLAGS "-f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D _YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE" \
- && project_languages ASM \
- && conan-tool_requires yasm/1.3.0 && conan-imports 'bin, *yasm* -> ./bin' && conan-imports 'bin, ytasm* -> ./bin'
- macro _SRC("masm", SRC, SRCFLAGS...) {
- .CMD=$_SRC_masm($SRC $SRCFLAGS)
- .SEM=$MASM_SEM
- }
- macro _SRC("yasm", SRC, SRCFLAGS...) {
- .CMD=$_SRC_yasm($SRC $SRCFLAGS PREINCLUDES $YASM_PREINCLUDES_VALUE)
- .SEM=$YASM_SEM
- }
- macro _SRC("asm", SRC, SRCFLAGS...) {
- .CMD=$_SRC_ASM($SRC $SRCFLAGS PREINCLUDES $YASM_PREINCLUDES_VALUE)
- .SEM=$ASM_SEM
- }
- macro _SRC("lua", SRC, SRCFLAGS...) {
- .CMD=${cwd:LUAJIT_PATH} ${tool:"contrib/libs/luajit/compiler"} -b -g ${input:SRC} ${SRCFLAGS} ${global;output;suf=.o:SRC} ${hide;kv:"p LJ"} ${hide;kv:"pc light-cyan"}
- .PEERDIR=$LUAJIT_PATH
- }
- NVCC_CFLAGS=
- when ($IDE_MSVS_CALL == "yes") {
-
- NVCC_CFLAGS+=/Fd$(TEMP)
- }
- when ($MSVC == "yes") {
- NVCC_STD=/std:c++${NVCC_STD_VER}
- }
- otherwise {
- NVCC_STD=-std=c++${NVCC_STD_VER}
- }
- macro _SRC("cu", SRC, SRCFLAGS...) {
- .CMD=$_SRC_CU_CMD
- .SEM=target_options-privates-ITEM && target_options-privates-option target_cuda_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} && platform_vars-CMAKE_CUDA_STANDARD ${quo:NVCC_STD_VER} && target_macroses-ITEM && target_macroses-macro target_cuda_flags && target_macroses-args $CUDA_NVCC_FLAGS && target_macroses-ITEM && target_macroses-macro target_cuda_cflags && target_macroses-args $USER_CXXFLAGS $SRCFLAGS $_SEM_EXTRA_CXX_FLAGS
- .STRUCT_CMD=yes
- .PEERDIR=$_SRC_CU_PEERDIR
- }
- macro _SRC("fbs", SRC, SRCFLAGS...) {
- .CMD=$FBS_CMD($SRC, $SRCFLAGS)
- .SEM=$FBS_CMD($SRC, $SRCFLAGS)
- }
- macro _SRC("fbs64", SRC, SRCFLAGS...) {
- .CMD=$_CPP_FLATC64_CMD($SRC, $SRCFLAGS)
- }
- macro _SRC("pysrc", SRC, SRCFLAGS...) {
- .CMD=$_SRC_PYSRC($SRC, $SRCFLAGS)
- }
- macro _SRC("make", SRC, SRCFLAGS...) {
- .CMD=
- }
- @import "${CONF_ROOT}/conf/bison_lex.conf"
- macro _SRC_py2src(SRC, SRCFLAGS...) {
- .CMD=${cwd:BINDIR} $YMAKE_PYTHON3 ${input:"build/scripts/compile_pysrc.py"} --input ${input:SRC} --output ${output;noext;suf=.py2_raw.cpp:SRC} --rescompiler ${tool:"tools/rescompiler"} py2 --python $(PYTHON)/python --py_compile ${input:"build/scripts/py_compile.py"} ${hide;kv:"p P2"} ${hide;kv:"pc light-green"}
- }
- macro _SRC_py3src(SRC, SRCFLAGS...) {
- .CMD=${cwd:BINDIR} $YMAKE_PYTHON3 ${input:"build/scripts/compile_pysrc.py"} --input ${input:SRC} --output ${output;noext;suf=.py3_raw.cpp:SRC} --rescompiler ${tool:"tools/rescompiler"} py3 --pycc ${tool:"tools/py3cc"} ${hide;kv:"p P3"} ${hide;kv:"pc light-green"}
- }
- when ($PYTHON3 == "yes") {
- _SRC_PYSRC_CMDLINE=$_SRC_py3src($SRC $SRCFLAGS)
- }
- elsewhen ($PYTHON2 == "yes") {
- _SRC_PYSRC_CMDLINE=$_SRC_py2src($SRC $SRCFLAGS)
- }
- otherwise {
- _SRC_PYSRC_CMDLINE=
- }
- macro _SRC_PYSRC(SRC, SRCFLAGS...) {
- .CMD=$_SRC_PYSRC_CMDLINE
- }
- macro _SRC_c_nodeps(SRC, OUTFILE, INC...) {
-
- .CMD=$_SRC_C_NODEPS_CMD
- }
- when ($CLANG == "yes") {
- _LANG_CFLAGS_RL=-Wno-implicit-fallthrough -fno-profile-instr-generate -fno-coverage-mapping
- _LANG_CFLAGS_SWG=-Wno-deprecated-declarations -fno-profile-instr-generate -fno-coverage-mapping
- _LANG_CFLAGS_LEX=-Wno-unused-variable -fno-profile-instr-generate -fno-coverage-mapping
- _LANG_CFLAGS_BISON=-Wno-unused-but-set-variable -Wno-deprecated-copy -fno-profile-instr-generate -fno-coverage-mapping
- }
- otherwise {
- _LANG_CFLAGS_RL=-Wno-implicit-fallthrough
- _LANG_CFLAGS_SWG=-Wno-deprecated-declarations
- _LANG_CFLAGS_LEX=-Wno-unused-variable
- _LANG_CFLAGS_BISON=-Wno-unused-but-set-variable -Wno-deprecated-copy
- }
- _LANG_CFLAGS_VALUE_NEW=
- when ($CLANG == "yes" || $CLANG_CL == "yes" || $GCC == "yes") {
- _LANG_CFLAGS_VALUE_NEW=\
- ${pre=$_LANG_CFLAGS_BISON;clear;ext=.y;noext;input:SRC} \
- ${pre=$_LANG_CFLAGS_BISON;clear;ext=.ypp;noext;input:SRC} \
- ${pre=$_LANG_CFLAGS_RL;clear;ext=.rl5;noext;input:SRC} \
- ${pre=$_LANG_CFLAGS_RL;clear;ext=.rl6;noext;input:SRC} \
- ${pre=$_LANG_CFLAGS_RL;clear;ext=.pyx;noext;input:SRC} \
- ${pre=$_LANG_CFLAGS_SWG;clear;ext=.swg;noext;input:SRC} \
- ${pre=$_LANG_CFLAGS_LEX;clear;ext=.l;noext;input:SRC}
- }
- SCU_NAME_KV_NEW=
- SCU_NAME_KV_NEW_BODY=scu_name ${input:SRC}
- when ($CLANG_COVERAGE && $CLANG_COVERAGE != "no" && $USE_SCU_VALUE == "yes") {
- SCU_NAME_KV_NEW=${hide;kv:SCU_NAME_KV_NEW_BODY}
- }
- macro _ADD_SCU_NAME_NEW(KV_VAL) {
- .CMD=$SCU_NAME_KV_NEW
- }
- macro _SRC_cpp_new(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) {
- .CMD=$_SRC_CPP_CMD_NEW && $_ADD_SCU_NAME_NEW(${input:SRC})
- }
- macro _SRC_c_new(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) {
- .CMD=$_SRC_C_CMD_NEW $_ADD_SCU_NAME_NEW(${input:SRC})
- }
- macro _SRC_m(SRC, SRCFLAGS...) {
- .CMD=$_SRC_M_CMD
- }
- macro _SRC_masm(SRC, SRCFLAGS...) {
- .CMD=$_SRC_MASM_CMD
- }
- macro COMPILE_LUA(Src, NAME="") {
- .CMD=$_SRC(lua, $Src, ${pre=-n :NAME})
- }
- macro _SRC_lua_21(SRC, SRCFLAGS...) {
- .CMD=${cwd:LUAJIT_21_PATH} ${tool:"contrib/libs/luajit_21/compiler"} -b -g ${input:SRC} ${SRCFLAGS} ${global;output;suf=.o:SRC} ${hide;kv:"p LJ"} ${hide;kv:"pc light-cyan"}
- .PEERDIR=$LUAJIT_21_PATH
- }
- macro COMPILE_LUA_21(Src, NAME="") {
- .CMD=$_SRC_lua_21($Src, ${pre=-n :NAME})
- }
- macro _SRC_lua_openresty(SRC, SRCFLAGS...) {
- .CMD=${cwd:LUAJIT_OPENRESTY_PATH} ${tool:"contrib/libs/luajit_openresty/compiler"} -b -g ${input:SRC} ${SRCFLAGS} ${global;output;suf=.o:SRC} ${hide;kv:"p LJ"} ${hide;kv:"pc light-cyan"}
- .PEERDIR=$LUAJIT_OPENRESTY_PATH
- }
- macro COMPILE_LUA_OPENRESTY(Src, NAME="") {
- .CMD=$_SRC_lua_openresty($Src, ${pre=-n :NAME})
- }
- GETTEXT_KEEP_PATH=no
- _MO_OUTPUT=
- when ($GETTEXT_KEEP_PATH == "yes") {
- _MO_OUTPUT=${noauto;output;norel;noext:SRC.mo}
- }
- otherwise {
- _MO_OUTPUT=${noauto;output;nopath;noext;tobindir:SRC.mo}
- }
- macro _SRC("po", SRC, SRCFLAGS...) {
- .CMD=$YMAKE_PYTHON ${input:"contrib/tools/python/src/Tools/i18n/msgfmt.py"} -o $_MO_OUTPUT ${input:SRC}
- }
- YDL_FLAGS= --force-color -I ${ARCADIA_ROOT}
- YDL_DESC_FLAGS=
- macro _SRC("ydl", SRC, SRCFLAGS...) {
- .CMD=${tool:"statbox/ydl/compiler/tooling/ydl/bin"} c $YDL_FLAGS --cpp-output-header ${output;suf=.h:SRC} --cpp-output-source ${output;suf=.cpp:SRC} ${input:SRC} ${hide;output_include:"statbox/ydl/runtime/cpp/gen_support/standard_includes.h"} ${hide;kv:"p YDL"} ${hide;kv:"pc yellow"}
- .PEERDIR+=statbox/ydl/runtime/cpp
- }
- macro BUILD_YDL_DESC(Input, Symbol, Output) {
- .CMD=${tool:"statbox/ydl/compiler/tooling/ydl/bin"} ti $YDL_FLAGS $YDL_DESC_FLAGS -o ${noauto;output:Output} ${input:Input} ${Symbol} ${hide;kv:"p YDL"} ${hide;kv:"pc yellow"}
- }
- macro YDL_DESC_USE_BINARY() {
- YDL_DESC_FLAGS_BINARY= --binary
- SET_APPEND(YDL_DESC_FLAGS $YDL_DESC_FLAGS_BINARY)
- }
- macro SRC(FILE, FLAGS...) {
- _SRC(${lastext:FILE} $FILE $FLAGS)
- }
- macro SRCS(FILES...) {
- foreach (FILE : $FILES) {
- _SRC(${lastext:FILE} $FILE)
- }
- }
- macro _SRC_C_CUSTOM_FLAGS(SRC, COMPILE_OUT_SUFFIX, CUSTOM_FLAGS...) {
- .CMD=$_SRC_c_new($SRC COMPILE_OUT_SUFFIX ${COMPILE_OUT_SUFFIX} ${CUSTOM_FLAGS})
- .SEM=target_macroses-ITEM && target_macroses-macro target_sources_custom && target_macroses-args $COMPILE_OUT_SUFFIX SRCS ${input:SRC} ${hide;output;suf=${COMPILE_OUT_SUFFIX}.o:SRC} CUSTOM_FLAGS $CUSTOM_FLAGS $USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL
- .STRUCT_CMD=yes
- }
- macro _SRC_CPP_CUSTOM_FLAGS(SRC, COMPILE_OUT_SUFFIX, CUSTOM_FLAGS...) {
- .CMD=$_SRC_cpp_new($SRC COMPILE_OUT_SUFFIX ${COMPILE_OUT_SUFFIX} ${CUSTOM_FLAGS})
- .SEM=target_macroses-ITEM && target_macroses-macro target_sources_custom && target_macroses-args $COMPILE_OUT_SUFFIX SRCS ${input:SRC} ${hide;output;suf=${COMPILE_OUT_SUFFIX}.o:SRC} CUSTOM_FLAGS $CUSTOM_FLAGS
- .STRUCT_CMD=yes
- }
- macro _SRC_CUSTOM_C_CPP(EXT, MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) {
- MESSAGE(FATAL_ERROR macro [[alt1]]$MACRO_NAME[[rst]] does not support files with [[imp]].$EXT[[rst]] extension)
- }
- macro _SRC_CUSTOM_C_CPP("c", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) {
- _SRC_C_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS)
- }
- macro _SRC_CUSTOM_C_CPP("cpp", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) {
- _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS)
- }
- macro _SRC_CUSTOM_C_CPP("cxx", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) {
- _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS)
- }
- macro _SRC_CUSTOM_C_CPP("cc", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) {
- _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS)
- }
- macro _SRC_CUSTOM_C_CPP("C", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) {
- _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS)
- }
- macro SRC_C_SSE2(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE2 $FILE .sse2 $SSE2_CFLAGS $FLAGS)
- }
- macro SRC_C_SSE3(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE3 $FILE .sse3 $SSE3_CFLAGS $FLAGS)
- }
- macro SRC_C_SSSE3(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSSE3 $FILE .ssse3 $SSSE3_CFLAGS $FLAGS)
- }
- macro SRC_C_SSE4(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE4 $FILE .sse4 $SSE4_CFLAGS $FLAGS)
- }
- macro SRC_C_SSE41(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE41 $FILE .sse41 $SSE41_CFLAGS $FLAGS)
- }
- macro SRC_C_AVX(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AVX $FILE .avx $AVX_CFLAGS $FLAGS)
- }
- macro SRC_C_AVX2(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AVX2 $FILE .avx2 $AVX2_CFLAGS $FLAGS)
- }
- macro SRC_C_AVX512(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AVX512 $FILE .avx512 $AVX512_CFLAGS $FLAGS)
- }
- macro SRC_C_AMX(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AMX $FILE .amx $AMX_CFLAGS $FLAGS)
- }
- macro SRC_C_XOP(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_XOP $FILE .xop $XOP_CFLAGS $FLAGS)
- }
- macro SRC_C_PCLMUL(FILE, FLAGS...) {
- _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_PCLMUL $FILE .pclmul $PCLMUL_CFLAGS $FLAGS )
- }
- macro _SRC_STRICT_C_CPP(EXT, MACRO_NAME, FILE, FLAGS...) {
- MESSAGE(FATAL_ERROR macro [[alt1]]$MACRO_NAME[[rst]] does not support files with [[imp]].$EXT[[rst]] extension)
- }
- macro _SRC_STRICT_C_CPP("c", MACRO_NAME, FILE, FLAGS...) {
- _SRC(c $FILE $FLAGS)
- }
- macro _SRC_STRICT_C_CPP("cpp", MACRO_NAME, FILE, FLAGS...) {
- _SRC(cpp $FILE $FLAGS)
- }
- macro _SRC_STRICT_C_CPP("cxx", MACRO_NAME, FILE, FLAGS...) {
- _SRC(cpp $FILE $FLAGS)
- }
- macro _SRC_STRICT_C_CPP("cc", MACRO_NAME, FILE, FLAGS...) {
- _SRC(cpp $FILE $FLAGS)
- }
- macro _SRC_STRICT_C_CPP("C", MACRO_NAME, FILE, FLAGS...) {
- _SRC(cpp $FILE $FLAGS)
- }
- macro SRC_C_PIC(FILE, FLAGS...) {
- _SRC_STRICT_C_CPP(${lastext:FILE} SRC_C_PIC $FILE $PIC_CFLAGS $FLAGS)
- }
- macro SRC_C_NO_LTO(FILE, FLAGS...) {
- _SRC_STRICT_C_CPP(${lastext:FILE} SRC_C_NO_LTO $FILE $NO_LTO_CFLAGS $FLAGS)
- }
- macro BUILDWITH_CYTHON_CPP(Src, Options...) {
- .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir;suf=${OBJ_SUF}.cpp:Src} $CYTHON_OUTPUT_INCLUDES ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- .SEM=target_options-privates-ITEM && target_options-privates-option target_cython_sources && target_options-privates-args ${input:Src} ${hide;output;tobindir:Src.fake.o} && target_macroses-ITEM && target_macroses-macro target_cython_options && target_macroses-args $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} && target_macroses-ITEM && target_macroses-macro target_cython_include_directories && target_macroses-args $_CYTHON__INCLUDE && target_macroses-ITEM && target_macroses-macro set_python_type_for_cython && target_macroses-args $PYTHON_TYPE_FOR_CYTHON
- ADDINCL(FOR cython contrib/tools/cython/Cython/Includes)
- }
- macro _BUILDWITH_CYTHON_CPP_DEP(Src, Dep, Options...) {
- .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${hide;input:Dep} -o ${output;tobindir;suf=${OBJ_SUF}.cpp:Src} $CYTHON_OUTPUT_INCLUDES ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- .SEM=target_options-privates-ITEM && target_options-privates-option target_cython_sources && target_options-privates-args ${input:Src} ${hide;input:Dep} ${hide;output;tobindir:Src.fake.o} && target_macroses-ITEM && target_macroses-macro target_cython_options && target_macroses-args $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} && target_macroses-ITEM && target_macroses-macro target_cython_include_directories && target_macroses-args $_CYTHON__INCLUDE && target_macroses-ITEM && target_macroses-macro set_python_type_for_cython && target_macroses-args $PYTHON_TYPE_FOR_CYTHON
- ADDINCL(FOR cython contrib/tools/cython/Cython/Includes)
- }
- macro _BUILDWITH_CYTHON_CPP_H(Src, Dep, Options...) {
- .CMD=$RUN_CYTHON_SCRIPT_H $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${hide;input:Dep} -o ${output;noext;tobindir:Src.cpp} ${hide;output;addincl;noext;tobindir:Src.h} ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- ADDINCL(FOR cython contrib/tools/cython/Cython/Includes)
- }
- macro BUILDWITH_CYTHON_C(Src, Options...) {
- .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir;suf=${OBJ_SUF}.c:Src} $CYTHON_OUTPUT_INCLUDES ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- .SEM=target_options-privates-ITEM && target_options-privates-option target_cython_sources && target_options-privates-args ${input:Src} ${hide;output;tobindir:Src.fake.o} && target_macroses-ITEM && target_macroses-macro target_cython_options && target_macroses-args $CYTHON_OPTIONS ${Options} ${CYTHON_OUTPUT_INCLUDES} && target_macroses-ITEM && target_macroses-macro target_cython_include_directories && target_macroses-args $_CYTHON__INCLUDE && target_macroses-ITEM && target_macroses-macro set_python_type_for_cython && target_macroses-args $PYTHON_TYPE_FOR_CYTHON
- ADDINCL(FOR cython contrib/tools/cython/Cython/Includes)
- }
- macro _BUILDWITH_CYTHON_C_DEP(Src, Dep, Options...) {
- .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${hide;input:Dep} -o ${output;tobindir;suf=${OBJ_SUF}.c:Src} $CYTHON_OUTPUT_INCLUDES ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- .SEM=target_options-privates-ITEM && target_options-privates-option target_cython_sources && target_options-privates-args ${input:Src} ${hide;input:Dep} ${hide;output;tobindir:Src.fake.o} && target_macroses-ITEM && target_macroses-macro target_cython_options && target_macroses-args $CYTHON_OPTIONS ${Options} ${CYTHON_OUTPUT_INCLUDES} && target_macroses-ITEM && target_macroses-macro target_cython_include_directories && target_macroses-args $_CYTHON__INCLUDE && target_macroses-ITEM && target_macroses-macro set_python_type_for_cython && target_macroses-args $PYTHON_TYPE_FOR_CYTHON
- ADDINCL(FOR cython contrib/tools/cython/Cython/Includes)
- }
- macro _BUILDWITH_CYTHON_C_H(Src, Dep, Options...) {
- .CMD=$RUN_CYTHON_SCRIPT_H $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${hide;input:Dep} -o ${output;noext;tobindir:Src.c} ${hide;output;addincl;noext;tobindir:Src.h} $CYTHON_OUTPUT_INCLUDES ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- ADDINCL(FOR cython contrib/tools/cython/Cython/Includes)
- }
- macro _BUILDWITH_CYTHON_C_API_H(Src, Dep, Options...) {
- .CMD=$RUN_CYTHON_SCRIPT_H $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${hide;input:Dep} -o ${output;noext;tobindir:Src.c} ${hide;output;addincl;noext;tobindir:Src.h} ${hide;output;addincl;noext;defext=_api.h;tobindir:Src} $CYTHON_OUTPUT_INCLUDES ${hide;kv:"p CY"} ${hide;kv:"pc yellow"}
- ADDINCL(FOR cython contrib/tools/cython/Cython/Includes)
- }
- macro BUILDWITH_RAGEL6(Src, Options...) {
- .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/ragel6"} $RAGEL6_FLAGS ${Options} -I${ARCADIA_ROOT} -o ${output;nopath;noext;defext=.rl6.cpp:Src} ${input:Src} ${hide;kv:"p R6"} ${hide;kv:"pc yellow"}
- }
- macro _PY_REGISTER(Func) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_py_reg.py"} $Func ${noauto;output:Func.reg.cpp} ${hide;kv:"p PY"} ${hide;kv:"pc yellow"}
- SRCS(GLOBAL $Func.reg.cpp)
- }
- macro _PY3_REGISTER(Func) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_py3_reg.py"} $Func ${noauto;output:Func.reg3.cpp} ${hide;kv:"p PY"} ${hide;kv:"pc yellow"}
- SRCS(GLOBAL $Func.reg3.cpp)
- }
- macro _PY_COMPILE_BYTECODE(SrcX, Src, Dst) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/py_compile.py"} $SrcX ${input:Src} ${noauto;output:Dst.yapyc} ${hide;kv:"p PY"} ${hide;kv:"pc yellow"}
- }
- macro _PY3_COMPILE_BYTECODE(SrcX, Src, Dst) {
- .CMD=${env:"PYTHONHASHSEED=0"} ${tool:"tools/py3cc"} $SrcX ${input:Src} ${noauto;output:Dst.yapyc3} ${hide;kv:"p PY"} ${hide;kv:"pc yellow"}
- }
- macro _ARCHIVE_SEM_HELPER(FLAGS[], OUT, Files...) {
- .SEM=target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args OUTPUT ${OUT} DEPENDS $ARCH_TOOL ${join= :Files} COMMAND $ARCH_TOOL $FLAGS ${join=\: :Files}: -o ${OUT}
- }
- macro ARCHIVE_ASM(NAME="", DONTCOMPRESS?"-p":"", Files...) {
- .CMD=$ARCH_TOOL -q $DONTCOMPRESS ${input;join=\: :Files}: -o ${output;suf=$OBJ_SUF.rodata:NAME} ${hide;kv:"p AR"} ${hide;kv:"pc light-cyan"}
- .SEM=$_ARCHIVE_SEM_HELPER(${output;suf=$OBJ_SUF.rodata:NAME} ${input:Files} FLAGS -q $DONTCOMPRESS)
- }
- macro PIRE_INLINE_CMD(SRC) {
- .CMD=${tool:"library/cpp/regex/pire/inline"} -o ${output:SRC} ${input:SRC} ${hide;output_include:SRC} ${hide;kv:"p PI"} ${hide;kv:"pc yellow"}
- }
- macro PIRE_INLINE(FILES...) {
- foreach (FILE : $FILES) {
- PIRE_INLINE_CMD($FILE)
- }
- }
- macro ARCHIVE(NAME="", DONTCOMPRESS?"-p":"", Files...) {
- .CMD=$ARCH_TOOL -q -x $DONTCOMPRESS ${input;join=\: :Files}: -o ${output;addincl;noauto:NAME} ${hide;kv:"p AR"} ${hide;kv:"pc light-red"}
- .SEM=$_ARCHIVE_SEM_HELPER(${output;addincl;noauto:NAME} ${input:Files} FLAGS -q -x $DONTCOMPRESS) && target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args $BINDIR/$NAME
- }
- macro ARCHIVE_BY_KEYS(NAME="", KEYS="", DONTCOMPRESS?"-p":"", Files...) {
- .CMD=$ARCH_TOOL -q -x $DONTCOMPRESS ${input:Files} -k $KEYS -o ${output;addincl;noauto:NAME} ${hide;kv:"p AR"} ${hide;kv:"pc light-red"}
- }
- BUILDVERSION_SCRIPT=build/scripts/build_info_gen.py
- SVNVERSION_JAVA_MARKER=output-java-class
- SVNVERSION_GO_MARKER=output-go
- VCS_C_OBJ=$BINDIR/__vcs_version__.c$OBJECT_SUF
- VCS_C_OBJ_RR=$MODDIR/__vcs_version__.c$OBJECT_SUF
- VCS_C=$BINDIR/__vcs_version__.c
- VCS_GO=$BINDIR/__vcs_version__.go
- VCS_JAVA=$BINDIR/__vcs_version__.mf
- VCS_INFO_DISABLE_CACHE__NO_UID__=
- YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=
- CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=
- CL_MACRO_INFO_DISABLE_CACHE__NO_UID__=
- YASM_DEBUG_INFO=
- CL_DEBUG_INFO=
- CL_MACRO_INFO=
- when ($FORCE_VCS_INFO_UPDATE == "yes") {
- VCS_INFO_DISABLE_CACHE__NO_UID__=${hide;kv:"disable_cache"}
- }
- GENERATE_VCS_C_INFO_NODEP=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} $(VCS)/vcs.json $VCS_C ${input:"build/scripts/c_templates/svn_interface.c"} $VCS_INFO_DISABLE_CACHE__NO_UID__ && $_SRC_c_nodeps($VCS_C $VCS_C_OBJ $(SOURCE_ROOT))
- GENERATE_VCS_GO_INFO_NODEP=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} output-go $(VCS)/vcs.json $VCS_GO $GO_ARCADIA_PROJECT_PREFIX $VCS_INFO_DISABLE_CACHE__NO_UID__
- GENERATE_VCS_JAVA_INFO_NODEP=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} output-java $(VCS)/vcs.json $VCS_JAVA $VCS_INFO_DISABLE_CACHE__NO_UID__
- macro UPDATE_VCS_JAVA_INFO_NODEP(Jar) {
- .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} output-java $(VCS)/vcs.json $VCS_JAVA $Jar $VCS_INFO_DISABLE_CACHE__NO_UID__
- }
- VCS_INFO_FILE=
- macro VCS_INFO_FILE(FILE="vcs_info.json") {
- SET(VCS_INFO_FILE $FILE)
- }
- ADD_VCS_INFO_FILE_CMD=
- when ($VCS_INFO_FILE) {
- ADD_VCS_INFO_FILE_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} output-json $(VCS)/vcs.json ${output:VCS_INFO_FILE} $VCS_INFO_DISABLE_CACHE__NO_UID__
- }
- macro CREATE_BUILDINFO_FOR(GenHdr) {
- .CMD=$YIELD $CXX_COMPILER && $YIELD $CXXFLAGS && $XARGS $YMAKE_PYTHON3 ${input:BUILDVERSION_SCRIPT} ${output:GenHdr} ${hide;kv:"p BI"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"} $SVN_DEPENDS_CACHE__NO_UID__
- .SEM=$RUN_PYTHON3($BUILDVERSION_SCRIPT $GenHdr \\\"${CMAKE_CXX_COMPILER}\\\" \\\"${CMAKE_CXX_FLAGS}\\\" OUT $GenHdr)
- .STRUCT_CMD=yes
- }
- DECIMAL_MD5_SCRIPT=build/scripts/decimal_md5.py
- DECIMAL_MD5_FIXED=
- macro DECIMAL_MD5_LOWER_32_BITS(File, FUNCNAME="", Opts...) {
- .CMD=$YMAKE_PYTHON ${input:DECIMAL_MD5_SCRIPT} --fixed-output=${DECIMAL_MD5_FIXED} --func-name=${FUNCNAME} --lower-bits 32 --source-root=$ARCADIA_ROOT ${context=TEXT;input:Opts} ${stdout;output:File} ${hide;kv:"p SV"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"}
- }
- macro CFG_VARS() {
- .GEN_FROM_FILE=yes
- }
- macro CONFIGURE_FILE(Src, Dst) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/configure_file.py"} ${input:Src} ${output;addincl:Dst} $CFG_VARS ${hide;kv:"p CF"} ${hide;kv:"pc yellow"}
- .SEM=dir_macroses-ITEM && dir_macroses-macro set_vars && dir_macroses-args ${CFG_VARS} && target_commands-ITEM && target_commands-macro configure_file && target_commands-args $S/${input;rootrel:Src} $B/${output;addincl;rootrel:Dst}
- }
- macro LDFLAGS(Flags...) {
- SET_APPEND(LDFLAGS_GLOBAL $Flags)
- }
- macro CFLAGS(Flags...) {
- SET_APPEND_WITH_GLOBAL(USER_CFLAGS $Flags)
- }
- macro GLOBAL_CFLAGS(Flags...) {
- SET_APPEND_WITH_GLOBAL(USER_CFLAGS ${pre=GLOBAL :Flags})
- }
- macro MASMFLAGS(Flags...) {
- SET_APPEND(MASMFLAGS $Flags)
- }
- macro CONLYFLAGS(Flags...) {
- SET_APPEND_WITH_GLOBAL(USER_CONLYFLAGS $Flags)
- }
- macro CXXFLAGS(Flags...) {
- SET_APPEND_WITH_GLOBAL(USER_CXXFLAGS $Flags)
- }
- macro CUDA_NVCC_FLAGS(Flags...) {
- SET_APPEND(CUDA_NVCC_FLAGS $Flags)
- }
- CUDA_DEVICE_LINK_LIBRARY_CMD=$NVCC_OLD $NVCC_FLAGS -o ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:"devlink"} -dlink ${input:_NVCC_DEVICE_SRCS} -I$CUDA_TARGET_ROOT/include --compiler-options ${join= :C_FLAGS_PLATFORM} $NVCC_ENV ${hide;kv:"p DL"} ${hide;kv:"pc light-blue"} && $LINK_LIB
- module CUDA_DEVICE_LINK_LIBRARY: LIBRARY {
- SET(_LD_LINK_LIB_EXTRA_INPUT ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:"devlink"})
- .CMD=$CUDA_DEVICE_LINK_LIBRARY_CMD
- }
- macro NVCC_DEVICE_LINK(Srcs...) {
- SET_APPEND(_NVCC_DEVICE_SRCS ${suf=${OBJ_SUF}${NVCC_OBJ_EXT}:Srcs})
- .PEERDIR=build/platform/cuda
- }
- macro CYTHON_FLAGS(Flags...) {
- SET_APPEND(CYTHON_OPTIONS $Flags)
- }
- macro STRIP() {
- ENABLE(STRIP)
- }
- macro NO_OPTIMIZE() {
- ENABLE(NO_OPTIMIZE)
- }
- _SEM_EXTRA_CXX_FLAGS=
- macro NO_COMPILER_WARNINGS() {
- ENABLE(NO_COMPILER_WARNINGS)
- SET(_SEM_EXTRA_CXX_FLAGS "$<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>")
- }
- macro WERROR() {
- ENABLE(WERROR)
- }
- macro NO_WERROR() {
- DISABLE(WERROR)
- }
- macro NO_WSHADOW() {
- ENABLE(NO_WSHADOW)
- }
- macro NO_PLATFORM_RESOURCES() {
- ENABLE(NOPLATFORM_RESOURCES)
- }
- macro NO_CODENAVIGATION() {
- ENABLE(NOCODENAVIGATION)
- }
- macro NO_UTIL() {
- ENABLE(NOUTIL)
- }
- macro NO_RUNTIME() {
- SET(USE_ARCADIA_LIBM no)
- NO_UTIL()
- ENABLE(NORUNTIME)
- }
- macro NO_LIBC() {
- NO_RUNTIME()
- DISABLE(MUSL)
- ENABLE(NOLIBC)
- }
- macro NO_PLATFORM() {
- NO_LIBC()
- ENABLE(NOPLATFORM)
- }
- macro USE_CXX() {
- DISABLE(NORUNTIME)
- }
- macro USE_UTIL() {
- USE_CXX()
- DISABLE(NOUTIL)
- }
- macro USE_NASM() {
- ENABLE(USE_NASM_ASSEMBLER)
- PEERDIR(build/external_resources/nasm)
- }
- macro NO_JOIN_SRC() {
- ENABLE(UNUSED_MACRO)
- }
- macro NO_SANITIZE() {
- DISABLE(SANITIZER_TYPE)
- }
- macro NO_SANITIZE_COVERAGE() {
- DISABLE(SANITIZE_COVERAGE)
- }
- macro NO_CLANG_COVERAGE() {
- DISABLE(CLANG_COVERAGE)
- }
- macro NO_PROFILE_RUNTIME() {
- DISABLE(NEED_PROFILE_RUNTIME)
- }
- macro NO_CLANG_TIDY() {
- DISABLE(TIDY_ENABLED)
- }
- LUAJIT_PATH=${ARCADIA_ROOT}/contrib/libs/luajit
- macro _LUAJIT_OBJDUMP(Src, OUT="") {
- .CMD=${cwd:LUAJIT_PATH} ${tool:"contrib/libs/luajit/compiler"} -b -g ${input:Src} ${noauto;output:OUT} ${hide;kv:"p LJ"} ${hide;kv:"pc light-cyan"}
- }
- LUAJIT_21_PATH=${ARCADIA_ROOT}/contrib/libs/luajit_21
- macro _LUAJIT_21_OBJDUMP(Src, OUT="") {
- .CMD=${cwd:LUAJIT_21_PATH} ${tool:"contrib/libs/luajit_21/compiler"} -b -g ${input:Src} ${noauto;output:OUT} ${hide;kv:"p LJ"} ${hide;kv:"pc light-cyan"}
- }
- LUAJIT_OPENRESTY_PATH=${ARCADIA_ROOT}/contrib/libs/luajit_openresty
- macro _LUAJIT_OPENRESTY_OBJDUMP(Src, OUT="") {
- .CMD=${cwd:LUAJIT_OPENRESTY_PATH} ${tool:"contrib/libs/luajit_openresty/compiler"} -b -g ${input:Src} ${noauto;output:OUT} ${hide;kv:"p LJ"} ${hide;kv:"pc light-cyan"}
- }
- macro GENERATE_ENUM_SERIALIZATION(File) {
- .CMD=$ENUM_PARSER_TOOL ${input:File} --include-path ${input;rootrel:File} --output ${output;suf=_serialized.cpp:File} ${output_include;from_input;hide:File} ${hide;output_include:"util/generic/serialized_enum.h"} ${hide;kv:"p EN"} ${hide;kv:"pc yellow"}
- .SEM=target_macroses-ITEM && target_macroses-macro generate_enum_serilization && target_macroses-args ${input:File} ${hide;output;suf=_serialized.o:File} INCLUDE_HEADERS ${input;rootrel:File} ${hide;tool:"tools/enum_parser/enum_parser"}
- PEERDIR(tools/enum_parser/enum_serialization_runtime)
- }
- macro GENERATE_ENUM_SERIALIZATION_WITH_HEADER(File) {
- .CMD=$ENUM_PARSER_TOOL ${input:File} --include-path ${input;rootrel:File} --output ${output;suf=_serialized.cpp:File} --header ${output;suf=_serialized.h:File} ${output_include;from_input;hide:File} ${hide;kv:"p EN"} ${hide;kv:"pc yellow"}
- .SEM=target_macroses-ITEM && target_macroses-macro generate_enum_serilization && target_macroses-args ${input:File} ${hide;output;suf=_serialized.o:File} GEN_HEADER ${output;suf=_serialized.h:File} INCLUDE_HEADERS ${input;rootrel:File} ${hide;tool:"tools/enum_parser/enum_parser"}
- PEERDIR(tools/enum_parser/enum_serialization_runtime)
- }
- macro DEB_VERSION(File) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/mkver.py"} ${input:File} ${stdout;output:"DebianVersion.h"} ${hide;kv:"p CL"} ${hide;kv:"pc yellow"}
- }
- macro NEED_CHECK(Flags...) {
-
- ENABLE(UNUSED_MACRO)
- }
- macro NO_NEED_CHECK(Flags...) {
- ENABLE(UNUSED_MACRO)
- }
- macro NEED_REVIEW(Flags...) {
-
- ENABLE(UNUSED_MACRO)
- }
- macro OWNER(Owners...) {
- ENABLE(UNUSED_MACRO)
- }
- macro SUBSCIBER(Subscribers...) {
- ENABLE(UNUSED_MACRO)
- }
- MODVER=unknown
- macro VERSION(Flags...) {
- SET(MODVER ${Flags})
- }
- DATAWORK_SCHEEME_EXPORT_FLAGS=
- when ($UNIX == "yes") {
- SCHEEME2_CFLAGS= -E -x c++
- }
- when ($WIN32 == "yes") {
- SCHEEME2_CFLAGS= /E /TP
- }
- SCHEEME2_STRUCT_INFO_FLAGS=-f "const static ui32 RecordSig" -u "RecordSig" --gcc44_no_typename --no_complex_overloaded_func_export
- macro GEN_SCHEEME2(ScheemeName, FromFile) {
- .CMD=$CXX_COMPILER_OLD $C_FLAGS_PLATFORM -c ${stdout;tmp:FromFile.cph} $SCHEEME2_CFLAGS ${input:FromFile} ${pre=-I:_C__INCLUDE} $CXXFLAGS -Wno-error && ${tool:"tools/structparser"} -o ${output:ScheemeName.inc} -n N${ScheemeName}SchemeInfo $SCHEEME2_STRUCT_INFO_FLAGS $DATAWORK_SCHEEME_EXPORT_FLAGS ${tmp:FromFile.cph} ${stdout;noauto;output:ScheemeName.inc.log} ${hide;kv:"p SH"} ${hide;kv:"pc yellow"}
- }
- macro SYMLINK(From, To) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/symlink.py"} ${input;dirallowed:From} ${noauto;output:To} ${hide;kv:"p LN"} ${hide;kv:"pc light-cyan"}
- }
- macro _TARGET_SOURCES_FOR_HEADERS_IMPL(GENERATE?" && target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ":"", Args...) {
- .SEM=$GENERATE ${output;ext=.h:Args} ${output;ext=.hh:Args} ${output;ext=.hpp:Args} ${output;ext=.inc:Args} ${output;ext=.i:Args}
- }
- macro _TARGET_SOURCES_FOR_HEADERS(Args...) {
- .SEM=$_TARGET_SOURCES_FOR_HEADERS_IMPL(${pre=GENERATE :Args})
- }
- macro _SET_ENV_FOR_CUSTOM_COMMAND_IMPL(GENERATE?" ${CMAKE_COMMAND} -E env ":"", Args...) {
- .SEM=$GENERATE ${pre= :Args}
- }
- macro _SET_ENV_FOR_CUSTOM_COMMAND(Args...) {
- .SEM=$_SET_ENV_FOR_CUSTOM_COMMAND_IMPL(${pre=GENERATE :Args})
- }
- macro _FMT_INDUCED_DEPS(For, Deps...) {
- .CMD=${induced_deps=$For;hide:Deps}
- }
- macro PREPARE_INDUCED_DEPS(VAR, For, Deps...) {
- SET($VAR \$_FMT_INDUCED_DEPS($For $Deps))
- }
- macro _DECL_IN_DIR_GLOB(var_prefix, pattern, rec_part, SRCDIR="", EXCLBASE="", EXCLUDES[], DIRS[], DUMMY[]) {
- _PATTERN=${pre=${SRCDIR};suf=/${rec_part}${pattern}:DIRS}
- _EXCLUDES=${EXCLBASE}**/ya.make ${EXCLBASE}**/a.yaml ${pre=${EXCLBASE}:EXCLUDES}
- _LATE_GLOB(_${var_prefix}_FILES ${_PATTERN} EXCLUDE ${_EXCLUDES})
- SET(${var_prefix}_PATTERN ${_PATTERN})
- SET(${var_prefix}_EXCLUDES ${_EXCLUDES})
- }
- macro DECLARE_IN_DIRS(var_prefix, PATTERN, SRCDIR="", RECURSIVE?"**/":"", EXCLUDES[], DIRS[]) {
- _DECL_IN_DIR_GLOB($var_prefix $PATTERN $RECURSIVE ${pre=SRCDIR ;suf=/:SRCDIR} ${pre=EXCLBASE ${ARCADIA_ROOT}/**/ DUMMY :SRCDIR} EXCLUDES ${EXCLUDES} DIRS ${DIRS})
- SET(${var_prefix}_FILES \$_${var_prefix}_FILES)
- SET(${var_prefix}_SRCDIR $SRCDIR)
- VALIDATE_IN_DIRS(${var_prefix}_FILES $PATTERN $SRCDIR -- $DIRS)
- }
- macro RUN_PROGRAM(Tool, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], IN_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) {
- .CMD=${cwd:CWD} ${env:ENV} ${tool:Tool} $Args ${hide;input:IN} ${hide;context=TEXT;input:IN_NOPARSE} ${hide;input:IN_DEPS} ${hide;output_include:OUTPUT_INCLUDES} $INDUCED_DEPS ${hide;tool:TOOL} ${hide;output:OUT} ${hide;noauto;output:OUT_NOAUTO} ${stdout;output:STDOUT} ${stdout;noauto;output:STDOUT_NOAUTO} ${hide;kv:"p PR"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"}
- .SEM=target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args $_SET_ENV_FOR_CUSTOM_COMMAND($ENV) OUTPUT ${output:OUT} ${noauto;output:OUT_NOAUTO} ${output:STDOUT} ${noauto;output:STDOUT_NOAUTO} DEPENDS ${input:IN} ${context=TEXT;input:IN_NOPARSE} ${tool:Tool} ${tool:TOOL} ${pre=WORKING_DIRECTORY :CWD} COMMAND ${tool:Tool} $Args ${pre=> :STDOUT} ${pre=> :STDOUT_NOAUTO} $_TARGET_SOURCES_FOR_HEADERS($OUT $OUT_NOAUTO $STDOUT $STDOUT_NOAUTO)
- }
- macro RUN_LUA(ScriptPath, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) {
- .CMD=${cwd:CWD} ${env:ENV} $LUA_TOOL ${input:ScriptPath} $Args ${hide;input:IN} ${hide;context=TEXT;input:IN_NOPARSE} ${hide;output_include:OUTPUT_INCLUDES} $INDUCED_DEPS ${hide;tool:TOOL} ${hide;output:OUT} ${hide;noauto;output:OUT_NOAUTO} ${stdout;output:STDOUT} ${stdout;noauto;output:STDOUT_NOAUTO} ${hide;kv:"p LU"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"}
- }
- macro RUN_PYTHON3(ScriptPath, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) {
- .CMD=${cwd:CWD} ${env:ENV} $YMAKE_PYTHON3 ${input:ScriptPath} $Args ${hide;input:IN} ${hide;context=TEXT;input:IN_NOPARSE} ${hide;output_include:OUTPUT_INCLUDES} $INDUCED_DEPS ${hide;tool:TOOL} ${hide;output:OUT} ${hide;noauto;output:OUT_NOAUTO} ${stdout;output:STDOUT} ${stdout;noauto;output:STDOUT_NOAUTO} ${hide;kv:"p PY"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"}
- .SEM=packages-ITEM && packages-name Python3 && mpackages-ITEM && mpackages-name Python3 && target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args $_SET_ENV_FOR_CUSTOM_COMMAND($ENV) OUTPUT ${output:OUT} ${noauto;output:OUT_NOAUTO} ${output:STDOUT} ${noauto;output:STDOUT_NOAUTO} DEPENDS ${input:IN} ${context=TEXT;input:IN_NOPARSE} ${input:ScriptPath} ${tool:TOOL} ${pre=WORKING_DIRECTORY :CWD} COMMAND Python3::Interpreter ${input:ScriptPath} $Args ${pre=> :STDOUT} ${pre=> :STDOUT_NOAUTO} $_TARGET_SOURCES_FOR_HEADERS($OUT $OUT_NOAUTO $STDOUT $STDOUT_NOAUTO)
- }
- macro _RUN_ANTLR_BASE(IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], TOOL[], STDOUT="", STDOUT_NOAUTO="", CWD="", JAR[], SEM="run_java", SEM_ARGS_PREFIX="", ENV[], HIDE_OUTPUT?"stderr2stdout":"stdout2stderr", Args...) {
- PEERDIR(build/platform/java/jdk $JDK_RESOURCE_PEERDIR)
- .CMD=${cwd:CWD} ${env:ENV} $YMAKE_PYTHON ${input;pre=build/scripts/:HIDE_OUTPUT.py} $JDK_RESOURCE/bin/java $JAR $Args ${hide;tool:TOOL} ${hide;input:IN} ${hide;context=TEXT;input:IN_NOPARSE} ${hide;output_include:OUTPUT_INCLUDES} $INDUCED_DEPS ${hide;output:OUT} ${hide;noauto;output:OUT_NOAUTO} ${stdout;output:STDOUT} ${stdout;noauto;output:STDOUT_NOAUTO} ${hide;kv:"p JV"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"}
- .SEM=target_commands-ITEM && target_commands-macro $SEM && target_commands-args OUTPUT ${output:OUT} ${noauto;output:OUT_NOAUTO} DEPENDS ${input:IN} ${pre=WORKING_DIRECTORY :CWD} $SEM_ARGS_PREFIX $Args
- }
- macro FROM_SANDBOX(Id, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], FILE?"--copy-to-dir":"--untar-to", AUTOUPDATED="", PREFIX=".", RENAME[], EXECUTABLE?"--executable":"", SBR="sbr:") {
- .CMD=${hide:SANDBOX_FAKEID} ${cwd:BINDIR} ${resource;pre=$SBR:Id} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_sandbox.py"} --resource-file $(RESOURCE_ROOT)/sbr/$Id/resource --resource-id $Id $FILE $PREFIX ${pre=--rename :RENAME} $EXECUTABLE -- $OUT $OUT_NOAUTO ${hide;input:"build/scripts/fetch_from.py"} ${hide;output_include:OUTPUT_INCLUDES} $INDUCED_DEPS ${hide;output:OUT} ${hide;noauto;output:OUT_NOAUTO} ${requirements;hide:"network:full"} ${hide;kv:"p SB"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"}
- ADD_CHECK(check.resource $Id)
- }
- macro LARGE_FILES(AUTOUPDATED?, Files...) {
-
- _GLOB($LF $Files)
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${suf=.external:Files})
- }
- macro FROM_ARCHIVE(Src, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], PREFIX=".", RENAME[], EXECUTABLE?"--executable":"") {
- .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_archive.py"} "--archive" ${input:Src} "--file-name" ${suf=-:Src} "--untar-to" $PREFIX ${pre=--rename :RENAME} $EXECUTABLE -- $OUT $OUT_NOAUTO ${hide;input:"build/scripts/fetch_from.py"} ${hide;output_include:OUTPUT_INCLUDES} $INDUCED_DEPS ${hide;output:OUT} ${hide;noauto;output:OUT_NOAUTO} ${hide;kv:"p FA"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"}
- }
- when ($MSVC == "yes") {
- C_AS_CXX_FLAGS=/TP /std:c++17
- }
- otherwise {
- C_AS_CXX_FLAGS=-x c++ -std=c++17
- }
- macro COMPILE_C_AS_CXX() {
- SET(EXTRA_C_FLAGS $C_AS_CXX_FLAGS)
- }
- macro NO_DEBUG_INFO() {
- SET(NO_DEBUGINFO yes)
- }
- macro CTEMPLATE_VARNAMES(File) {
- .CMD=${tool:"contrib/libs/ctemplate/make_tpl_varnames_h"} -f ${output;addincl;nopath;noallext:File.varnames.h} ${input:File}
- }
- LLVM_OPTS=
- CLANG_BC_ROOT=
- macro USE_LLVM_BC14() {
- SET(CLANG_BC_ROOT ${CLANG14_RESOURCE_GLOBAL})
- SET(LLVM_LLC_TOOL contrib/libs/llvm14/tools/llc)
- }
- macro USE_LLVM_BC16() {
- SET(CLANG_BC_ROOT ${CLANG16_RESOURCE_GLOBAL})
- SET(LLVM_LLC_TOOL contrib/libs/llvm16/tools/llc)
- }
- macro USE_LLVM_BC18() {
- SET(CLANG_BC_ROOT ${CLANG18_RESOURCE_GLOBAL})
- SET(LLVM_LLC_TOOL contrib/libs/llvm18/tools/llc)
- }
- macro CLANG_EMIT_AST_CXX(Input, Output, Opts...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_RESOURCE_GLOBAL}/bin/clang++ ${pre=-I:_C__INCLUDE} $CXXFLAGS $C_FLAGS_PLATFORM $LLVM_OPTS -emit-ast -c ${input:Input} -o ${noauto;output:Output} $Opts ${hide;kv:"p ST"} ${hide;kv:"pc light-green"}
- PEERDIR(build/platform/clang)
- }
- macro LLVM_COMPILE_CXX(Input, Output, Opts...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_BC_ROOT}/bin/clang++ ${pre=-I:_C__INCLUDE} $BC_CXXFLAGS $C_FLAGS_PLATFORM -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm -c ${input:Input} -o ${noauto;output:Output} $Opts ${hide;kv:"p BC"} ${hide;kv:"pc light-green"}
- .SEM=target_macroses-ITEM && target_macroses-macro llvm_compile_cxx && target_macroses-args ${input:Input} ${noauto;output:Output} ${"${CLANGPLUSPLUS}"} -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm ${Opts}
- .STRUCT_CMD=yes
- when ($CLANG_BC_ROOT == "") {
- _OK = no
- }
- ASSERT(_OK "Invoke USE_LLVM_BC() with specific version first")
- PEERDIR(build/platform/clang)
- }
- ### @usage: LLVM_COMPILE_C(Input Output Opts...)
- ###
- ### Emit LLVM bytecode from .c file. BC_CFLAGS, LLVM_OPTS and C_FLAGS_PLATFORM are passed in, while CFLAGS are not.
- ### Note: Output name is used as is, no extension added.
- macro LLVM_COMPILE_C(Input, Output, Opts...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_BC_ROOT}/bin/clang ${pre=-I:_C__INCLUDE} $BC_CFLAGS $C_FLAGS_PLATFORM $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm -c ${input:Input} -o ${noauto;output:Output} $Opts ${hide;kv:"p BC"} ${hide;kv:"pc light-green"}
- .SEM=target_macroses-ITEM && target_macroses-macro llvm_compile_c && target_macroses-args ${input:Input} ${noauto;output:Output} ${"${CLANGC}"} -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm ${Opts}
- .STRUCT_CMD=yes
- when ($CLANG_BC_ROOT == "") {
- _OK = no
- }
- ASSERT(CLANG_BC_ROOT "Invoke USE_LLVM_BC() with specific version first")
- PEERDIR(build/platform/clang)
- }
- macro BPF(Input, Output, Opts...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_RESOURCE_GLOBAL}/bin/clang ${pre=-I:_C__INCLUDE} $C_FLAGS_PLATFORM -target bpf -c ${input:Input} -o ${noauto;output:Output} $Opts ${hide;kv:"p BP"} ${hide;kv:"pc light-green"}
- PEERDIR(build/platform/clang)
- }
- LD_BINARY_NAME=ld
- when($OS_LINUX) {
- LD_BINARY_NAME=ld.lld
- }
- macro BPF_STATIC(Input, Output, Opts...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_RESOURCE_GLOBAL}/bin/clang ${pre=-I:_C__INCLUDE} $C_FLAGS_PLATFORM -target bpf -c ${input:Input} -o ${noauto;output:Output} $Opts ${hide;kv:"p BP"} ${hide;kv:"pc light-green"} && ${cwd:BINDIR} $LLD_ROOT_RESOURCE_GLOBAL/bin/$LD_BINARY_NAME -r -b binary -m elf_x86_64 -o ${noauto;output;suf=.bpf.o:Input} ${noauto;nopath:Output}
- PEERDIR(build/platform/clang build/platform/lld)
- }
- macro LLVM_COMPILE_LL(Input, Output, Opts...) {
- .CMD=${CLANG_BC_ROOT}/bin/llvm-as ${input:Input} -o ${noauto;output:Output} ${hide;kv:"p BC"} ${hide;kv:"pc light-green"}
- .SEM=target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args OUTPUT ${noauto;output:Output} DEPENDS ${input:Input} COMMAND ${LLVMAS} ${input:Input} -o ${noauto;output:Output}
- PEERDIR(build/platform/clang)
- }
- macro LLVM_LINK(Output, Inputs...) {
- .CMD=${CLANG_BC_ROOT}/bin/llvm-link ${input:Inputs} -o ${noauto;output:Output} ${hide;kv:"p LD"} ${hide;kv:"pc light-red"}
- .SEM=target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args OUTPUT ${noauto;output:Output} DEPENDS ${input:Inputs} COMMAND ${LLVMLINK} ${input:Inputs} -o ${noauto;output:Output}
- PEERDIR(build/platform/clang)
- }
- macro LLVM_OPT(Input, Output, Opts...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/llvm_opt_wrapper.py"} ${CLANG_BC_ROOT}/bin/opt ${input:Input} -o ${noauto;output:Output} $Opts ${hide;kv:"p OP"} ${hide;kv:"pc yellow"}
- .SEM=target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args OUTPUT ${noauto;output:Output} DEPENDS ${input:Input} COMMAND ${LLVMOPT} ${input:Input} -o ${noauto;output:Output} $Opts
- PEERDIR(build/platform/clang)
- }
- macro LLVM_LLC(Src, Opts...) {
- .CMD=${tool:LLVM_LLC_TOOL} ${input:Src} --filetype obj -o ${output;suf=$OBJECT_SUF;noauto:Src} $Opts ${hide;kv:"p LC"} ${hide;kv:"pc yellow"}
- .SEM=target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args OUTPUT ${output;suf=$OBJECT_SUF;noauto:Src} DEPENDS ${input:Src} COMMAND ${LLVMLLC} --filetype obj ${input:Src} -o ${output;suf=$OBJECT_SUF;noauto:Src} $Opts
- PEERDIR(build/platform/clang)
- }
- when ($NO_DEBUGINFO == "yes") {
- DEBUG_INFO_FLAGS=
- }
- when ($CLANG && $DEBUGINFO_LINES_ONLY == "yes" && $NO_DEBUGINFO != "yes") {
- DEBUG_INFO_FLAGS=-gline-tables-only
- }
- when ($BUILD_TYPE == "RELEASE" || $BUILD_TYPE == "MINSIZEREL" || $BUILD_TYPE == "VALGRIND-RELEASE" || $BUILD_TYPE == "PROFILE" || $BUILD_TYPE == "GPROF" || $BUILD_TYPE == "DEBUGNOASSERTS") {
- CFLAGS += -DNDEBUG
- when ($OS_WINDOWS) {
-
- CFLAGS += -U_DEBUG
-
-
- CFLAGS += /MT
- }
- }
- otherwise {
- CFLAGS += -UNDEBUG
- when ($OS_WINDOWS) {
- CFLAGS += -D_DEBUG
- CFLAGS += /MTd
- }
- }
- PACK_TGZ=${cwd:ARCADIA_BUILD_ROOT} tar -czf ${rootrel:OUTPUT} ${rootrel:INPUT} ${hide;kv:"p AR"} ${hide;kv:"pc light-red"}
- macro TOUCH(Outputs...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${output:Outputs}
- }
- TOUCH_UNIT=$YMAKE_PYTHON3 ${input:"build/scripts/touch.py"} ${hide;kv:"p UN"} ${hide;kv:"pc light-cyan"} $TARGET
- FAKE_PACKAGE_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/touch.py"} ${hide;kv:"pc light-red"} $TARGET
- COPY_PACKAGE_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/copy_to_dir.py"} --dest-dir $BINDIR --build-root $ARCADIA_BUILD_ROOT $PACKED_PACKAGE_ARGS $SRCS_GLOBAL $PEERS_LATE_OUTS ${skip_by_ext=.pkg.fake:PEERS} ${hide;late_out:AUTO_INPUT} ${hide;late_out;to_namespace=$BINDIR/:SRCS_GLOBAL} ${hide;late_out;to_namespace=$BINDIR/:PEERS_LATE_OUTS} ${hide;late_out;skip_by_ext=.pkg.fake;to_namespace=$BINDIR/:PEERS} ${hide;kv:"package PACKAGE"}
- TOUCH_PACKAGE=$FAKE_PACKAGE_CMD $VCS_INFO_DISABLE_CACHE__NO_UID__ && $COPY_PACKAGE_CMD
- _P_PK=${hide;kv:"p PK"}
- TOUCH_PACKAGE_MF=$GENERATE_MF && $TOUCH_PACKAGE $_P_PK && $ADD_VCS_INFO_FILE_CMD
- UNION_CMD=$YMAKE_PYTHON -c open(\'$TARGET\',\'w\').close() ${hide;kv:"p UN"} ${hide;kv:"package UNION"} ${hide;kv:"pc light-cyan"} $UNION_OUTS $VCS_INFO_DISABLE_CACHE__NO_UID__
- UNION_CMD_MF=$UNION_CMD && $GENERATE_MF
- macro _EXPAND_INS_OUTS(FILES{input}[]) {
- .CMD=${hide;input:FILES} ${late_out;hide:INPUT}
- }
- _UNION_EXPLICIT_OUTPUTS=
- macro EXPLICIT_OUTPUTS(Files...) {
- SET_APPEND(_UNION_EXPLICIT_OUTPUTS ${Files})
- }
- NO_CHECK_IMPORTS_FOR_VALUE=None
- macro NO_CHECK_IMPORTS(Masks...) {
- SET(NO_CHECK_IMPORTS_FOR_VALUE $Masks)
- }
- _YASM_FMT_VALUE=
- _YASM_PLATFORM_FLAGS_VALUE=
- _YASM_PREDEFINED_FLAGS_VALUE=
- when ($OS_DARWIN || $OS_IOS) {
- _YASM_FMT_VALUE=macho
- _YASM_PLATFORM_FLAGS_VALUE=-D DARWIN -D UNIX
- }
- elsewhen ($OS_WINDOWS && $ARCH_X86_64) {
- _YASM_FMT_VALUE=win
- _YASM_PLATFORM_FLAGS_VALUE=-D WIN64
- }
- elsewhen ($OS_WINDOWS && $ARCH_I386) {
- _YASM_FMT_VALUE=win
- _YASM_PLATFORM_FLAGS_VALUE=-D WIN32
- }
- otherwise {
- _YASM_FMT_VALUE=elf
- _YASM_PLATFORM_FLAGS_VALUE=-D UNIX
- _YASM_PREDEFINED_FLAGS_VALUE=-g dwarf2
- }
- when ($ASM_PREFIX) {
- ASM_PREFIX_VALUE=--prefix=$ASM_PREFIX
- }
- otherwise {
- ASM_PREFIX_VALUE=
- }
- YASM_FLAGS=
- YASM_PREINCLUDES_VALUE=
- macro _SRC_yasm_helper(SRC, PREINCLUDES[], SRCFLAGS...) {
- .CMD=${tool:"contrib/tools/yasm"} -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE $YASM_DEBUG_INFO $YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__ -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS -o ${output;noext;suf=${OBJECT_SUF}:SRC} ${pre=-P :PREINCLUDES} ${hide;input:PREINCLUDES} ${SRC} ${hide;kv:"p AS"} ${hide;kv:"pc light-green"}
- }
- macro _SRC_yasm(SRC, PREINCLUDES[], SRCFLAGS...) {
- .CMD=$_SRC_yasm_helper(${input:SRC}, $SRCFLAGS, PREINCLUDES $PREINCLUDES)
- }
- NASM_FLAGS=
- macro _SRC_nasm_helper(SRC, SRCFLAGS...) {
- .CMD=${NASM_RESOURCE_GLOBAL}/bin/nasm -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} -D ${pre=_;suf=_:HARDWARE_TYPE} $NASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS -o ${output;noext;suf=${OBJECT_SUF}:SRC} ${SRC} ${hide;kv:"p AS"} ${hide;kv:"pc light-green"}
- }
- macro _SRC_nasm(SRC, PREINCLUDES[], SRCFLAGS...) {
- .CMD=$_SRC_nasm_helper(${input:SRC}, $SRCFLAGS)
- }
- when ($USE_NASM_ASSEMBLER == "yes") {
- _SRC_ASM_CMDLINE=$_SRC_nasm($SRC $SRCFLAGS)
- }
- elsewhen ($USE_YASM_ASSEMBLER == "yes") {
- _SRC_ASM_CMDLINE=$_SRC_yasm($SRC $SRCFLAGS)
- }
- otherwise {
- _SRC_ASM_CMDLINE=
- }
- macro _SRC_ASM(SRC, SRCFLAGS...) {
- .CMD=$_SRC_ASM_CMDLINE
- }
- macro ASM_PREINCLUDE(PREINCLUDES...) {
- SET_APPEND(YASM_PREINCLUDES_VALUE $PREINCLUDES)
- }
- macro RUN_ANTLR(IN[], IN_NOPARSE[], OUT[], OUT_NOAUTO[], OUTPUT_INCLUDES[], INDUCED_DEPS[], CWD="", Args...) {
- _RUN_ANTLR_BASE($Args IN $IN IN_NOPARSE $IN_NOPARSE OUT $OUT OUT_NOAUTO $OUT_NOAUTO OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS ${pre=CWD :CWD} JAR -jar ${input:"contrib/java/antlr/antlr3/antlr.jar"} SEM run_antlr SEM_ARGS_PREFIX ANTLER_ARGS)
- }
- macro RUN_ANTLR4(IN[], IN_NOPARSE[], OUT[], OUT_NOAUTO[], OUTPUT_INCLUDES[], INDUCED_DEPS[], CWD="", Args...) {
- _RUN_ANTLR_BASE($Args IN $IN IN_NOPARSE $IN_NOPARSE OUT $OUT OUT_NOAUTO $OUT_NOAUTO OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS ${pre=CWD :CWD} JAR -jar ${input:"contrib/java/antlr/antlr4/antlr.jar"} SEM run_antlr4 SEM_ARGS_PREFIX ANTLER_ARGS)
- }
- _ANTLR4_LISTENER_GRAMMAR=-listener
- _ANTLR4_LISTENER_PARSER=-listener
- _ANTLR4_LISTENER__ANTLR4_EMPTY=-no-listener
- _ANTLR4_VISITOR_GRAMMAR=-visitor
- _ANTLR4_VISITOR_PARSER=-visitor
- _ANTLR4_VISITOR__ANTLR4_EMPTY=-no-visitor
- macro RUN_ANTLR4_CPP_SPLIT(LEXER, PARSER, OUTPUT_INCLUDES[], LISTENER?"PARSER":"_ANTLR4_EMPTY", VISITOR?"PARSER":"_ANTLR4_EMPTY", _ANTLR4_EMPTY="", Args...) {
- RUN_ANTLR4(${LEXER} ${PARSER} -Dlanguage=Cpp -o ${BINDIR} ${_ANTLR4_VISITOR_$VISITOR} ${_ANTLR4_LISTENER_$LISTENER} ${Args} CWD ${BINDIR} IN ${LEXER} ${PARSER} OUT ${noext;suf=.cpp:LEXER} ${noext;suf=.h:LEXER} ${noext;suf=.cpp:PARSER} ${noext;suf=.h:PARSER} ${noext;suf=Listener.h:$LISTENER} ${noext;suf=BaseListener.h:$LISTENER} ${noext;suf=Visitor.h:$VISITOR} ${noext;suf=BaseVisitor.h:$VISITOR} OUTPUT_INCLUDES ${ARCADIA_ROOT}/contrib/libs/antlr4_cpp_runtime/src/antlr4-runtime.h ${OUTPUT_INCLUDES})
- PEERDIR(contrib/libs/antlr4_cpp_runtime)
- }
- macro RUN_ANTLR4_CPP(GRAMMAR, OUTPUT_INCLUDES[], LISTENER?"GRAMMAR":"_ANTLR4_EMPTY", VISITOR?"GRAMMAR":"_ANTLR4_EMPTY", _ANTLR4_EMPTY="", Args...) {
- RUN_ANTLR4(${GRAMMAR} -Dlanguage=Cpp -o ${BINDIR} ${_ANTLR4_VISITOR_$VISITOR} ${_ANTLR4_LISTENER_$LISTENER} ${Args} CWD ${BINDIR} IN ${GRAMMAR} OUT ${noext;suf=Lexer.cpp:GRAMMAR} ${noext;suf=Lexer.h:GRAMMAR} ${noext;suf=Parser.cpp:GRAMMAR} ${noext;suf=Parser.h:GRAMMAR} ${noext;suf=Listener.h:$LISTENER} ${noext;suf=BaseListener.h:$LISTENER} ${noext;suf=Visitor.h:$VISITOR} ${noext;suf=BaseVisitor.h:$VISITOR} OUTPUT_INCLUDES ${ARCADIA_ROOT}/contrib/libs/antlr4_cpp_runtime/src/antlr4-runtime.h ${OUTPUT_INCLUDES})
- PEERDIR(contrib/libs/antlr4_cpp_runtime)
- }
- macro RUN_ANTLR4_GO(GRAMMAR, DEPS[], LISTENER?"GRAMMAR":"_ANTLR4_EMPTY", VISITOR?"GRAMMAR":"_ANTLR4_EMPTY", _ANTLR4_EMPTY="", Args...) {
- RUN_ANTLR4(${GRAMMAR} -Dlanguage=Go -o ${BINDIR} ${_ANTLR4_VISITOR_$VISITOR} ${_ANTLR4_LISTENER_$LISTENER} ${Args} CWD ${BINDIR} IN ${GRAMMAR} OUT ${noext;tolower;suf=_lexer.go:GRAMMAR} ${noext;tolower;suf=_parser.go:GRAMMAR} ${noext;tolower;suf=_listener.go:$LISTENER} ${noext;tolower;suf=_base_listener.go:$LISTENER} ${noext;tolower;suf=_visitor.go:$VISITOR} ${noext;tolower;suf=_base_visitor.go:$VISITOR})
- PEERDIR(${GOSTD}/fmt ${GOSTD}/reflect ${GOSTD}/strconv ${GOSTD}/sync ${GOSTD}/unicode vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4 $DEPS)
- }
- macro RUN_ANTLR4_PYTHON(GRAMMAR, LISTENER?"GRAMMAR":"_ANTLR4_EMPTY", VISITOR?"GRAMMAR":"_ANTLR4_EMPTY", SUBDIR=".", EXTRA_OUTS[], _ANTLR4_EMPTY="", Args...) {
- RUN_ANTLR4(${GRAMMAR} -Dlanguage=$ANTLR_PYTHON -o ${BINDIR}/${SUBDIR} ${_ANTLR4_VISITOR_$VISITOR} ${_ANTLR4_LISTENER_$LISTENER} ${Args} CWD ${BINDIR} IN ${GRAMMAR} OUT_NOAUTO ${nopath;noext;pre=${SUBDIR}/;suf=Lexer.py:GRAMMAR} ${nopath;noext;pre=${SUBDIR}/;suf=Parser.py:GRAMMAR} ${nopath;noext;pre=${SUBDIR}/;suf=Listener.py:$LISTENER} ${nopath;noext;pre=${SUBDIR}/;suf=Visitor.py:$VISITOR} ${pre=${SUBDIR}/:EXTRA_OUTS})
- PEERDIR(contrib/python/antlr4)
- }
- macro CPP_ADDINCL(Dirs...) {
- ADDINCL($Dirs)
- }
- _WHOLE_ARCHIVE_PEERS_VALUE=
- macro WHOLE_ARCHIVE(PEERS...) {
- SET_APPEND(_WHOLE_ARCHIVE_PEERS_VALUE ${PEERS})
- REQUIRES(${PEERS})
- }
- ANDROID_SDK_ROOT=${ANDROID_SDK_RESOURCE_GLOBAL}/android_sdk
- macro TASKLET() {
- PEERDIR(tasklet/v1/api)
-
- CPP_PROTO_PLUGIN(tasklet_cpp tasklet/v1/gen/cpp .tasklet.h)
-
- PY_PROTO_PLUGIN2(tasklet_py _tasklet.py _sbtask.py tasklet/v1/gen/python DEPS tasklet/v1/domain/sandbox tasklet/v1/runtime sandbox/sdk2)
- }
- TASKLET_REG_INCLUDES= \
- ${hide;output_include:"tasklet/v1/runtime/lib/cpp_wrapper.h"} \
- ${hide;output_include:"tasklet/v1/runtime/lib/go_wrapper.h"} \
- ${hide;output_include:"tasklet/v1/runtime/lib/py_wrapper.h"} \
- ${hide;output_include:"tasklet/v1/runtime/lib/js_wrapper.h"} \
- ${hide;output_include:"tasklet/v1/runtime/lib/registry.h"}
- macro TASKLET_REG(Name, Lang, Impl, Includes...) {
- PEERDIR(tasklet/v1/domain sandbox/bin sandbox/taskbox/worker)
- when($Lang == "js") {
-
-
- PEERDIR+=tasklet/v1/runtime/js
- }
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_tasklet_reg.py"} $Name -l $Lang -i $Impl ${noauto;output:Name.task.cpp} $Includes ${hide;output_include:Includes} $TASKLET_REG_INCLUDES ${hide;kv:"p TT"} ${hide;kv:"pc yellow"}
- SRCS(GLOBAL $Name.task.cpp)
- }
- macro TASKLET_REG_EXT(Name, Lang, Impl, Wrapper, Includes...) {
- PEERDIR(tasklet/v1/domain sandbox/bin sandbox/taskbox/worker)
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_tasklet_reg.py"} $Name -l $Lang -i $Impl -w $Wrapper ${noauto;output:Name.task.cpp} $Includes ${hide;output_include:Includes} $TASKLET_REG_INCLUDES ${hide;kv:"p TT"} ${hide;kv:"pc yellow"}
- SRCS(GLOBAL $Name.task.cpp)
- }
- _CPP_PROTO_MODULE_PREFIX=
- _CPP_PROTO_MODULE_SUFFIX=
- when ($MSVC == "yes" || $CYGWIN == "yes") {
- _CPP_PROTO_MODULE_PREFIX=
- _CPP_PROTO_MODULE_SUFFIX=.lib
- }
- otherwise {
- _CPP_PROTO_MODULE_PREFIX=lib
- _CPP_PROTO_MODULE_SUFFIX=.a
- }
- macro _EXPOSE(Args...) {
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${output;suf=$_HASH_HELPER($Args).ya_exposed:"empty_"} ${hide;input:Args}
- }
- module _PROXY_LIBRARY: LIBRARY {
- .EXTS=.a .lib
- .PEERDIR_POLICY=as_build_from
- .PROXY=yes
- .FINAL_TARGET=yes
- DISABLE(NEED_ADD_FAKE_SRC)
- NO_UTIL()
- NO_RUNTIME()
- }
- @import "${CONF_ROOT}/conf/project_specific/yql_udf.conf"
- _PRIMARY_OUTPUT_VALUE=
- macro PRIMARY_OUTPUT(OUTPUT) {
- SET(_PRIMARY_OUTPUT_VALUE $OUTPUT)
- }
- _DLL_PROXY_LIBRARY_CMD=$GENERATE_MF && $COPY_CMD $_PRIMARY_OUTPUT_VALUE ${hide;input:_PRIMARY_OUTPUT_VALUE} ${TARGET}
- module DLL_PROXY_LIBRARY: _PROXY_LIBRARY {
- .ALLOWED=PRIMARY_OUTPUT
- .CMD=$_DLL_PROXY_LIBRARY_CMD
- }
- _PREBUILT_PROGRAM_CMD=$GENERATE_MF && $COPY_CMD $_PRIMARY_OUTPUT_VALUE ${TARGET} ${hide;kv:"p ld"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"}
- module PREBUILT_PROGRAM: _LINK_UNIT {
- .CMD=$_PREBUILT_PROGRAM_CMD
- .SYMLINK_POLICY=EXE
- .ALLOWED=INDUCED_DEPS PRIMARY_OUTPUT
- .RESTRICTED=SRCS
- _BARE_LINK_MODULE()
- SET(MODULE_TYPE PROGRAM)
- _DONT_REQUIRE_LICENSE()
- WITHOUT_VERSION()
- when ($WIN32 == "yes" || $OS_CYGWIN == "yes") {
- MODULE_SUFFIX=.exe
- }
- }
- macro COLLECT_JINJA_TEMPLATES(VAR, DIR) {
- _GLOB($VAR ${DIR}/**/*.jinja ${DIR}/**/*.yaml)
- }
- @import "${CONF_ROOT}/conf/go.conf"
- JAVA_IGNORE_CLASSPATH_CLASH_DEFAULE_VALUE=\
- com.google.protobuf.AbstractMessageLite \
- com.google.protobuf.AbstractMessageLite$Builder \
- com.google.protobuf.AbstractMessageLite$Builder$LimitedInputStream \
- com.google.protobuf.AbstractMessageLite$InternalOneOfEnum \
- com.google.protobuf.AbstractParser \
- com.google.protobuf.AbstractProtobufList \
- com.google.protobuf.AllocatedBuffer \
- com.google.protobuf.AllocatedBuffer$1 \
- com.google.protobuf.AllocatedBuffer$2 \
- com.google.protobuf.Android \
- com.google.protobuf.Any \
- com.google.protobuf.Any$1 \
- com.google.protobuf.Any$Builder \
- com.google.protobuf.AnyOrBuilder \
- com.google.protobuf.AnyProto \
- com.google.protobuf.Api \
- com.google.protobuf.Api$1 \
- com.google.protobuf.Api$Builder \
- com.google.protobuf.ApiOrBuilder \
- com.google.protobuf.ApiProto \
- com.google.protobuf.ArrayDecoders \
- com.google.protobuf.ArrayDecoders$1 \
- com.google.protobuf.ArrayDecoders$Registers \
- com.google.protobuf.BinaryReader \
- com.google.protobuf.BinaryReader$1 \
- com.google.protobuf.BinaryReader$SafeHeapReader \
- com.google.protobuf.BinaryWriter \
- com.google.protobuf.BinaryWriter$1 \
- com.google.protobuf.BinaryWriter$SafeDirectWriter \
- com.google.protobuf.BinaryWriter$SafeHeapWriter \
- com.google.protobuf.BinaryWriter$UnsafeDirectWriter \
- com.google.protobuf.BinaryWriter$UnsafeHeapWriter \
- com.google.protobuf.BooleanArrayList \
- com.google.protobuf.BoolValue \
- com.google.protobuf.BoolValue$1 \
- com.google.protobuf.BoolValue$Builder \
- com.google.protobuf.BoolValueOrBuilder \
- com.google.protobuf.BufferAllocator \
- com.google.protobuf.BufferAllocator$1 \
- com.google.protobuf.ByteBufferWriter \
- com.google.protobuf.ByteOutput \
- com.google.protobuf.ByteString \
- com.google.protobuf.ByteString$1 \
- com.google.protobuf.ByteString$2 \
- com.google.protobuf.ByteString$AbstractByteIterator \
- com.google.protobuf.ByteString$ArraysByteArrayCopier \
- com.google.protobuf.ByteString$BoundedByteString \
- com.google.protobuf.ByteString$ByteArrayCopier \
- com.google.protobuf.ByteString$ByteIterator \
- com.google.protobuf.ByteString$CodedBuilder \
- com.google.protobuf.ByteString$LeafByteString \
- com.google.protobuf.ByteString$LiteralByteString \
- com.google.protobuf.ByteString$Output \
- com.google.protobuf.ByteString$SystemByteArrayCopier \
- com.google.protobuf.BytesValue \
- com.google.protobuf.BytesValue$1 \
- com.google.protobuf.BytesValue$Builder \
- com.google.protobuf.BytesValueOrBuilder \
- com.google.protobuf.CanIgnoreReturnValue \
- com.google.protobuf.CheckReturnValue \
- com.google.protobuf.CodedInputStream \
- com.google.protobuf.CodedInputStream$1 \
- com.google.protobuf.CodedInputStream$ArrayDecoder \
- com.google.protobuf.CodedInputStream$IterableDirectByteBufferDecoder \
- com.google.protobuf.CodedInputStream$StreamDecoder \
- com.google.protobuf.CodedInputStream$StreamDecoder$RefillCallback \
- com.google.protobuf.CodedInputStream$StreamDecoder$SkippedDataSink \
- com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder \
- com.google.protobuf.CodedInputStreamReader \
- com.google.protobuf.CodedInputStreamReader$1 \
- com.google.protobuf.CodedOutputStream \
- com.google.protobuf.CodedOutputStream$1 \
- com.google.protobuf.CodedOutputStream$AbstractBufferedEncoder \
- com.google.protobuf.CodedOutputStream$ArrayEncoder \
- com.google.protobuf.CodedOutputStream$ByteOutputEncoder \
- com.google.protobuf.CodedOutputStream$HeapNioEncoder \
- com.google.protobuf.CodedOutputStream$OutOfSpaceException \
- com.google.protobuf.CodedOutputStream$OutputStreamEncoder \
- com.google.protobuf.CodedOutputStream$SafeDirectNioEncoder \
- com.google.protobuf.CodedOutputStream$UnsafeDirectNioEncoder \
- com.google.protobuf.CodedOutputStreamWriter \
- com.google.protobuf.CodedOutputStreamWriter$1 \
- com.google.protobuf.DoubleArrayList \
- com.google.protobuf.DoubleValue \
- com.google.protobuf.DoubleValue$1 \
- com.google.protobuf.DoubleValue$Builder \
- com.google.protobuf.DoubleValueOrBuilder \
- com.google.protobuf.Duration \
- com.google.protobuf.Duration$1 \
- com.google.protobuf.Duration$Builder \
- com.google.protobuf.DurationOrBuilder \
- com.google.protobuf.DurationProto \
- com.google.protobuf.Empty \
- com.google.protobuf.Empty$1 \
- com.google.protobuf.Empty$Builder \
- com.google.protobuf.EmptyOrBuilder \
- com.google.protobuf.EmptyProto \
- com.google.protobuf.Enum \
- com.google.protobuf.Enum$1 \
- com.google.protobuf.Enum$Builder \
- com.google.protobuf.EnumOrBuilder \
- com.google.protobuf.EnumValue \
- com.google.protobuf.EnumValue$1 \
- com.google.protobuf.EnumValue$Builder \
- com.google.protobuf.EnumValueOrBuilder \
- com.google.protobuf.ExperimentalApi \
- com.google.protobuf.ExtensionLite \
- com.google.protobuf.ExtensionRegistryFactory \
- com.google.protobuf.ExtensionRegistryLite \
- com.google.protobuf.ExtensionRegistryLite$ExtensionClassHolder \
- com.google.protobuf.ExtensionRegistryLite$ObjectIntPair \
- com.google.protobuf.ExtensionSchema \
- com.google.protobuf.ExtensionSchemaLite \
- com.google.protobuf.ExtensionSchemaLite$1 \
- com.google.protobuf.ExtensionSchemas \
- com.google.protobuf.Field \
- com.google.protobuf.Field$1 \
- com.google.protobuf.Field$Builder \
- com.google.protobuf.Field$Cardinality \
- com.google.protobuf.Field$Cardinality$1 \
- com.google.protobuf.Field$Kind \
- com.google.protobuf.Field$Kind$1 \
- com.google.protobuf.FieldInfo \
- com.google.protobuf.FieldInfo$1 \
- com.google.protobuf.FieldInfo$Builder \
- com.google.protobuf.FieldMask \
- com.google.protobuf.FieldMask$1 \
- com.google.protobuf.FieldMask$Builder \
- com.google.protobuf.FieldMaskOrBuilder \
- com.google.protobuf.FieldMaskProto \
- com.google.protobuf.FieldOrBuilder \
- com.google.protobuf.FieldSet \
- com.google.protobuf.FieldSet$1 \
- com.google.protobuf.FieldSet$Builder \
- com.google.protobuf.FieldSet$FieldDescriptorLite \
- com.google.protobuf.FieldType \
- com.google.protobuf.FieldType$1 \
- com.google.protobuf.FieldType$Collection \
- com.google.protobuf.FloatArrayList \
- com.google.protobuf.FloatValue \
- com.google.protobuf.FloatValue$1 \
- com.google.protobuf.FloatValue$Builder \
- com.google.protobuf.FloatValueOrBuilder \
- com.google.protobuf.GeneratedMessageInfoFactory \
- com.google.protobuf.GeneratedMessageLite \
- com.google.protobuf.GeneratedMessageLite$1 \
- com.google.protobuf.GeneratedMessageLite$Builder \
- com.google.protobuf.GeneratedMessageLite$DefaultInstanceBasedParser \
- com.google.protobuf.GeneratedMessageLite$ExtendableBuilder \
- com.google.protobuf.GeneratedMessageLite$ExtendableMessage \
- com.google.protobuf.GeneratedMessageLite$ExtendableMessage$ExtensionWriter \
- com.google.protobuf.GeneratedMessageLite$ExtendableMessageOrBuilder \
- com.google.protobuf.GeneratedMessageLite$ExtensionDescriptor \
- com.google.protobuf.GeneratedMessageLite$GeneratedExtension \
- com.google.protobuf.GeneratedMessageLite$MethodToInvoke \
- com.google.protobuf.GeneratedMessageLite$SerializedForm \
- com.google.protobuf.Int32Value \
- com.google.protobuf.Int32Value$1 \
- com.google.protobuf.Int32Value$Builder \
- com.google.protobuf.Int32ValueOrBuilder \
- com.google.protobuf.Int64Value \
- com.google.protobuf.Int64Value$1 \
- com.google.protobuf.Int64Value$Builder \
- com.google.protobuf.Int64ValueOrBuilder \
- com.google.protobuf.IntArrayList \
- com.google.protobuf.Internal \
- com.google.protobuf.Internal$BooleanList \
- com.google.protobuf.Internal$DoubleList \
- com.google.protobuf.Internal$EnumLite \
- com.google.protobuf.Internal$EnumLiteMap \
- com.google.protobuf.Internal$EnumVerifier \
- com.google.protobuf.Internal$FloatList \
- com.google.protobuf.Internal$IntList \
- com.google.protobuf.Internal$ListAdapter \
- com.google.protobuf.Internal$ListAdapter$Converter \
- com.google.protobuf.Internal$LongList \
- com.google.protobuf.Internal$MapAdapter \
- com.google.protobuf.Internal$MapAdapter$1 \
- com.google.protobuf.Internal$MapAdapter$Converter \
- com.google.protobuf.Internal$MapAdapter$EntryAdapter \
- com.google.protobuf.Internal$MapAdapter$IteratorAdapter \
- com.google.protobuf.Internal$MapAdapter$SetAdapter \
- com.google.protobuf.Internal$ProtobufList \
- com.google.protobuf.InvalidProtocolBufferException \
- com.google.protobuf.InvalidProtocolBufferException$InvalidWireTypeException \
- com.google.protobuf.IterableByteBufferInputStream \
- com.google.protobuf.JavaType \
- com.google.protobuf.LazyField \
- com.google.protobuf.LazyField$1 \
- com.google.protobuf.LazyField$LazyEntry \
- com.google.protobuf.LazyField$LazyIterator \
- com.google.protobuf.LazyFieldLite \
- com.google.protobuf.LazyStringArrayList \
- com.google.protobuf.LazyStringArrayList$ByteArrayListView \
- com.google.protobuf.LazyStringArrayList$ByteStringListView \
- com.google.protobuf.LazyStringList \
- com.google.protobuf.ListFieldSchema \
- com.google.protobuf.ListFieldSchema$1 \
- com.google.protobuf.ListFieldSchema$ListFieldSchemaFull \
- com.google.protobuf.ListFieldSchema$ListFieldSchemaLite \
- com.google.protobuf.ListValue \
- com.google.protobuf.ListValue$1 \
- com.google.protobuf.ListValue$Builder \
- com.google.protobuf.ListValueOrBuilder \
- com.google.protobuf.LongArrayList \
- com.google.protobuf.ManifestSchemaFactory \
- com.google.protobuf.ManifestSchemaFactory$1 \
- com.google.protobuf.ManifestSchemaFactory$CompositeMessageInfoFactory \
- com.google.protobuf.MapEntryLite \
- com.google.protobuf.MapEntryLite$1 \
- com.google.protobuf.MapEntryLite$Metadata \
- com.google.protobuf.MapFieldLite \
- com.google.protobuf.MapFieldSchema \
- com.google.protobuf.MapFieldSchemaLite \
- com.google.protobuf.MapFieldSchemas \
- com.google.protobuf.MessageInfo \
- com.google.protobuf.MessageInfoFactory \
- com.google.protobuf.MessageLite \
- com.google.protobuf.MessageLite$Builder \
- com.google.protobuf.MessageLiteOrBuilder \
- com.google.protobuf.MessageLiteToString \
- com.google.protobuf.MessageSchema \
- com.google.protobuf.MessageSchema$1 \
- com.google.protobuf.MessageSetSchema \
- com.google.protobuf.Method \
- com.google.protobuf.Method$1 \
- com.google.protobuf.Method$Builder \
- com.google.protobuf.MethodOrBuilder \
- com.google.protobuf.Mixin \
- com.google.protobuf.Mixin$1 \
- com.google.protobuf.Mixin$Builder \
- com.google.protobuf.MixinOrBuilder \
- com.google.protobuf.MutabilityOracle \
- com.google.protobuf.MutabilityOracle$1 \
- com.google.protobuf.NewInstanceSchema \
- com.google.protobuf.NewInstanceSchemaLite \
- com.google.protobuf.NewInstanceSchemas \
- com.google.protobuf.NioByteString \
- com.google.protobuf.NioByteString$1 \
- com.google.protobuf.NullValue \
- com.google.protobuf.NullValue$1 \
- com.google.protobuf.OneofInfo \
- com.google.protobuf.Option \
- com.google.protobuf.Option$1 \
- com.google.protobuf.Option$Builder \
- com.google.protobuf.OptionOrBuilder \
- com.google.protobuf.Parser \
- com.google.protobuf.PrimitiveNonBoxingCollection \
- com.google.protobuf.Protobuf \
- com.google.protobuf.ProtobufArrayList \
- com.google.protobuf.ProtobufLists \
- com.google.protobuf.ProtocolStringList \
- com.google.protobuf.ProtoSyntax \
- com.google.protobuf.RawMessageInfo \
- com.google.protobuf.Reader \
- com.google.protobuf.RopeByteString \
- com.google.protobuf.RopeByteString$1 \
- com.google.protobuf.RopeByteString$Balancer \
- com.google.protobuf.RopeByteString$PieceIterator \
- com.google.protobuf.RopeByteString$RopeInputStream \
- com.google.protobuf.Schema \
- com.google.protobuf.SchemaFactory \
- com.google.protobuf.SchemaUtil \
- com.google.protobuf.SmallSortedMap \
- com.google.protobuf.SmallSortedMap$1 \
- com.google.protobuf.SmallSortedMap$DescendingEntryIterator \
- com.google.protobuf.SmallSortedMap$DescendingEntrySet \
- com.google.protobuf.SmallSortedMap$EmptySet \
- com.google.protobuf.SmallSortedMap$EmptySet$1 \
- com.google.protobuf.SmallSortedMap$EmptySet$2 \
- com.google.protobuf.SmallSortedMap$Entry \
- com.google.protobuf.SmallSortedMap$EntryIterator \
- com.google.protobuf.SmallSortedMap$EntrySet \
- com.google.protobuf.SourceContext \
- com.google.protobuf.SourceContext$1 \
- com.google.protobuf.SourceContext$Builder \
- com.google.protobuf.SourceContextOrBuilder \
- com.google.protobuf.SourceContextProto \
- com.google.protobuf.StringValue \
- com.google.protobuf.StringValue$1 \
- com.google.protobuf.StringValue$Builder \
- com.google.protobuf.StringValueOrBuilder \
- com.google.protobuf.Struct \
- com.google.protobuf.Struct$1 \
- com.google.protobuf.Struct$Builder \
- com.google.protobuf.Struct$FieldsDefaultEntryHolder \
- com.google.protobuf.StructOrBuilder \
- com.google.protobuf.StructProto \
- com.google.protobuf.StructuralMessageInfo \
- com.google.protobuf.StructuralMessageInfo$Builder \
- com.google.protobuf.Syntax \
- com.google.protobuf.Syntax$1 \
- com.google.protobuf.TextFormatEscaper \
- com.google.protobuf.TextFormatEscaper$1 \
- com.google.protobuf.TextFormatEscaper$2 \
- com.google.protobuf.TextFormatEscaper$ByteSequence \
- com.google.protobuf.Timestamp \
- com.google.protobuf.Timestamp$1 \
- com.google.protobuf.Timestamp$Builder \
- com.google.protobuf.TimestampOrBuilder \
- com.google.protobuf.TimestampProto \
- com.google.protobuf.Type \
- com.google.protobuf.Type$1 \
- com.google.protobuf.Type$Builder \
- com.google.protobuf.TypeOrBuilder \
- com.google.protobuf.TypeProto \
- com.google.protobuf.UInt32Value \
- com.google.protobuf.UInt32Value$1 \
- com.google.protobuf.UInt32Value$Builder \
- com.google.protobuf.UInt32ValueOrBuilder \
- com.google.protobuf.UInt64Value \
- com.google.protobuf.UInt64Value$1 \
- com.google.protobuf.UInt64Value$Builder \
- com.google.protobuf.UInt64ValueOrBuilder \
- com.google.protobuf.UninitializedMessageException \
- com.google.protobuf.UnknownFieldSchema \
- com.google.protobuf.UnknownFieldSetLite \
- com.google.protobuf.UnknownFieldSetLiteSchema \
- com.google.protobuf.UnmodifiableLazyStringList \
- com.google.protobuf.UnmodifiableLazyStringList$1 \
- com.google.protobuf.UnmodifiableLazyStringList$2 \
- com.google.protobuf.UnsafeByteOperations \
- com.google.protobuf.UnsafeUtil \
- com.google.protobuf.UnsafeUtil$1 \
- com.google.protobuf.UnsafeUtil$Android32MemoryAccessor \
- com.google.protobuf.UnsafeUtil$Android64MemoryAccessor \
- com.google.protobuf.UnsafeUtil$JvmMemoryAccessor \
- com.google.protobuf.UnsafeUtil$MemoryAccessor \
- com.google.protobuf.Utf8 \
- com.google.protobuf.Utf8$DecodeUtil \
- com.google.protobuf.Utf8$Processor \
- com.google.protobuf.Utf8$SafeProcessor \
- com.google.protobuf.Utf8$UnpairedSurrogateException \
- com.google.protobuf.Utf8$UnsafeProcessor \
- com.google.protobuf.Value \
- com.google.protobuf.Value$1 \
- com.google.protobuf.Value$Builder \
- com.google.protobuf.Value$KindCase \
- com.google.protobuf.ValueOrBuilder \
- com.google.protobuf.WireFormat \
- com.google.protobuf.WireFormat$1 \
- com.google.protobuf.WireFormat$FieldType \
- com.google.protobuf.WireFormat$FieldType$1 \
- com.google.protobuf.WireFormat$FieldType$2 \
- com.google.protobuf.WireFormat$FieldType$3 \
- com.google.protobuf.WireFormat$FieldType$4 \
- com.google.protobuf.WireFormat$JavaType \
- com.google.protobuf.WireFormat$Utf8Validation \
- com.google.protobuf.WireFormat$Utf8Validation$1 \
- com.google.protobuf.WireFormat$Utf8Validation$2 \
- com.google.protobuf.WireFormat$Utf8Validation$3 \
- com.google.protobuf.WrappersProto \
- com.google.protobuf.Writer \
- com.google.protobuf.Writer$FieldOrder
- JAVA_IGNORE_CLASSPATH_CLASH_VALUE=$JAVA_IGNORE_CLASSPATH_CLASH_DEFAULE_VALUE
- macro JAVA_IGNORE_CLASSPATH_CLASH_FOR(Args...) {
- SET_APPEND(JAVA_IGNORE_CLASSPATH_CLASH_VALUE $Args $JAVA_IGNORE_CLASSPATH_CLASH_DEFAULE_VALUE)
- }
- IBTOOL_PATH=$XCODE_TOOLS_ROOT_RESOURCE_GLOBAL/Xcode/Contents/Developer/usr/bin/ibtool
- STORYBOARD_FLAGS=--errors --warnings --notices --auto-activate-custom-fonts --output-format human-readable-text
- macro _SRC("storyboard", SRC, SRCFLAGS...) {
- .CMD=$IBTOOL_PATH $STORYBOARD_FLAGS --module $REALPRJNAME --output-partial-info-plist ${output;suf=.partial_plist:SRC} --compilation-directory $BINDIR ${input:SRC} && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.compiled_storyboard_tar:SRC} $BINDIR/${nopath;suf=c:SRC} $BINDIR/${nopath;suf=c:SRC}
- }
- macro _SRC("xib", SRC, SRCFLAGS...) {
- .CMD=$IBTOOL_PATH $STORYBOARD_FLAGS --module $REALPRJNAME --output-partial-info-plist ${output;suf=.partial_plist:SRC} --compile ${output;tobindir;nopath;noext;suf=.nib:SRC} ${input:SRC}
- }
- macro _SRC("msg", SRC, SRCFLAGS...) {
- .CMD=$ROS_MSG_CMD($SRC)
- }
- macro _SRC("srv", SRC, SRCFLAGS...) {
- .CMD=$ROS_SRV_CMD($SRC)
- }
- ACTOOL_PATH=$XCODE_TOOLS_ROOT_RESOURCE_GLOBAL/Xcode/Contents/Developer/usr/bin/ibtool
- ASSETS_FLAGS=--output-format human-readable-text --notices --warnings
- macro _IOS_ASSETS(AssetsDir, Content...) {
- .CMD=$FS_TOOLS md $BINDIR/$REALPRJNAME && $ACTOOL_PATH $ASSETS_FLAGS --export-dependency-info $BINDIR/assetcatalog_dependencies --output-partial-info-plist ${output:"assetcatalog_generated_info.partial_plist"} --product-type com.apple.product-type.application --compile $BINDIR/$REALPRJNAME $AssetsDir ${hide;input:Content} && ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;suf=_assetes.resource_tar:REALPRJNAME} $REALPRJNAME $REALPRJNAME
- }
- macro IOS_APP_COMMON_FLAGS(Flags...) {
- SET_APPEND(STORYBOARD_FLAGS $Flags)
- SET_APPEND(ASSETS_FLAGS $Flags)
- }
- macro IOS_APP_ASSETS_FLAGS(Flags...) {
- SET_APPEND(ASSETS_FLAGS $Flags)
- }
- macro DARWIN_STRINGS_RESOURCE(Resource, Relpath) {
- .CMD=$COPY_CMD ${input:Resource} $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.strings_tar:Relpath} $BINDIR/$Relpath $BINDIR
- }
- macro DARWIN_SIGNED_RESOURCE(Resource, Relpath) {
- .CMD=$COPY_CMD $Resource $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.signed_resource_tar:Relpath} $BINDIR/$Relpath $BINDIR
- }
- DELIM=__DELIM__
- PACK_IOS_ARCHIVE=$GENERATE_MF && $YMAKE_PYTHON ${input:"build/scripts/ios_wrapper.py"} bin $IBTOOL_PATH $TARGET $REALPRJNAME $BINDIR $DELIM $AUTO_INPUT $DELIM $STORYBOARD_FLAGS
- module IOS_INTERFACE: _BARE_UNIT {
- .CMD=PACK_IOS_ARCHIVE
- .EXTS=.compiled_storyboard_tar .partial_plist .plist .xcent .nib .resource_tar .signed_resource_tar .strings_tar .plist_json
- .NODE_TYPE=Library
- .FINAL_TARGET=no
- SET(MODULE_SUFFIX .ios.interface)
- PEERDIR+=build/platform/xcode/tools
- }
- module DEFAULT_IOS_INTERFACE: IOS_INTERFACE {
- SET(MODULE_SUFFIX .default.ios.interface)
- }
- DEFAULT_IOS_TYPE=
- IOS_TYPE=
- when(!$IOS_TYPE) {
- when($DEFAULT_IOS_TYPE) {
- IOS_TYPE=$DEFAULT_IOS_TYPE
- }
- otherwise {
- IOS_TYPE=com.apple.CoreSimulator.SimDeviceType.iPhone-X
- }
- }
- DEFAULT_IOS_RUNTIME=
- IOS_RUNTIME=
- when(!$IOS_RUNTIME) {
- when($DEFAULT_IOS_RUNTIME) {
- IOS_RUNTIME=$DEFAULT_IOS_RUNTIME
- }
- otherwise {
- IOS_RUNTIME=com.apple.CoreSimulator.SimRuntime.iOS-12-1
- }
- }
- when ($ARCH_I386) {
- TEST_IOS_DEVICE_TYPE_VALUE=com.apple.CoreSimulator.SimDeviceType.iPhone-5
- TEST_IOS_RUNTIME_TYPE_VALUE=com.apple.CoreSimulator.SimRuntime.iOS-10-3
- }
- otherwise {
- TEST_IOS_DEVICE_TYPE_VALUE=$IOS_TYPE
- TEST_IOS_RUNTIME_TYPE_VALUE=$IOS_RUNTIME
- }
- macro COLLECT_FRONTEND_FILES(Varname, Dir) {
- _GLOB($Varname $Dir/**/*.(css|ejs|jpg|js|jsx|png|styl|svg|ts|tsx|json|html))
- }
- CPP_XCODE_TOOLCHAIN_VERSION=9.2
- SWIFT_XCODE_TOOLCHAIN_VERSION=9.2
- XCODE_TOOLS_VERSION=10.1
- macro COMPILE_SWIFT_MODULE(SRCS{input}[], BRIDGE_HEADER{input}="", Flags...) {
- when ($BRIDGE_HEADER != "") {
- SWIFT_BRIDGE_HEADER=-import-objc-header ${input:BRIDGE_HEADER}
- }
- otherwise {
- SWIFT_BRIDGE_HEADER=
- }
- .PEERDIR+=build/platform/xcode/swift
-
- LDFLAGS($SWIFT_LD_FLAGS)
- .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_swiftc_output_map.py"} $(SOURCE_ROOT) $(BUILD_ROOT) $BINDIR/swift_output_map.json ${input:SRCS} && $SWIFT_COMPILER -c $SWIFT_FLAGS_PLATFORM $Flags $SWIFT_BRIDGE_HEADER ${pre=-Xcc -I:_C__INCLUDE} ${input:SRCS} -emit-objc-header -emit-objc-header-path ${output;suf=-Swift.h:REALPRJNAME} -emit-module -module-name $REALPRJNAME -output-file-map $BINDIR/swift_output_map.json ${hide;output;suf=.o:SRCS}
- }
- TEST_TOOL_HOST_LOCAL=
- TEST_TOOL_TARGET_LOCAL=
- when ($MOST_USED_CUDA) {
- CUDA12=yes
- }
- CUDA_VERSION=0
- when ($CUDA11) {
- CUDA_VERSION=11.4
- CUDNN_VERSION=8.0.5
- TENSORRT_VERSION=7
- NVCC_STD_VER=17
- }
- when ($CUDA12) {
- CUDA_VERSION=12.2
- CUDNN_VERSION=8.6.0
- TENSORRT_VERSION=8
- CUDA_ARCHITECTURES=
- NVCC_STD_VER=20
- }
- when ($TENSORFLOW_WITH_CUDA) {
- CUDA_REQUIRED=yes
- }
- when (!$TENSORRT_VERSION) {
- TENSORRT_VERSION=5
- }
- ANDROID_APK_TEST_ACTIVITY_VALUE=com.yandex.test.unittests/.RunTestsActivity
- WINDOWS_MANIFEST=
- macro WINDOWS_MANIFEST(Manifest) {
- SET(WINDOWS_MANIFEST $Manifest)
- }
- macro WINDOWS_LONG_PATH_MANIFEST() {
- SET(WINDOWS_MANIFEST build/long-path.manifest)
- }
- when ($MSVC == "yes" && $WINDOWS_MANIFEST) {
- LDFLAGS+=/MANIFEST:EMBED /MANIFESTINPUT:${input:WINDOWS_MANIFEST}
- }
- _VISIBILITY_LEVEL=
- macro VISIBILITY(LEVEL) {
- SET(_VISIBILITY_LEVEL ${LEVEL})
- select ($LEVEL) {
- "DEFAULT" | "HIDDEN" ? {
- }
- default ? {
- _OK = no
- }
- }
- ASSERT(_OK Unsupported value [$LEVEL] passed to VISIBILITY macro, expected values are DEFAULT, HIDDEN.)
- }
- _CFLAGS_VISIBILITY=
- when ($_VISIBILITY_LEVEL != "" && $IGNORE_VISIBILITY != "yes") {
- when ($CLANG == "yes" || $GCC == "yes") {
- _CFLAGS_VISIBILITY=-fvisibility=${tolower:_VISIBILITY_LEVEL}
- }
- }
- CFLAGS+=$_CFLAGS_VISIBILITY
- macro SDBUS_CPP_ADAPTOR(File) {
- .CMD=${tool:"contrib/libs/sdbus-cpp/tools/xml2cpp-codegen"} --adaptor=${output;nopath;noext:File.adaptor.h} ${input:File}
- .PEERDIR=contrib/libs/sdbus-cpp
- }
- macro SDBUS_CPP_PROXY(File) {
- .CMD=${tool:"contrib/libs/sdbus-cpp/tools/xml2cpp-codegen"} --proxy=${output;nopath;noext:File.proxy.h} ${input:File}
- .PEERDIR=contrib/libs/sdbus-cpp
- }
- macro _PY_ENUM_SERIALIZATION_TO_JSON(File) {
- .CMD=$ENUM_PARSER_TOOL ${input:File} --output ${output;noext;suf=.generated.h:File} --json-output ${output;noext:File.json} ${hide;kv:"p EN"} ${hide;kv:"pc yellow"}
- }
- macro _PY_ENUM_SERIALIZATION_TO_PY(File) {
- .CMD=${tool:"metrika/core/tools/python_enum_generator"} ${input;noext:File.json} -D ${MODDIR} --output ${output;noext:File.py} ${hide;kv:"p EN"} ${hide;kv:"pc yellow"}
- }
- macro NGINX_MODULES(Modules...) {
- PEERDIR(${Modules})
- RUN_PROGRAM(nginx/module_gen ${Modules} CWD ${ARCADIA_ROOT} IN ${suf=/modules.json:Modules} OUTPUT_INCLUDES contrib/nginx/core/src/core/ngx_config.h contrib/nginx/core/src/core/ngx_core.h STDOUT ngx_modules.c)
- }
- macro ORIGINAL_SOURCE(Source) {
- ENABLE(UNUSED_MACRO)
- }
- CREDITS_FILE_EXTRA_EXT=
- CREDITS_FLAGS=
- CREDITS_TEXTS_FILE=
- NO_CREDITS_TEXTS_FILE=
- WITH_CREDITS=
- macro LICENSE_TEXTS(Source) {
- SET(CREDITS_TEXTS_FILE $Source)
- }
- macro WITHOUT_LICENSE_TEXTS() {
- ENABLE(NO_CREDITS_TEXTS_FILE)
- }
- when ($WITH_CREDITS) {
- CREDITS_FLAGS+=--credits-output ${output;pre=${MODULE_PREFIX};suf=${MODULE_SUFFIX}${CREDITS_FILE_EXTRA_EXT}.CREDITS.txt:REALPRJNAME}
- }
- GENERATE_MF=
- when ($WITH_CREDITS) {
- GENERATE_MF=$GENERATE_MF_CMD
- }
- macro _MSVC_FLAGS_WINDOWS_IMPL(WINDOWS[], FLAGS...) {
- CFLAGS($WINDOWS)
- }
- macro MSVC_FLAGS(FLAGS...) {
- _MSVC_FLAGS_WINDOWS_IMPL($TARGET_PLATFORM $FLAGS)
- }
- macro YA_CONF_JSON(File) {
- _YA_CONF_JSON($File)
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${ARCADIA_ROOT}/$File)
- }
- macro _STYLE_CPP(CONFIG...) {
- _ADD_CPP_LINTER_CHECK(NAME clang_format LINTER tools/cpp_style_checker/cpp_style_checker DEPENDS contrib/libs/clang16/tools/clang-format CONFIGS $CPP_LINTERS_DEFAULT_CONFIGS CUSTOM_CONFIG $CONFIG)
- }
- macro _ADD_CPP_LINTER_CHECK(Args...) {
- SET(USE_ALL_SRCS yes)
- HEADERS(.)
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS $CPP_LINTERS_DEFAULT_CONFIGS)
- }
- macro STYLE_CPP() {
- .ALLOWED_IN_COMMON=yes
- _ADD_CPP_LINTER_CHECK(NAME clang_format LINTER tools/cpp_style_checker/cpp_style_checker DEPENDS contrib/libs/clang16/tools/clang-format CONFIGS $CPP_LINTERS_DEFAULT_CONFIGS)
- }
- macro HEADERS(EXCLUDE[], Dirs...) {
- SET(_VAR_HEADERS_SALT __Dirs__ ${Dirs} __EXCLUDE__ ${EXCLUDE})
- SET(_HEADERS_GLOB uniq_headers_${hash:_VAR_HEADERS_SALT})
- _GLOB(${_HEADERS_GLOB} ${suf=/*.(h|H|hh|hpp|hxx|ipp):Dirs} EXCLUDE ${EXCLUDE})
- SRCS(${${_HEADERS_GLOB}})
- }
- macro CLANG_EMIT_AST_CXX_RUN_TOOL(SOURCES[], OPTS[], Tool, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], IN_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) {
- .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_RESOURCE_GLOBAL}/bin/clang++ ${pre=-I:_C__INCLUDE} $CXXFLAGS $C_FLAGS_PLATFORM $LLVM_OPTS -emit-ast -c ${input:SOURCES} ${hide;tmp;noext;nopath:SOURCES.ast} $OPTS ${hide;kv:"p ST"} ${hide;kv:"pc light-green"} && ${cwd:CWD} ${env:ENV} ${tool:Tool} $Args ${hide;input:IN} ${hide;context=TEXT;input:IN_NOPARSE} ${hide;input:IN_DEPS} ${hide;output_include:OUTPUT_INCLUDES} $INDUCED_DEPS ${hide;tool:TOOL} ${hide;output:OUT} ${hide;noauto;output:OUT_NOAUTO} ${stdout;output:STDOUT} ${stdout;noauto;output:STDOUT_NOAUTO} ${hide;kv:"p PR"} ${hide;kv:"pc yellow"} ${hide;kv:"show_out"}
- PEERDIR(build/platform/clang)
- }
- macro _CONTRIB_MODULE_HOOKS() {
- ENABLE(UNUSED_MACRO)
- }
- macro TOOLCHAIN(Name) {
- ENABLE(UNUSED_MACRO)
- }
- macro WITHOUT_VERSION() {
- ENABLE(SKIP_VERSION_REQUIREMENTS)
- }
|