Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • emsmith/athena
  • dzubov/athena
  • pscholer/athena
  • akvam/athena
  • flasagni/athena
  • hartman/athena
  • alux/athena
  • berenice/athena
  • mschott/athena
  • mgenest/athena
  • pbalek/athena
  • dsalvato/athena
  • korcyl/athena
  • tlyubush/athena
  • lyubushk/athena
  • gstark/athena
  • yharris/athena
  • lmonsoni/athena
  • nagano/athena
  • lcorpe/athena
  • lshi/athena
  • rrosten/athena
  • ytsujika/athena
  • tiledemo/athena
  • abagdato/athena
  • fparodi/athena
  • tmoxter/athena
  • lheinric/athena
  • milu/athena
  • pyin/athena
  • juesseiv/athena-celeritas
  • mmlynari/athena
  • matthier/athena
  • jsandesa/athena
  • borisov/athena
  • zchubini/athena
  • mpenzin/athena
  • mcorradi/athena
  • okovanda/athena
  • meevans/athena
  • isiral/athena
  • haa2mu2tau/athena
  • nkvu/athena
  • andre/athena
  • ebakos/athena
  • gwmyers/athena
  • lportale/athena
  • vasothil/athena
  • bwinter/athena
  • brle/athena
  • camacho/athena
  • icioara/athena
  • mcentonz/athena
  • quli/athena
  • mikhail/athena
  • begilber/athena
  • gartoni/athena
  • abkahn/athena
  • mbasso/athena
  • pagacova/athena
  • dgancarc/athena
  • stefania/athena
  • gmarchio/athena
  • jolsson/athena
  • atlasdqm/athena
  • chuanshu/athena
  • yygao/athena
  • shimoji/athena
  • zhenw/athena
  • jojamies/athena
  • keli/athena
  • cnass/athena
  • beckerov/athena
  • passaggi/athena
  • marvin/athena
  • hdf5-utils/athena
  • pberta/athena
  • aaboulho/athena
  • acrobert/athena
  • ranjitn/athena
  • cescobar/athena
  • ktodome/athena
  • kastanas/athena
  • huirun/athena
  • atrzupek/athena
  • tzorbas/athena
  • lfountas/athena
  • ccarrion/athena
  • aambler/athena
  • derendar/athena
  • britzger/athena
  • hanl/athena
  • epender/athena
  • gipezzul/athena
  • mmineev/athena
  • robertma/athena
  • gnn4itkteam/athena
  • phkoenig/athena
  • pleier/athena
  • nguseyno/athena
  • nekumari/athena
  • avasyuko/athena
  • gtateno/athena
  • pavel/athena
  • reznicek/athena
  • aburke/athena
  • jiling/athena
  • jcordeir/athena
  • herrmant/athena
  • lmcelhin/athena
  • xuh/athena
  • averbyts/athena
  • tnommens/athena
  • ewallin/athena
  • tvazquez/athena
  • shbansal/athena
  • gascott/athena
  • yuhui/athena
  • lserkin/athena
  • ccaminch/athena
  • corentin/athena
  • miochoa/athena
  • berkeleylab/CharmPhysics/athena
  • cdiez/athena
  • cpollard/athena
  • hfox/athena
  • madurano/athena_gittutorial
  • msykora/athena
  • ckirfel/athena
  • jakoubek/athena
  • calfayan/athena
  • atlas/athena
  • toshi/athena
  • dguest/athena
  • kjohns/athena
  • aundrus/athena
  • akraszna/athena
  • karolos/athena
  • fwinkl/athena
  • jmontejo/athena
  • damazio/athena
  • wlampl/athena
  • okuprash/athena
  • smh/athena
  • turra/athena
  • tdado/athena
  • tadej/athena
  • abuckley/athena
  • rhauser/athena
  • jmasik/athena
  • pjacka/athena
  • tamartin/athena
  • phwindis/athena
  • tbold/athena
  • mhodgkin/athena
  • nstyles/athena
  • mark/athena
  • arnaez/athena
  • gemmeren/athena
  • ssnyder/athena
  • wwalko/athena
  • emoyse/athena
  • pgadow/athena
  • baines/athena
  • solodkov/athena
  • rbielski/athena
  • dcasper/athena
  • mmuskinj/athena
  • mrybar/athena
  • ychiu/athena
  • christos/athena
  • psommer/athena
  • yoyamagu/athena
  • rbianchi/athena
  • graemes/athena
  • sshaw/athena
  • bwynne/athena
  • shlomit/athena
  • hartj/athena
  • tstreble/athena
  • jcatmore/athena
  • ebuschma/athena
  • gunal/athena
  • ATLAS-EGamma/athena
  • ewelina/athena
  • ligang/athena
  • sroe/athena
  • yuxu/athena
  • lfiorini/athena
  • toyamaza/athena
  • longjon/athena
  • jichen/athena
  • fpastore/athena
  • harkusha/athena
  • nikiforo/athena
  • mvozak/athena
  • leggett/athena
  • martindl/athena
  • tlari/athena
  • almaloiz/athena
  • susinha/athena
  • filthaut/athena
  • peter/athena
  • cvarni/athena
  • cchan/athena
  • wleight/athena
  • nwarrack/athena
  • cshimmin/athena
  • chays/athena
  • mihuebne/athena
  • dtovey/athena
  • sgeorge/athena
  • jsallen/athena-high-pt-ms-jets
  • yafu/athena
  • mgignac/athena
  • dkar/athena
  • tkohno/athena
  • janovak/athena
  • wiedenat/athena
  • khoo/athena
  • alfroch/athena
  • maklein/athena
  • cohm/athena
  • omajersk/athena
  • mstamenk/athena
  • dbakshig/athena
  • fernando/athena
  • scheiric/athena
  • okepka/athena
  • pleskot/athena
  • jobalz/athena
  • ebergeas/athena
  • tmkrtchy/athena
  • ekasimi/athena
  • gingrich/athena
  • afaulkne/athena
  • ekuwertz/athena
  • schaarsc/athena
  • xai/athena
  • merrenst/athena
  • goetz/athena
  • ponyisi/athena
  • dpopov/athena
  • ravinab/athena
  • astruebi/athena
  • achishol/athena
  • mdanning/athena
  • egramsta/athena
  • hye/athena
  • alaurier/athena
  • clseitz/athena
  • mtoscani/athena
  • bmindur/athena
  • krumnack/athena
  • ppostola/athena
  • shanisch/athena
  • efilmer/athena
  • ncalace/athena
  • aad/athena
  • jpanduro/athena
  • gpanizzo/athena
  • ssarikay/athena
  • rcoelhol/athena
  • tupham/athena
  • hyamauch/athena
  • nkrengel/athena
  • rkopelia/athena
  • stelzer/athena
  • cmcginn/athena
  • ssottoco/athena
  • turnerm/athena
  • bernius/athena
  • sutt/athena
  • stsuno/athena
  • tsulaia/athena
  • yunju/athena
  • ldc/athena
  • vcairo/athena
  • jmacdona/athena
  • jdandoy/athena
  • mbandier/athena
  • mehlhase/athena
  • jufische/athena
  • dzanzi/athena
  • kzoch/athena
  • kwhalen/athena
  • nasbah/athena
  • bmorgan/athena
  • amete/athena
  • msaimper/athena
  • rcarney/athena
  • hhibi/athena
  • williams/athena
  • kkohler/athena
  • shhirose/athena
  • coccaro/athena
  • cheidegg/athena
  • loch/athena
  • heng/athena
  • ynoguchi/athena
  • campanel/athena
  • cdeutsch/athena
  • wbalunas/athena
  • hoide/athena
  • xju/athena
  • nova/athena
  • yuchou/athena
  • hrussell/athena
  • todorova/athena
  • sjiggins/athena
  • lidiaz/athena
  • bgokturk/athena
  • aytul/athena
  • kegraham/athena
  • jbiswal/athena
  • guerrero/athena
  • bouhova/athena
  • kpachal/athena
  • alwang/athena
  • alopezso/athena
  • mverissi/athena
  • dhayden/athena
  • mvessell/athena
  • ssantpur/athena
  • kenelson/athena
  • mvanadia/athena
  • upatel/athena
  • fmeloni/athena
  • omeshkov/athena
  • soumya/athena
  • igrabows/athena
  • ruyuan/athena
  • tvarol/athena
  • mhank/athena
  • dshope/athena
  • korona/athena
  • cowagner/athena
  • tursom/athena
  • anperrev/athena
  • dbogavac/athena
  • eramakot/athena
  • tnobe/athena
  • derue/athena
  • koffas/athena
  • fsforza/athena
  • angianni/athena
  • fgiuli/athena
  • ballbroo/athena
  • diehl/athena
  • falonso/athena
  • chinderk/athena
  • myexley/athena
  • tphamleh/athena
  • davidek/athena
  • ekajomov/athena-general
  • sarbiolv/athena
  • hansenph/athena
  • mfujimot/athena
  • masato/athena
  • salvator/athena
  • stapiaar/athena
  • hirose/athena
  • jmendes/athena
  • jhaley/athena
  • stavrop/athena
  • ffabbri/athena
  • nwenke/athena
  • agbet/athena
  • tpelzer/athena
  • dbabal/athena
  • juesseiv/athena
  • gia/athena
  • hmildner/athena
  • kkrizka/athena
  • temoskal/athena
  • cdelitzs/athena
  • asonay/athena
  • ckitsaki/athena
  • dwallace/athena
  • iaizenbe/athena
  • lferencz/athena
  • eschanet/athena
  • pmeiring/athena
  • czhou/athena
  • jteoh/athena
  • jiawei/athena
  • liberato/athena
  • mromano/athena
  • rustem/athena
  • jbeirer/athena
  • nielsenj/athena
  • sswatman/athena
  • wachan/athena
  • miqueits/athena
  • ranovotn/athena
  • elmsheus/athena
  • markowen/athena
  • eparrish/athena
  • asquith/athena
  • esoldato/athena
  • nicholas/athena
  • fuhe/athena
  • mhance/athena
  • dakoch/athena
  • asoukhar/athena
  • aranzazu/athena
  • jkempste/athena
  • ndegroot/athena
  • lihan/athena
  • tjunkerm/athena
  • ginaciog/athena
  • aporeba/athena
  • verducci/athena
  • martis/athena
  • mswiatlo/athena
  • sschramm/athena
  • pliu/athena
  • mdelmast/athena
  • anmrodri/athena
  • bcarlson/athena
  • fastcalosim_test/athena
  • ssaha/athena
  • mxia/athena
  • gabarone/athena
  • scamarda/athena
  • rlongo/athena
  • amoussa/athena
  • lstocker/athena
  • guindon/athena
  • mdonasci/athena
  • conde/athena
  • mmittal/athena
  • ffollega/athena
  • chelling/athena
  • gialas/athena
  • fcostanz/athena
  • shion/athena
  • sberlend/athena
  • hmaguire/athena
  • acts/athena
  • sschmitt/athena
  • zsoumaim/athena
  • cgutscho/athena
  • nifomin/athena
  • eriefel/athena
  • dwilbern/athena
  • laforge/athena
  • evarnes/athena
  • jkremer/athena
  • guescini/athena
  • susy-hackers/athena
  • llorente/athena
  • akotsoke/athena
  • rpoggi/athena
  • istin/athena
  • rkarnam/athena
  • fizisist/athena
  • cmerlass/athena
  • acanesse/athena
  • chenlian/athena
  • fengyu/athena
  • haozturk/athena
  • ysmirnov/athena_old
  • navarrjo/athena
  • ivivarel/athena
  • amulski/athena
  • bulekov/athena
  • kkoeneke/athena
  • pkramer/athena
  • sanchevi/athena
  • vcavalie/athena
  • bauerpa/athena
  • smwang/athena
  • yanlin/athena
  • restevam/athena
  • thsjurse/athena
  • sefernan/athena
  • mmlynars/athena
  • iyeletsk/athena
  • itrandaf/athena
  • mmazza/athena
  • jgonski/athena
  • almgadm/athena
  • wobisch/athena
  • jhinds/athena
  • csebasti/athena
  • tiyang/athena
  • mwielers/athena
  • lapereir/athena
  • mtchijov/athena
  • lmiller/athena
  • aleopold/athena
  • zuysal/athena
  • emmat/athena
  • rbalasub/athena
  • lucam/athena
  • kciesla/athena
  • masaito/athena
  • pekman/athena
  • salderwe/athena
  • somadutt/athena
  • ycoadou/athena
  • jstupak/athena
  • wmccorma/athena
  • ilongari/athena
  • simmons/athena
  • pinamont/athena
  • kkreul/athena
  • ssahin/athena
  • adye/athena
  • gcallea/athena
  • wtaylor/athena
  • kbelobor/athena
  • jzeng/athena
  • fbartels/athena
  • aoneill/athena
  • dmaximov/athena
  • cschiavi/athena
  • kghorban/athena
  • kasai/athena
  • jraine/athena
  • ljeanty/athena
  • brottler/athena
  • ecarlson/athena
  • mcfayden/athena
  • rozeny/athena
  • aelmouss/athena
  • scarra/athena
  • nbelyaev/athena
  • khanov/athena
  • joheinri/athena
  • rebeca/athena
  • gotero/athena
  • abandyop/athena
  • doglioni/athena
  • alaperto/athena
  • aohatl/athena
  • bhonan/athena
  • pmoskvit/athena
  • bigliett/athena
  • amarzin/athena
  • begalli/athena
  • dpudzha/athena
  • yajun/athena
  • rgarg/athena
  • mpokidov/athena
  • paulama/athena
  • lbozianu/athena
  • mtesta/athena
  • wprzygod/athena
  • vcroft/athena
  • torrence/athena
  • jajimene/athena
  • atlidali/athena
  • sgalantz/athena
  • barak/athena
  • roward/athena
  • demelian/athena
  • atsirigo/athena
  • tofitsch/athena
  • amoroso/athena
  • salnikov/athena
  • hacooke/athena
  • mmiralle/athena
  • csander/athena
  • elrossi/athena
  • alory/athena
  • ozaplati/athena
  • pbokan/athena
  • pottgen/athena
  • jsabater/athena
  • jdevivi/athena
  • klin/athena
  • ymino/athena
  • trinn/athena
  • ruth/athena
  • xiaoning/athena
  • xchen/athena
  • apetukho/athena
  • ratkin/athena
  • nishu/athena
  • cappelt/athena
  • bleban/athena
  • nelsonc/athena
  • paramon/athena
  • dpizzi/athena
  • ztarem/athena
  • juhofer/athena
  • enarayan/athena
  • acassim/athena
  • exot-27/athena
  • bburghgr/athena
  • mmarjano/athena
  • sampson/athena
  • qhu/athena
  • pagessin/athena
  • ychow/athena
  • mkrivos/athena
  • hessey/athena
  • nviauxma/athena
  • watsona/athena
  • wfawcett/athena
  • ibordule/athena
  • LichtenbergGroup/athena
  • perj/athena
  • jreich/athena
  • mleblanc/athena
  • othielma/athena
  • sridouan/athena
  • jdegens/athena
  • ztao/athena
  • alainb/athena
  • pmendesa/athena
  • wgeorge/athena
  • hasada/athena
  • kristin/athena
  • bachacou/athena
  • yama/athena
  • yake/athena
  • xiaohu/athena
  • ssu/athena
  • ludovica/athena
  • angerami/athena
  • jlsmith/athena
  • rnayak/athena
  • asalzbur/athena
  • ktsuri/athena
  • pebaron/athena-weights
  • jezequel/athena
  • hschwart/athena
  • gproto/athena
  • musafdar/athena
  • mproffit/athena
  • amendesj/athena
  • csamoila/athena
  • malgren/athena
  • lhelary/athena
  • lbeemste/athena
  • rerrabai/athena
  • tiany/athena
  • spolacek/athena
  • grabanal/athena
  • mprincip/athena
  • aczirkos/athena
  • bmondal/athena
  • kyamaguc/athena
  • asantra/athena
  • jreidels/athena
  • slawlor/athena
  • silvinha/athena
  • tboeckh/athena
  • jroloff/athena
  • holau/athena
  • bozek/athena
  • tdiasdov/athena
  • lkrauth/athena
  • mdhlamin/athena
  • iramirez/athena
  • emily/athena
  • bbrueers/athena
  • carlod/athena
  • bcole/athena
  • mtian/athena
  • ecelebi/athena
  • mgrabois/athena
  • idinu/athena
  • oducu/athena
  • roishi/athena
  • dhirsch/athena
  • ygo/athena
  • yuanchan/athena
  • hmoyanog/athena-4-mr
  • jjwilkin/athena
  • ggustavi/athena
  • exochell/athena
  • diwillia/athena
  • cgarner/athena
  • sbiryuko/athena
  • skorn/athena
  • changqia/athena
  • honguyen/athena
  • jizamora/athena
  • jwspence/athena
  • scalvet/athena
  • calpigia/athena
  • adimitri/athena
  • yangx/athena
  • atsiamis/athena
  • iene/athena
  • rysawada/athena
  • cmarcon/athena
  • kpetukho/athena
  • dhangal/athena
  • tbisanz/athena
  • tqiu/athena
  • atlidbs/athena
  • dopasqua/athena
  • jspah/athena
  • ryamaguc/athena
  • jkretz/athena
  • tzenis/athena
  • hzuchen/athena
  • athaler/athena
  • jcardena/athena
  • oshukrun/athena
  • lveloce/athena
  • maliev/athena
  • mumohdso/athena2
  • fdelrio/athena
  • iwang/athena
  • tsano/athena
  • okumura/athena
  • mbiros/athena
  • mumohdso/athena
  • dmunozpe/athena
  • sagara17/athena
  • rhayes/athena
  • arennie/athena
  • atate/athena
  • valentem/athena
  • koshimiz/athena
  • zearnsha/athena
  • evguillo/athena
  • dossantn/athena
  • caforio/athena
  • maly/athena
  • bnachman/athena
  • zhijie/athena
  • hlin/athena
  • suyounas/athena
  • lunedic/athena
  • rjoshi/athena
  • yuzhan/athena
  • crougier/athena
  • mtost/athena
  • machitis/athena
  • lvannoli/athena
  • thompson/athena
  • mimarine/athena
  • dounwuch/athena
  • ndebiase/athena
  • nkakati/athena
  • omezhens/athena
  • echeu/athena
  • jonierma/athena
  • saclawso/athena
  • hhanif/athena
  • cprat/athena
  • csauer/athena
  • martinpa/athena
  • mischott/athena
  • sahinsoy/athena
  • inaryshk/athena
  • jodamp/athena
  • tiknight/athena
  • wendlanb/athena
  • lkeszegh/athena
  • knikolop/athena
  • fedin/athena
  • lbaltes/athena
  • xchu/athena
  • adik/athena
  • angrigor/athena
  • echeremu/athena
  • pbellos/athena
  • jaoliver/athena
  • eschopf/athena
  • idrivask/athena
  • aikoulou/athena
  • algilber/athena
  • haweber/athena
  • ignesi/athena
  • ntamir/athena
  • sadykov/athena
  • sgurdasa/athena
  • pamachad/athena
  • pbhattar/athena
  • pyanezca/athena
  • hiito/athena
  • tteixeir/athena
  • bsaifudd/athena
  • tavandaa/athena
  • wolter/athena
  • veellajo/athena
  • mdrozdov/athena
  • fsili/athena
  • nheatley/athena
  • mzhai/athena
  • hsimpson/athena
  • fdibello/athena
  • mrenda/athena
  • dparedes/athena
  • minaenko/athena
  • rkusters/athena
  • chchau/athena
  • zyan/athena
  • zhangr/athena
  • emmarsha/athena
  • edweik/athena
  • jburzyns/athena
  • javanden/athena
  • phkenned/athena
  • slai/athena
  • awilhahn/athena
  • agaa/athena
  • zmarshal/athena
  • llaatu/athena
  • leevans/athena
  • stsigari/athena
  • zfeng/athena
  • zifeng/athena
  • srdas/athena
  • kkrowpma/athena
  • atropina/athena
  • adonofri/athena
  • atlaspmb/athena
  • metsai/athena
  • cleonido/athena
  • seggebre/athena
  • drousso/athena
  • yuanda/athena
  • mnoury/athena
  • ademaria/athena
  • arombola/athena
  • axiong/athena
  • ijuarezr/athena
  • kchoi/athena
  • dgillber/athena
  • amdesai/athena
  • saktas/athena
  • eyamashi/athena
  • nlopezca/athena
  • zang/athena
  • acanbay/athena
  • matakagi/athena
  • qibin/athena
  • fbendebb/athena
  • bshresth/athena
  • berkeleylab/lowmutracking/athena
  • klassen/athena
  • tbuanes/athena
  • egodden/athena
  • jferrand/athena
  • otheiner/athena-official
  • cbuitrag/athena
  • hawatson/athena
  • hpotti/athena
  • vtudorac/athena
  • parodi/athena
  • mfarring/athena
  • chonghao/athena
  • bballard/athena
  • dzengerj/athena
  • buboehm/athena
  • lmontana/athena
  • knakkali/athena
  • weixi/athena
  • dcieri/athena
  • cimcp/athena
  • cantel/athena
  • zhuyi/athena
  • adaribay/athena
  • kbenkend/athena
  • asansar/athena
  • iliadis/athena
  • jburr/athena
  • dkoeck/athena
  • duperrin/athena
  • isotarri/athena
  • frenner/athena
  • czodrows/athena
  • bstanisl/athena
  • blumen/athena
  • mfewell/athena
  • eegidiop/athena
  • yulei/athena
  • miholzbo/athena
  • smitani/athena
  • olangrek/athena
  • alsala/athena
  • amincer/athena
  • hpang/athena
  • gshatri/athena
  • jmharris/athena
  • clantz/athena
  • otheiner/athena
  • gripelli/athena
  • tizuo/athena
  • mleigh/athena
  • jgargan/athena
  • ewatton/athena
  • rushioda/athena
  • sfranche/athena
  • preselection-hackathon/athena
  • bernardo/athena
  • mfernoux/athena
  • deniso/athena
  • smeriano/athena
  • yusano/athena
  • chandler/athena
  • viruelas/athena
  • anghosh/ef-anindya
  • jnitschk/athena
  • pebaron/athena-td
  • ksugizak/athena
  • davetisy/athena
  • hriani/athena
  • skaur/athena
  • jgombas/athena
  • vcepaiti/athena
  • wsherman/athena
  • yochi/athena
  • rtagami/athena
  • apsallid/athena
  • sroygara/athena
  • pakontax/athena
  • yuanj/athena
  • agavrily/athena
  • mcgensvc/athena
  • abunka/athena
  • chji/athena
  • dmclaugh/athena
  • cjmeyer/athena
  • dmahon/athena
  • almay/athena
  • giagu/athena
  • qberthet/athena
  • yuwen/athena
  • islazyk/athena
  • mshapiro/athena
  • glamprin/athena
  • ekay/athena
  • mbarel/athena
  • rdinardo/athena
  • dkobylia/athena
  • minlin/athena
  • baitbenc/athena
  • dakiyama/athena
  • osalin/athena
  • mlanzacb/athena
  • kazhang/athena
  • cgrefe/athena
  • szambito/athena
  • pebaron/athena
  • hwilkens/athena
  • wsfreund/athena
  • enagy/athena
  • beringer/athena
  • menke/athena
  • yyap/athena
  • mduehrss/athena
  • schaffer/athena
  • mavogel/athena
  • tkharlam/athena
  • mspalla/athena
  • fcalosim/athena
  • smobius/athena
  • spagan/athena
  • okiverny/athena
  • rateixei/athena
  • carquin/athena
  • jelena/athena
  • dportill/athena
  • lmijovic/athena
  • osunnebo/athena
  • chhayes/athena
  • junpei/athena
  • desilva/athena
  • tilebeam/athena
  • jwalder/athena
  • jahreda/athena
  • sanmay/athena
  • satom/athena
  • kiabelin/athena
  • mcarnesa/athena
  • vtskhaya/athena
  • jstark/athena
  • jedebevc/athena
  • silu/athena
  • krbjoerk/athena
  • delsart/athena
  • jtanaka/athena
  • cyoung/athena
  • yifany/athena
  • mtogawa/athena
  • haoran/athena
  • luxin/athena
  • danning/athena
  • beddall/athena
  • faser/offline/athena
  • dcasperfaser/athena
  • maslawin/athena
  • minghui/athena
  • cfan/athena
  • kazheng/athena
  • almeidvi/athena
  • mmontell/athena
  • srettie/athena
  • beltran/athena-fork
  • vmartin/athena
  • pajones/athena
  • sudha/athena
  • kgupta/athena
  • ssinha/athena
  • lhenkelm/athena
  • lgagnon/athena
  • joana/athena
  • anbaraja/athena
  • mtanasin/athena
  • serodrig/athena
  • dpanchal/athena
  • kkawade/athena
  • chiodini/athena
  • amorenos/athena
  • vbuxbaum/athena
  • jshahini/athena
  • apalazzo/athena
  • kburka/athena
  • lfeligio/athena
  • ehaines/athena
  • gonzalri/athena
  • rmazini/athena
  • desengup/athena
  • jaofferm/athena
  • mdidenko/athena
  • gottino/athena
  • sabidi/athena
  • bkerridg/athena
  • gavrilen/athena
  • hazeng/athena
  • dwkim/athena
  • qidong/athena
  • jingjing/athena
  • ktackman/athena
  • cdimitri/athena
  • sgaid/athena
  • ktopolni/athena
  • dabattul/athena
  • attrtcal/athena
  • yche/athena
  • yoyeh/athena
  • thmaurin/athena
  • bochen/athena
  • asciandr/athena
  • chjiang/athena
  • mischott/athena-22
  • meiqi/athena
  • krdona/athena
  • lbazzano/athena
  • rushioda/athena-3
  • pclark/athena
  • dtorresa/athena
  • hmoyanog/athena
  • nlad/athena
  • kvidalgu/athena
  • aackerma/athena
  • aaikot/athena
  • yingjun/athena
  • lesplend/athena
  • jcurran/athena
  • xinhui/athena
  • maboelel/athena
  • aivina/athena
  • xinfei/athena
  • mschefer/athena
  • kazheng/athena-physics-val-2023
  • rmakhman/athena
  • liuk/athena
  • zoduan/athena
  • zhiliang/athena
  • shhan/athena
  • sfrances/athena
  • kyjones/topoetcone-removal
  • bdixit/athena
  • alsidley/athena
  • xingguo/athena
  • jlue/athena
  • ragrabar/athena
  • niabicht/athena
  • asehrawa/athena
  • yunagai/athena
  • mhoppesc/athena
  • shahzad/athena
  • lcalic/athena-backup
  • keener/athena
  • greynold/athena
  • llewitt/athena
  • bschlag/athena
  • adohnalo/athena
  • yinmiao/athena
  • kazheng/athena-workingpoint
  • drankin/athena
  • agentry/athena
  • bruckman/athena
  • kbhide/athena
  • nkang/athena
  • hvanders/athena
  • ladamczy/test
  • tbeumker/athenatest
  • asmaga/athena
  • tbeumker/athena
  • berkeleylab/acts/athena
  • losanti/athena-23
  • weitao/athena
  • losanti/athena
  • jiturriz/athena
  • wsong/athena
  • dmankad/athena-idle
  • menu-hackathon/athena
  • toobauma/athena
  • vmaksimo/athena
  • dawerner/athena
  • kyjones/trigger-example
  • edreyer/athena
  • seggebre/athena-fluencemap-modification
  • fisopkov/athena
  • SecVtx-Lancaster/Athena
  • lprimomo/athena
  • maparo/athena
  • gtarna/athena
  • smanzoni/athena
  • pgraveli/athena
  • adimri/athena
  • shmukher/athena
  • aackerma/atlas-athena
  • wstanek/athena
  • jcrosby/athena
  • tovsiann/athena
  • lrambell/athena
  • rsnyder/athena
  • atlas-sa-uct/athena
  • skita/athena
  • eullmank/athena
  • ppotepa/athena
  • mhemmett/athena
  • zgao/athena
  • achakrav/athena
  • xmapekul/athena
  • lroos/athena
  • rashbypi/athena
  • kgoto/athena
  • ivyas/athena
  • evitale/athena
  • thmaurin/athena-sim-flavour
  • npond/athena
  • arej/athena
  • epasqual/athena
  • aleksand/athena
  • lkretsch/athena
  • jebohm/athena
  • mbiyabi/athena
  • cvittori/athena
  • hluk/athena
  • aralves/athena
  • dkoeck/anniathenafork
  • mihe/athena
  • dbiswas/athena
  • croland/athena
  • mkareem/athena
  • tslee/athena
  • rgupta/athena
  • pkumari/athena
  • cgarvey/athena
  • feickert/athena
  • kesedlac/athena
  • ctosciri/athena-old
  • mhaacke/athena
  • asoflau/athena
  • ctosciri/athena
  • gfrattar/athena
  • agerwin/athena
  • ricunnin/athena
  • bdixit/masking-strip-modules
  • bscheuer/athena
  • gwilliam/athena
  • jfeng2/athena
  • gtolkach/athena
  • svanstro/athena
  • ksudo/athena
  • gaofeng/athena
  • vaustrup/athena
  • kosuzuki/athena
  • rhiguchi/athena
  • etoyoda/athena
  • rmizuhik/athena
  • tnakagaw/athena
  • kkanke/athena
  • hart/athena
  • amakita/athena
  • maoki/athena
  • whopkins/athena
  • tpaschoa/athena
  • miyamada/athena
  • rishikaw/athena
  • dduda/athena
  • evalient/athena
  • ferusso/athena
  • anayaz/athena
  • aagaard/athena
  • smweber/athena-run-3
  • shudong/athena
  • smweber/athena
  • evalient/athena-dnn-calculator
  • zyan/athena-muon-calib
  • zyan/athena-muon-calib-stream
  • strom/athena
  • dellacqu/athena
  • strom/athena-dms
  • glagafon/project-nimber-1
  • leguo/athena
  • jsallen/athena
  • brosser/athena
  • macretar/athena
  • sbellman/athena
  • aowang/athena
  • ooncel/athena
  • jhoya/athena
  • skadir/athena-sadaf
  • tygeorge/athena
  • glagafon/handi-project
  • wuxi/athena
  • osotosan/athena
  • glagafon/handi-project-1
  • hasun/athena
  • syan/athena-syan
  • aborbely/athena
  • mnorfolk/athena
  • axgallen/athena-qualification-task
  • will/athena
  • schernau/athena
  • karakawa/athena
  • mmaroun/ravina-fork
  • taogawa/athena
  • seinfant/athena
  • dmankad/athena-gen
  • axgallen/athena
  • romar/athena
  • tmlinare/athena
  • dhagan/athena
  • agarabag/athena
  • ktariq/athena
  • vlysenko/athena
  • tizhang/athena
  • mahorstm/athena
  • ipolishc/athena
  • zuzak/athena
  • ibamwidh/athena
  • ykhoulak/myathena
  • frfische/athena
  • atishelm/athena
  • jolamber/athena
  • jlue/athena-latest
  • huayu/athena
  • xilin/athena
  • yil/athena
  • dntounis/athena
  • chuanye/athena
  • nkua-atlas/athena
  • kifarman/athena
  • lderamo/athena
  • tayoshid/athena
  • steinber/athena-main
  • nischmit/athena
  • movincen/athena
  • tdingley/athena
  • dtruncal/athena
  • dongyi/athena
  • hasegawa/athena
  • malvesca/athena
  • kazheng/athena-acts
  • openc/athena
  • mnowak/athena
  • glagafon/dq-optimize
  • lcalic/athena
  • rqian/athena
  • ladamczy/athena
  • mhufnage/athena
  • lsultana/obsolete_athena
  • lsultana/athena
  • ekajomov/athena-fork-fix
  • anfortma/athena
  • alveltma/athena
  • yonoda/athena
  • kfung/athena
  • alpleban/athena
  • mmaheshw/athena
  • jdavidso/athena
  • edcritel/athena
  • anstein/athena
  • pebaron/athena-leprem
  • bglik/athena
  • gbird/athena
  • kyjones/athena
  • midandre/athena
  • mfurukaw/athena
  • sokkerma/athena
  • anhodges/athena
  • mvivasal/athena
  • asbrooks/athena
  • fcurcio/athena
  • mveen/athena
  • lboccard/athena
  • mmlynars/athena-v-2
  • jmcgowan/athena
  • tburatov/athena
  • ivyoung/athena
  • dmankad/athena
  • joroemer/athena
  • tayoshid/athena-test
  • drasslof/athena
  • jodafons/athena
  • ctaybi/athena
  • sdemiran/athena
  • sanchezj/athena-2022
  • tmclachl/athena
  • apfleger/athena
  • anburger/athena
  • sdahbi/athena
  • jiddon/athena
  • fwinkel/athena
  • goblirsc/athena
  • sidoti/athena
  • izahir/athena
  • rvinasco/athena
  • sanchezj/athena
  • mmoors/athena
  • jwkraus/athena
  • esimpson/athena
  • obut/athena
  • dta/athena_old
  • klleras/athena
  • janders/athena
  • rhaberle/athena
  • jhowarth/athena
  • mungo/athena
  • jchapman/athena
  • jecouthu/athena
  • fhenry/athena
  • dtrischu/athena
  • avallier/athena
  • fmontere/athena
  • sfuenzal/athena
  • awharton/Athena
  • misantan/athena
  • zalegria/athena
  • zhaotong/athena
  • shaoguan/athena
  • gdigrego/athena
  • nbruscin/athena
  • amelo/athena
  • acordeir/athena-ed
  • mkholoda/athena
  • pdougan/athena
  • peiyan/athena
  • fkirfel/athena
  • caiy/athena
  • esampson/athena-idart
  • kchu/athena
  • backes/athena
  • tayoshid/athena-2024
  • bcervato/athena
  • gfacini/athena
  • fwinkl2/athena
  • yvolkotr/athena
  • shpeng/athena-2
  • gmercado/athena
  • rhowen/athena
  • gmascare/athena
  • costanzo/athena
  • nharriso/athena
  • esampson/athena-idart-2
  • djlewis/athena
  • esampson/athena-otp
  • alpleban/athena-met
  • yuematsu/athena
  • pibutti/athena
  • astefl/athena
  • esampson/athena-june-otp
  • bmoser/athena
  • bdong/athena
  • wcastigl/athena
  • yilin/athena
  • ksahan/athena
  • thitchin/athena
  • zhanhang/athena
  • msasada/athena
  • agheata/athena
  • sosarkar/athena-again
  • lbarrade/athena
  • txu/athena
  • seth/athena
  • robouque/athena
  • okolay/athena
  • esampson/june-2-otp
  • nsurijr/athena
  • zhangbo/athena
  • mlyukova/athena
  • wema/athena
  • damperia/athena-acts
  • dbaronmo/athena
  • eballabe/athena
  • martyniu/athena
  • boudreau/athena
  • vsasse/athena
  • acamplan/athena
  • menadeem/athena
  • bngair/met-significance-r-22
  • ksakura/athena
  • vkost/athena
  • bhuth/athena
  • bngair/me-tsig-athena
  • atymchys/athena
  • yanqiw/athena
  • rhicks/athena
  • domatter/athena
  • linghua/athena
  • skadir/athena
  • arelycg/athena
  • sgoswami/athena
  • juscerri/athena
  • beltran/athena
  • biliu/athena
  • mwessels/athena
  • dreikher/athena
  • ddicroce/athena
  • sosarkar/athena
  • fladias/athena
  • bdebjani/athena
  • hshaddix/athena
  • lwinkler/athena
  • mhabedan/athena
  • elham/athena
  • emoon/athena
  • cleong/athena
  • mads/athena
  • sdiefenb/athena-onnx-tutorial
  • nkrogh/athena
  • haren/athena
  • dwilson/athena
  • fivone/athena
  • lsanfili/athena
  • thart/athena
  • echerepa/athena
  • dahumphr/athena
  • scane/athena
  • baer/athena
  • dcamarer/athena
  • lifoster/athena
  • kenakamu/athena
  • eskorda/athena
  • alancast/athena
  • glagafon/aaaathena
  • salopez/athena
  • glagafon/athena
  • haotianl/athena
  • lburke/athena
  • rshibata/athena
  • glagafon/glagafon-dq
  • pizhang/athena
  • ukhurshi/athena
  • rvavrick/athena
  • htsoi/athena
  • therwig/athena
  • delitez/athena
  • pachabri/athena
  • mwitkows/athena
  • lcorazzi/athena
  • casadop/athena
  • ezaya/athena
  • jaburles/athena
  • mmantina/athena
  • lmonaco/athena
  • hzhuang/athena
  • achamber/athena
  • rmole/athena
  • mfornasi/athena
  • mamirono/athena
  • jkrupa/athena
  • gserenis/athena
  • rpozzi/athena
  • semami/athena
  • jinglis/athena
  • uepstein/athena
  • fdattola/athena
  • abesir/athena
  • belderto/athena
  • lechols/athena
  • ljerala/athena
  • cmavungu/athena
  • htorre/athena
  • lopezzot/athena
  • jlittle/athena
  • jajohnso/athena
  • tneep/athena
  • robouque/athena-20241115
  • lbrown/athena
  • fsiegert/athena
  • wenjingw/athena
  • wguerin/athena
  • rmole/athena-personal-fork
  • kfang/athena-fork-kyfang
  • prmitra/athena
  • jackersc/athena
  • ashirazi/athena
  • epompapa/athena
  • wasu/athena
  • toheintz/athena
  • kgrimm/athena-kgrimm
  • aslobodk/athena
  • amoreira/athena
  • nihartma/athena
  • goetz/athena-acts
  • kdipetri/athena
  • gfazzino/athena
  • djuarezg/athena
  • muschmid/athena
  • yazhou/athena
  • falves/athena
  • alarnold/athena
  • rohasan/athena
  • mdacunha/athena
  • wlai/athena
  • mborodin/athena
  • asickles/athena
  • novotnyp/athena
  • alecrhys/athena
  • adsalvad/athena
  • ibenaoum/athena
  • lvicenik/athena
  • tflee/athena
  • zetao/athena
  • christog/athena
  • kkazakov/athena
  • frcastig/athena
  • mfarzali/athena
  • llarson/athena
  • ehampshi/athena
  • pusharma/athena
  • jusilva/athena
  • tomoya/athena-low-pt-muon-rec
  • gpinheir/athena
  • exochell/my-athena
  • mojeda/athena
  • jecifuen/athena
  • hshaddix/athena-hshaddix
  • chhultqu/athena
  • jlieberm/athena
  • vchabala/athena
  • nshtokha/athena
  • nsur/athena-lund
  • misavic/athena
  • jlai/athena
  • yuxuanz/local-athena
  • camccrac/athena
  • zhubacek/athena
  • pmourafr/athena
  • sizumiya/athena
  • yukari/athena
  • akraus/athena
  • mnegrini/athena
  • rkavak/athena
  • mfilipig/athena
  • fdejean/athena
  • sawyer/athena
  • yanqiw/athena-acts-for-run-3-silicon-tracking
  • ssuravar/athena
  • zrokavec/athena
  • beyeo/athena
  • gipoddar/athena
  • ywng/athena
  • mtancock/athena-2
  • gsalvi/athena
  • vpires/athena-vasco
  • sutuncay/athena
  • ndiasper/athena
  • fballi/athena
  • stlin/athena
  • hadavand/athena
1578 results
Show changes
Commits on Source (25502)
Showing
with 87 additions and 1423 deletions
# Ignore the most common extra files that can
# be produced while developing
*~
*.sw?
#*
.DS_Store
.pydevproject
.project
*.pyc
.asetup*
.cproject
*.kdevelop
#Binary formats
*.so*
*.out
*.exe*
*.a
*.la
*.lib
*.root
tmp.*
# $Id: CMakeLists.txt 782126 2016-11-03 13:55:04Z krasznaa $
# The name of the package:
atlas_subdir( Asg_Test )
# Read in the settings of the package from the files under cmt/:
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/cmt/ReleaseSeries.txt
ROOTCORE_RELEASE_SERIES )
string( STRIP "${ROOTCORE_RELEASE_SERIES}" ROOTCORE_RELEASE_SERIES )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/cmt/TestFileData.txt
ASG_TEST_FILE_DATA )
string( STRIP "${ASG_TEST_FILE_DATA}" ASG_TEST_FILE_DATA )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/cmt/TestFileMC.txt
ASG_TEST_FILE_MC )
string( STRIP "${ASG_TEST_FILE_MC}" ASG_TEST_FILE_MC )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/cmt/TestFileMCAFII.txt
ASG_TEST_FILE_MC_AFII )
string( STRIP "${ASG_TEST_FILE_MC_AFII}" ASG_TEST_FILE_MC_AFII )
set( ROOTCORE_TEST_FILE ${ASG_TEST_FILE_MC} )
get_filename_component( ROOTCORE_TEST_DATA ${ROOTCORE_TEST_FILE} PATH )
# Create the CMake file that will be used to generate the environment config:
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Asg_TestEnvironmentConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Asg_TestEnvironmentConfig.cmake
@ONLY )
set( Asg_TestEnvironment_DIR
${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}
CACHE PATH "Location of Asg_TestEnvironmentConfig.cmake" FORCE )
# Now find it:
find_package( Asg_TestEnvironment )
# $Id: Asg_TestEnvironmentConfig.cmake.in 782126 2016-11-03 13:55:04Z krasznaa $
#
# File configuring the ASG environment variables.
#
# Set the environment variables:
set( ASG_TESTENVIRONMENT_ENVIRONMENT
FORCESET ROOTCORE_RELEASE_SERIES @ROOTCORE_RELEASE_SERIES@
FORCESET ASG_TEST_FILE_DATA @ASG_TEST_FILE_DATA@
FORCESET ASG_TEST_FILE_MC @ASG_TEST_FILE_MC@
FORCESET ASG_TEST_FILE_MC_AFII @ASG_TEST_FILE_MC_AFII@
FORCESET ROOTCORE_TEST_FILE @ROOTCORE_TEST_FILE@
FORCESET ROOTCORE_TEST_DATA @ROOTCORE_TEST_DATA@ )
# Signal that the module was found:
set( ASG_TESTENVIRONMENT_FOUND TRUE )
25
/afs/cern.ch/atlas/project/PAT/xAODs/r9264/data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1
/afs/cern.ch/atlas/project/PAT/xAODs/r9315/mc16_13TeV.410501.PowhegPythia8EvtGen_A14_ttbar_hdamp258p75_nonallhad.merge.AOD.e5458_s3126_r9364_r9315/AOD.11182705._000001.pool.root.1
/afs/cern.ch/user/a/asgbase/patspace/xAODs/a818/mc15_13TeV.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.merge.AOD.e3698_a766_a818_r7676/AOD.07919492._000100.pool.root.1
Asg_Test_Dir=`dirname $1`
setenv ROOTCORE_RELEASE_SERIES `cat $Asg_Test_Dir/ReleaseSeries.txt`
setenv ASG_TEST_FILE_DATA `cat $Asg_Test_Dir/TestFileData.txt`
setenv ASG_TEST_FILE_MC `cat $Asg_Test_Dir/TestFileMC.txt`
setenv ASG_TEST_FILE_MC_AFII `cat $Asg_Test_Dir/TestFileMCAFII.txt`
setenv ROOTCORE_TEST_FILE `cat $Asg_Test_Dir/TestFileMC.txt`
setenv ROOTCORE_TEST_DATA "`dirname $ROOTCORE_TEST_FILE | xargs dirname`"
Asg_Test_Dir=`dirname $1`
export ROOTCORE_RELEASE_SERIES=`cat $Asg_Test_Dir/ReleaseSeries.txt`
export ASG_TEST_FILE_DATA=`cat $Asg_Test_Dir/TestFileData.txt`
export ASG_TEST_FILE_MC=`cat $Asg_Test_Dir/TestFileMC.txt`
export ASG_TEST_FILE_MC_AFII=`cat $Asg_Test_Dir/TestFileMCAFII.txt`
export ROOTCORE_TEST_FILE=`cat $Asg_Test_Dir/TestFileMC.txt`
export ROOTCORE_TEST_DATA="`dirname $ROOTCORE_TEST_FILE | xargs dirname`"
#-- start of application
$(bin)${CONSTITUENT}${application_suffix} :: ${OBJS} $(use_stamps) $(${CONSTITUENT}_stamps) $(${CONSTITUENT}stamps) $(use_requirements)
$(link_echo) "application $@"
$(link_silent) ${LINKMACRO} -o $(@).new ${OBJS} $(cmt_installarea_linkopts) $(${CONSTITUENT}_use_linkopts) $(${CONSTITUENT}linkopts) && mv -f $(@).new $(@)
ifneq (${SEPARATEDEBUG},)
$(echo) stripping dbg symbols into separate file $@$(debuginfosuffix)
$(link_silent) objcopy --only-keep-debug $@ $@$(debuginfosuffix)
$(link_silent) objcopy --strip-debug $@
$(link_silent) cd $(@D) && objcopy --add-gnu-debuglink=$(@F)$(debuginfosuffix) $(@F)
endif
ifneq ($(strip $(use_stamps)),)
# Work around Make errors if stamps files do not exist
$(use_stamps) :
endif
#-----------------------------------------------------------------
#
# New section for automatic installation
#
#-----------------------------------------------------------------
install_dir = ${CMTINSTALLAREA}/$(tag)/bin
${CONSTITUENT}installname = ${CONSTITUENT}${application_suffix}
${CONSTITUENT} :: ${CONSTITUENT}install ;
install :: ${CONSTITUENT}install ;
${CONSTITUENT}install :: $(install_dir)/$(${CONSTITUENT}installname)
ifdef CMTINSTALLAREA
$(echo) "installation done"
endif
$(install_dir)/$(${CONSTITUENT}installname) :: $(bin)$(${CONSTITUENT}installname)
ifdef CMTINSTALLAREA
$(install_silent) $(cmt_install_action) \
-source "`(cd $(bin); pwd)`" \
-name "$(${CONSTITUENT}installname)" \
-out "$(install_dir)" \
-cmd "$(cmt_installarea_command)" \
-cmtpath "$($(package)_cmtpath)"
endif
##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
uninstall :: ${CONSTITUENT}uninstall ;
${CONSTITUENT}uninstall ::
ifdef CMTINSTALLAREA
$(cleanup_silent) $(cmt_uninstall_action) \
-source "`(cd $(bin); pwd)`" \
-name "$(${CONSTITUENT}installname)" \
-out "$(install_dir)" \
-cmtpath "$($(package)_cmtpath)"
endif
# @echo "------> (${CONSTITUENT}.make) Removing installed files"
#-- end of application
#-- start of library_no_static ------
#${CONSTITUENT}LIB :: $(${CONSTITUENT}lib) $(${CONSTITUENT}shstamp)
${CONSTITUENT}LIB :: $(${CONSTITUENT}shstamp)
$(echo) "${CONSTITUENT} : library ok"
$(${CONSTITUENT}lib) :: ${OBJS}
$(lib_echo) "static library $@"
$(lib_silent) cd $(bin); \
$(ar) $(${CONSTITUENT}lib) $?
$(lib_silent) $(ranlib) $(${CONSTITUENT}lib)
$(lib_silent) cat /dev/null >$(${CONSTITUENT}stamp)
#------------------------------------------------------------------
# Future improvement? to empty the object files after
# storing in the library
#
## for f in $?; do \
## rm $${f}; touch $${f}; \
## done
#------------------------------------------------------------------
#
# We add one level of dependency upon the true shared library
# (rather than simply upon the stamp file)
# this is for cases where the shared library has not been built
# while the stamp was created (error??)
#
$(${CONSTITUENT}libname).$(shlibsuffix) :: ${OBJS} $(use_requirements) $(${CONSTITUENT}stamps)
$(lib_echo) "shared library $@"
$(lib_silent) $(shlibbuilder) $(shlibflags) -o $@ ${OBJS} $(${CONSTITUENT}_shlibflags)
$(lib_silent) cat /dev/null >$(${CONSTITUENT}stamp) && \
cat /dev/null >$(${CONSTITUENT}shstamp)
$(${CONSTITUENT}shstamp) :: $(${CONSTITUENT}libname).$(shlibsuffix)
$(lib_silent) if test -f $(${CONSTITUENT}libname).$(shlibsuffix) ; then \
cat /dev/null >$(${CONSTITUENT}stamp) && \
cat /dev/null >$(${CONSTITUENT}shstamp) ; fi
${CONSTITUENT}clean ::
$(cleanup_echo) objects ${CONSTITUENT}
$(cleanup_silent) /bin/rm -f ${OBJS}
$(cleanup_silent) /bin/rm -f $(patsubst %.o,%.d,${OBJS}) $(patsubst %.o,%.dep,${OBJS}) $(patsubst %.o,%.d.stamp,${OBJS})
$(cleanup_silent) cd $(bin); /bin/rm -rf ${CONSTITUENT}_deps ${CONSTITUENT}_dependencies.make
#-----------------------------------------------------------------
#
# New section for automatic installation
#
#-----------------------------------------------------------------
install_dir = ${CMTINSTALLAREA}/$(tag)/lib
${CONSTITUENT}installname = $(library_prefix)${CONSTITUENT}$(library_suffix).$(shlibsuffix)
${CONSTITUENT} :: ${CONSTITUENT}install ;
install :: ${CONSTITUENT}install ;
${CONSTITUENT}install :: $(install_dir)/$(${CONSTITUENT}installname)
ifdef CMTINSTALLAREA
$(echo) "installation done"
endif
$(install_dir)/$(${CONSTITUENT}installname) :: $(bin)$(${CONSTITUENT}installname)
ifdef CMTINSTALLAREA
$(install_silent) $(cmt_install_action) \
-source "`(cd $(bin); pwd)`" \
-name "$(${CONSTITUENT}installname)" \
-out "$(install_dir)" \
-cmd "$(cmt_installarea_command)" \
-cmtpath "$($(package)_cmtpath)"
endif
##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
uninstall :: ${CONSTITUENT}uninstall ;
${CONSTITUENT}uninstall ::
ifdef CMTINSTALLAREA
$(cleanup_silent) $(cmt_uninstall_action) \
-source "`(cd $(bin); pwd)`" \
-name "$(${CONSTITUENT}installname)" \
-out "$(install_dir)" \
-cmtpath "$($(package)_cmtpath)"
endif
#-- end of library_no_static ------
${CONSTITUENT}LIB :: $(${CONSTITUENT}lib)
@/bin/echo ${CONSTITUENT} : library ok
$(${CONSTITUENT}lib) :: ${OBJS}
$(lib_echo) library
$(lib_silent) cd $(bin); \
$(ar) $(${CONSTITUENT}lib) $?
$(lib_silent) $(ranlib) $(${CONSTITUENT}lib)
$(lib_silent) cat /dev/null >$(${CONSTITUENT}stamp)
#------------------------------------------------------------------
# Future improvement? to empty the object files after
# storing in the library
#
## for f in $?; do \
## rm $${f}; touch $${f}; \
## done
#------------------------------------------------------------------
#-----------------------------------------------------------------
#
# New section for automatic installation
#
#-----------------------------------------------------------------
ifeq ($(INSTALLAREA),)
installarea = $(CMTINSTALLAREA)
else
ifeq ($(findstring `,$(INSTALLAREA)),`)
installarea = $(shell $(subst `,, $(INSTALLAREA)))
else
installarea = $(INSTALLAREA)
endif
endif
install_dir = ${installarea}/${CMTCONFIG}/lib
${CONSTITUENT}installname = $(library_prefix)${CONSTITUENT}$(library_suffix).a
${CONSTITUENT} :: ${CONSTITUENT}install
install :: ${CONSTITUENT}install
${CONSTITUENT}install :: $(install_dir)/$($(CONSTITUENT)installname)
@if test ! "${installarea}" = ""; then\
echo "installation done"; \
fi
$(install_dir)/$($(CONSTITUENT)installname) :: $(bin)$(${CONSTITUENT}installname)
@if test ! "${installarea}" = ""; then \
cd $(bin); \
if test ! "$(install_dir)" = ""; then \
if test ! -d "$(install_dir)"; then \
mkdir -p $(install_dir); \
fi ; \
if test -d "$(install_dir)"; then \
echo "Installing library $(${CONSTITUENT}installname) into $(install_dir)"; \
if test -e $(install_dir)/$($(CONSTITUENT)installname); then \
$(cmt_uninstall_area_command) $(install_dir)/$($(CONSTITUENT)installname); \
$(cmt_uninstall_area_command) $(install_dir)/$($(CONSTITUENT)installname).cmtref; \
fi; \
$(cmt_install_area_command) `pwd`/$(${CONSTITUENT}installname) $(install_dir)/$($(CONSTITUENT)installname); \
echo `pwd`/$(${CONSTITUENT}installname) >$(install_dir)/$($(CONSTITUENT)installname).cmtref; \
fi \
else \
echo "Cannot install library $(${CONSTITUENT}installname), no installation directory specified"; \
fi; \
fi
${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
uninstall :: ${CONSTITUENT}uninstall
${CONSTITUENT}uninstall ::
@if test ! "${installarea}" = ""; then \
cd $(bin); \
if test ! "$(install_dir)" = ""; then \
if test -d "$(install_dir)"; then \
echo "Removing installed library $(${CONSTITUENT}installname) from $(install_dir)"; \
$(cmt_uninstall_area_command) $(install_dir)/$($(CONSTITUENT)installname); \
$(cmt_uninstall_area_command) $(install_dir)/$($(CONSTITUENT)installname).cmtref; \
fi \
else \
echo "Cannot uninstall library $(${CONSTITUENT}installname), no installation directory specified"; \
fi; \
fi
${CONSTITUENT}clean ::
$(cleanup_echo) ${OBJS}
$(cleanup_silent) cd $(bin); /bin/rm -f ${OBJS}
#-- start of optdebug_library ------
#-- end of optdebug_library ------
#-- start of optdebug_library_header ------
# create a two part executable. One a
# stripped binary which will occupy less space in RAM and in a dis-
# tribution and the second a debugging information file which is only
# needed if debugging abilities are required
# See GNU binutils OBJCOPY(1)
# http://sourceware.org/binutils/docs-2.17/binutils/objcopy.html#objcopy
depend=$(bin)$(library_prefix)$(library).$(shlibsuffix)
target=$(depend)$(debuginfosuffix)
${CONSTITUENT} :: $(target) ;
$(target) : $(depend)
$(echo) stripping dbg symbols into separate file $@
$(link_silent) objcopy --only-keep-debug $< $@
$(link_silent) objcopy --strip-debug $<
$(link_silent) cd $(@D) && objcopy --add-gnu-debuglink=$(@F) $(<F)
$(link_silent) touch -c $@
${CONSTITUENT}clean ::
$(cleanup_silent) /bin/rm -f $(target)
#-----------------------------------------------------------------
#
# New section for automatic installation
#
#-----------------------------------------------------------------
install_dir = ${CMTINSTALLAREA}/$(tag)/lib
${CONSTITUENT}installname = $(library_prefix)$(library)$(library_suffix).$(shlibsuffix)$(debuginfosuffix)
${CONSTITUENT} :: ${CONSTITUENT}install ;
install :: ${CONSTITUENT}install ;
${CONSTITUENT}install :: $(install_dir)/$(${CONSTITUENT}installname)
ifdef CMTINSTALLAREA
$(echo) "$(${CONSTITUENT}installname) installation done"
endif
$(install_dir)/$(${CONSTITUENT}installname) :: $(bin)$(${CONSTITUENT}installname)
ifdef CMTINSTALLAREA
$(install_silent) $(cmt_install_action) \
-source "`(cd $(bin); pwd)`" \
-name "$(${CONSTITUENT}installname)" \
-out "$(install_dir)" \
-cmd "$(cmt_installarea_command)" \
-cmtpath "$($(package)_cmtpath)"
endif
##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
uninstall :: ${CONSTITUENT}uninstall ;
${CONSTITUENT}uninstall ::
ifdef CMTINSTALLAREA
$(cleanup_silent) $(cmt_uninstall_action) \
-source "`(cd $(bin); pwd)`" \
-name "$(${CONSTITUENT}installname)" \
-out "$(install_dir)" \
-cmtpath "$($(package)_cmtpath)"
endif
#-- start of optdebug_library_header ------
#
# We want to install all header files that follow the standard convention
#
# ../<package>
#
# into
#
# ${CMTINSTALLAREA}/include/<package>/<package>
#
# (with two levels of <package> directory)
#
install_cache_dir = ../${CMTCONFIG}/runtime
${CONSTITUENT} :: ${CONSTITUENT}install
install :: ${CONSTITUENT}install
${CONSTITUENT}install :: $(install_cache_dir)
$(install_cache_dir) ::
@if test "$(install_cache_dir)" = ""; then \
echo "Cannot install header files, no installation directory specified"; \
else \
$(ATLASCOMMONPOLICYROOT)/scripts/setup_runtime_cache.sh; \
fi
clean :: ${CONSTITUENT}clean
${CONSTITUENT}clean :: ${CONSTITUENT}uninstall
uninstall :: ${CONSTITUENT}uninstall
${CONSTITUENT}uninstall ::
@if test "$(install_cache_dir)" = ""; then \
echo "Cannot uninstall header files, no installation directory specified"; \
else \
if test -d $(install_cache_dir) ; then \
echo "Uninstalling files from $(install_cache_dir)"; \
eval rm -rf $(install_cache_dir) ; \
fi \
fi
#!/bin/sh
#+
# Script to execute post-installation commands
#
# Author:-
# David Quarrie
#-
if [ ! -z "$1" ]; then
if [ -f $1 ]; then
sh $1
fi
fi
package AtlasCommonPolicy
author David Quarrie
use LCG_Platforms *
use AtlasDoxygen AtlasDoxygen-* Tools
# This package is designed to be the base for policies and patterns that are
# common between the ATLAS offline and online environments
# Define action that implements a post-install action
action post_install "$(ATLASCOMMONPOLICYROOT)/cmt/post_install.sh $(post_install_script)"
action post_merge_rootmap "true"
# "$(ATLASCOMMONPOLICYROOT)/scripts/abuild-merge-rootmap.py"
action post_merge_genconfdb \
"$(ATLASCOMMONPOLICYROOT)/scripts/abuild-merge-genconfdb.py"
#action post_build_tpcnvdb \
# "$(ATLASCOMMONPOLICYROOT)/scripts/abuild-gen-tpcnvdb.py $(CMTINSTALLAREA)"
action post_build_tpcnvdb \
"true"
action all_post_constituents echo "running postaction"
#document installer install_merge_rootmap install_dir=$(CMTINSTALLAREA)/share/bin "../scripts/abuild-merge-rootmap.py"
document installer install_merge_genconfdb install_dir=$(CMTINSTALLAREA)/share/bin "../scripts/abuild-merge-genconfdb.py"
#document installer install_build_tpcnvdb install_dir=$(CMTINSTALLAREA)/share/bin "../scripts/abuild-gen-tpcnvdb.py"
# DRQ: This pattern and fragment create the runtime setup cache during "make".
# They are retained for backwards compatibility but should be deleted at some point
make_fragment setup_runtime_cache -header=setup_runtime_cache_header
pattern do_setup_runtime_cache \
document setup_runtime_cache do_setup_runtime_cache
# library_no_static fragment from core CMT (renamed as library)
# to allow for shared library only to be built by default
# (instead of shared + static libraries)
# to disable this fragment/behaviour, activate tag WithStatic
tag static WithStatic
tag UnixStatic WithStatic
macro library_fragment "library" WithStatic ""
make_fragment $(library_fragment)
make_fragment application
tag_exclude no-separate-debug separate-debug
apply_tag separate-debug
macro SEPARATEDEBUG "" separate-debug&target-opt&target-linux "1"
macro_append cppflags "" separate-debug&target-opt&target-linux " -g "
macro_append cflags "" separate-debug&target-opt&target-linux " -g "
macro_append fflags "" separate-debug&target-opt&target-linux " -g "
macro debuginfosuffix ".debug"
make_fragment optdebug_library -header=optdebug_library_header
pattern cmake_add_command \
private ; \
macro dummy_for_cmake "<command>" ; \
end_private
pattern cmake_add_definitions \
private ; \
macro dummy_for_cmake "<defines>" ; \
end_private
pattern cmake_add_dependency \
private ; \
macro dummy_for_cmake "<package>" "<packages>"; \
end_private
pattern cmake_add_generated_files \
private ; \
macro dummy_for_cmake "<library>" "<files>" ; \
end_private
pattern cmake_add_libraries \
private ; \
macro dummy_for_cmake "<target>" "<libraries>" ; \
end_private
pattern cmake_conditional_target \
private ; \
macro dummy_for_cmake "<target>" "<type>" ; \
end_private
pattern cmake_ignore_import \
private ; \
macro dummy_for_cmake "<library>" "<import>" ; \
end_private
pattern cmake_set_macro \
private ; \
macro dummy_for_cmake "<macro>" "<value>" ; \
end_private
pattern cmake_override_library_type \
private ; \
macro dummy_for_cmake "<library>" "<type>" ; \
end_private
pattern optdebug_library \
private ; \
macro apply_optdebug_library "without_optdebug_library" separate-debug&target-opt&target-linux "with_optdebug_library" ; \
apply_pattern $(apply_optdebug_library) name=<name> ; \
end_private
pattern with_optdebug_library \
private ; \
document optdebug_library <name>_optdebug_library library=<name> ; \
macro_append <name>_optdebug_library_dependencies " <name>" ; \
macro_append <name>_library_dependencies " <name>_optdebug_library " ; \
action <name>_NICOS_Fix_debuginfo ' if test ! -z "$(NICOS_PROJECT_HOME)" -a ! -z "$(NICOS_PROJECT_RELNAME)" -a \
! -z "$(NICOS_COPY_HOME)" -a ! -z "$(NICOS_PROJECT_RELNAME_COPY)" -a \
-x /usr/lib/rpm/debugedit ; then \
echo fixing debug info in NICOS ; \
if env test -l "$(NICOS_PROJECT_RELNAME_COPY)" -gt -l "$(NICOS_PROJECT_RELNAME)" ; then \
echo Warning: new path ${NICOS_PROJECT_RELNAME_COPY} is longer than old path ${NICOS_PROJECT_RELNAME} - fixing will not work ;\
else \
readelf -wl $(bin)$(library_prefix)<name>.$(shlibsuffix) | grep '\/\/' && echo WARNING above lines might cause problems with debugedit - notice the double slash; \
/usr/lib/rpm/debugedit -b $(NICOS_COPY_HOME)/$(NICOS_PROJECT_RELNAME) -d \
$(NICOS_COPY_HOME)/$(NICOS_PROJECT_RELNAME_COPY) \
$(bin)$(library_prefix)<name>.$(shlibsuffix); fi; \
fi; ' ; \
macro_append <name>_NICOS_Fix_debuginfo_dependencies "" \
NICOSrel_nightly " <name> " ; \
macro_append <name>_optdebug_library_dependencies "" \
NICOSrel_nightly " <name>_NICOS_Fix_debuginfo " ; \
end_private
pattern without_optdebug_library \
private ; \
macro dummy_for_library "<name>" ; \
end_private
action checkreq "true"
macro_append all_dependencies " checkreq "
# translate source location in debug information to the AFS location where nightly will be installed
# protect also against only partial variable definitions
macro NICOS "NICOS${NICOS_PROJECT_RELNAME}"
apply_tag $(NICOS)
macro NICOS_TMP_A "NICOS$(NICOS_PROJECT_HOME)"
macro NICOS_TMP_B "NICOS$(NICOS_COPY_HOME)"
macro NICOS_TMP_C "NICOS$(NICOS_PROJECT_RELNAME_COPY)"
apply_tag $(NICOS_TMP_A)
apply_tag $(NICOS_TMP_B)
apply_tag $(NICOS_TMP_C)
tag_exclude NICOS NICOSrel_nightly
# this is a two stage translation. First we replace the NICOS_PROJECT_HOME to NICOS_COPY_HOME here, keeping the longer "rel_nightly" in place
# then in the second stage after building the library, we relace "rel_nightly" with the shorter rel_N, with N a single digit. The debugedit tools
# requires that the new path is shorter than the old path. ccache requires that the replaced and original path do not depend on the nightly it runs.
macro_append AtlasCommonPolicy_cppflags "" \
NICOSrel_nightly ' -fdebug-prefix-map=$(NICOS_PROJECT_HOME)=$(NICOS_COPY_HOME) '
#--------------------------------------------
## Filling the JOBOPTSEARCHPATH list with list of currently visible installation areas
#--------------------------------------------
#path_remove JOBOPTSEARCHPATH "InstallArea"
#path_prepend JOBOPTSEARCHPATH `${ATLASPOLICYROOT}/cmt/jo.sh`
cmtpath_pattern \
path JOBOPTSEARCHPATH "" ; \
path_remove PYTHONPATH "$(cmt_installarea_prefix)" ; \
path_remove DATAPATH "$(cmt_installarea_prefix)" ; \
path_remove ROOTMAPSEARCHPATH "$(cmt_installarea_prefix)" ; \
path_remove XMLPATH "$(cmt_installarea_prefix)"
cmtpath_pattern \
path_prepend JOBOPTSEARCHPATH "" \
<project>_with_installarea&Unix "<path>/$(cmt_installarea_prefix)/jobOptions" ; \
path_prepend PYTHONPATH "" \
<project>_with_installarea&Unix "<path>/$(cmt_installarea_prefix)/python" ; \
path_prepend PYTHONPATH "" \
<project>_with_installarea&Unix "<path>/$(cmt_installarea_prefix)/${CMTCONFIG}/lib/python$(Python_version)" ; \
path_prepend DATAPATH "" \
<project>_with_installarea&Unix "<path>/$(cmt_installarea_prefix)/share" ; \
path_prepend DATAPATH "" \
<project>_with_installarea&Unix "<path>/$(cmt_installarea_prefix)/${CMTCONFIG}/share" ; \
path_prepend ROOTMAPSEARCHPATH "" \
<project>_with_installarea&Unix "<path>/$(cmt_installarea_prefix)/rootmap" ; \
path_prepend XMLPATH "" \
<project>_with_installarea&Unix "<path>/$(cmt_installarea_prefix)/XML"
cmtpath_pattern \
path_prepend JOBOPTSEARCHPATH "."
# temporary fix for https://its.cern.ch/jira/browse/ATEAM-151
# import and fix merge_files.py from GaudiPolicy
macro merge_componentslist_cmd "python $(AtlasCommonPolicy_root)/scripts/merge_files.py"
macro merge_rootmap_cmd "python $(AtlasCommonPolicy_root)/scripts/merge_files.py"
macro merge_genconfDb_cmd "python $(AtlasCommonPolicy_root)/scripts/merge_files.py"
macro merge_componentslist_cmd "python $(AtlasCommonPolicy_root)/scripts/merge_files.py"
#!/usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
__doc__ = """asimple script to merge all _confDb files into a project-wide _merged_confDb file"""
### imports --------------------------------------------------------------------
import os
import sys
from fnmatch import fnmatch
import shutil
import getopt
import subprocess
_useropts = "o:vh"
_userlongopts = [
"install-area=",
"output-file=",
"verbose",
"help"
]
_error_msg = """\
inspect a (set of) InstallArea(s), collect all confDb files and merge them into one single project-wide merged_confDb file.
Accepted command line options:
--install-area=<path or env.var> ... path to the InstallArea to inspect
-o, --output-file ... name of the merged output file
-v, --verbose ... enable verbose mode
-h, --help ... print this help message
"""
### functions ------------------------------------------------------------------
def collect_genconfdb_fnames(topdir,
pattern='*confDb.py',
exclude_pattern='*_merged_confDb.py'):
""" recursively inspect the `topdir` directory for files named '*confDb.py'
but exclude the files named '*_merged_confDb.py'
returns a list of unique real paths
"""
print "::: collecting genconfdb files..."
all_files = []
# we need the 'followlinks' argument
if sys.version_info[:2] < (2,6): os_walk = _walk
else: os_walk = os.walk
for root, dirs, files in os_walk(topdir, followlinks=True):
for f in files:
if fnmatch(f, pattern) and not fnmatch(f, exclude_pattern):
full_name = os.path.join(root, f)
full_name = os.path.realpath(full_name)
all_files.append(full_name)
print " - [%s]" % (full_name,)
all_files = list(set(all_files))
print "::: collecting genconfdb files... [done] (nbr=%i)" % (len(all_files),)
return all_files
def merge_files(fnames, ofname):
"""merge the content of all files `fnames` into the file `ofname`
"""
print "::: merging files into [%s]..." % (ofname,)
_copy = shutil.copyfileobj
ofile = open(ofname, 'w')
for fname in fnames:
print "::: processing [%s]..." % (fname,)
_copy(fsrc=open(fname, 'r'), fdst=ofile)
ofile.flush()
ofile.close()
print "::: merging files into [%s]... [done]" % (ofname,)
return 0
def do_merge_files(topdir, ofname,
pattern='*_confDb.py',
exclude_pattern='*_merged_confDb.py'):
if isinstance(topdir, basestring):
topdir = topdir.split(os.pathsep)
confdb_fnames = []
for d in topdir:
confdb_fnames.extend(collect_genconfdb_fnames(d, pattern,
exclude_pattern))
return merge_files(confdb_fnames, ofname)
def main():
"""the main entry point of this script
"""
class Options(object):
"""place holder for command line options values"""
pass
def _help_and_exit():
print _error_msg
sys.exit(1)
def _get_currentpath():
current = []
for m in ('CMTINSTALLAREA', 'cmt_installarea_prefix'):
cmd = 'cmt -disable_warnings show macro_value %s' % m
p = subprocess.Popen(cmd, shell = True,
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT)
out = p.communicate()[0]
if p.returncode != 0:
raise OSError(out)
current.append(out)
return current[0].rstrip(current[1]).rstrip(os.sep)
def _install_area():
cmtpath = _get_currentpath()
install_area = os.path.join(cmtpath, 'InstallArea')
return install_area
def _outfname():
cmtpath = _get_currentpath()
proj_name = os.path.basename(cmtpath)
try:
proj_name = cmtpath.split(os.sep)[-2]
except Exception:
pass
cmtconf = os.environ['CMTCONFIG']
install_area = os.path.join(cmtpath, 'InstallArea')
pyvers = 'python%s.%s' % sys.version_info[:2]
outdir = os.path.join(install_area, cmtconf, 'lib', pyvers)
outfname = os.path.join(outdir, '%s_merged_confDb.py' % proj_name)
return outfname
opts = Options()
opts.install_area = _install_area()
opts.output_file = _outfname()
opts.verbose = False
# process user options
try:
optlist, args = getopt.getopt(sys.argv[1:], _useropts, _userlongopts)
except getopt.error:
print sys.exc_value
_help_and_exit()
pass
if args:
print "Unhandled arguments:", args
_help_and_exit()
pass
for opt, arg in optlist:
if opt in ("--install-area",):
opts.install_area = arg
pass
elif opt in ("-o", "--output-file",):
opts.output_file = arg
pass
elif opt in ("-v", "--verbose"):
opts.verbose = True
pass
elif opt in ("-h", "--help"):
_help_and_exit()
pass
else:
print "Unknown option:", opt
_help_and_exit()
pass
#print args
install_area = []
_install_area = opts.install_area[:]
if isinstance(_install_area, basestring):
_install_area =[_install_area]
else:
_install_area = list(_install_area)
for i,d in enumerate(_install_area[:]):
_install_area[i] = os.path.expanduser(os.path.expandvars(d))
for d in _install_area:
install_area.extend(d.split(os.pathsep))
outdir = os.path.dirname(opts.output_file)
if not os.path.exists(outdir):
if outdir:
try:
os.makedirs(outdir)
except OSError, err:
import errno
# "handle" race condition
if err.errno == errno.EEXIST:
pass
else:
raise
if os.path.exists(opts.output_file):
os.remove(opts.output_file)
print ":"*80
print "::: abuild-merge-genconfdb"
rc = do_merge_files(topdir=install_area,
ofname=opts.output_file)
print "::: bye."
print ":"*80
return rc
# copied verbatim from py-2.6
def _walk(top, topdown=True, onerror=None, followlinks=False):
"""Directory tree generator.
For each directory in the directory tree rooted at top (including top
itself, but excluding '.' and '..'), yields a 3-tuple
dirpath, dirnames, filenames
dirpath is a string, the path to the directory. dirnames is a list of
the names of the subdirectories in dirpath (excluding '.' and '..').
filenames is a list of the names of the non-directory files in dirpath.
Note that the names in the lists are just names, with no path components.
To get a full path (which begins with top) to a file or directory in
dirpath, do os.path.join(dirpath, name).
If optional arg 'topdown' is true or not specified, the triple for a
directory is generated before the triples for any of its subdirectories
(directories are generated top down). If topdown is false, the triple
for a directory is generated after the triples for all of its
subdirectories (directories are generated bottom up).
When topdown is true, the caller can modify the dirnames list in-place
(e.g., via del or slice assignment), and walk will only recurse into the
subdirectories whose names remain in dirnames; this can be used to prune
the search, or to impose a specific order of visiting. Modifying
dirnames when topdown is false is ineffective, since the directories in
dirnames have already been generated by the time dirnames itself is
generated.
By default errors from the os.listdir() call are ignored. If
optional arg 'onerror' is specified, it should be a function; it
will be called with one argument, an os.error instance. It can
report the error to continue with the walk, or raise the exception
to abort the walk. Note that the filename is available as the
filename attribute of the exception object.
By default, os.walk does not follow symbolic links to subdirectories on
systems that support them. In order to get this functionality, set the
optional argument 'followlinks' to true.
Caution: if you pass a relative pathname for top, don't change the
current working directory between resumptions of walk. walk never
changes the current directory, and assumes that the client doesn't
either.
Example:
import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
print root, "consumes",
print sum([getsize(join(root, name)) for name in files]),
print "bytes in", len(files), "non-directory files"
if 'CVS' in dirs:
dirs.remove('CVS') # don't visit CVS directories
"""
from os.path import join, isdir, islink
# We may not have read permission for top, in which case we can't
# get a list of the files the directory contains. os.path.walk
# always suppressed the exception then, rather than blow up for a
# minor reason when (say) a thousand readable directories are still
# left to visit. That logic is copied here.
try:
# Note that listdir and error are globals in this module due
# to earlier import-*.
names = os.listdir(top)
except os.error, err:
if onerror is not None:
onerror(err)
return
dirs, nondirs = [], []
for name in names:
if isdir(join(top, name)):
dirs.append(name)
else:
nondirs.append(name)
if topdown:
yield top, dirs, nondirs
for name in dirs:
path = join(top, name)
if followlinks or not islink(path):
for x in _walk(path, topdown, onerror, followlinks):
yield x
if not topdown:
yield top, dirs, nondirs
if __name__ == "__main__":
import sys
sys.exit(main())
#!/usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
__doc__ = """a simple script to merge all .dsomap files into a project-wide .rootmap file"""
### imports --------------------------------------------------------------------
import os
import sys
from fnmatch import fnmatch as _fnmatch
import shutil
import getopt
import subprocess
### globals --------------------------------------------------------------------
_dsomap_exclude_list = [
"TestRootConversions1Dict.dsomap",
"TestRootConversions2Dict.dsomap",
"DataModelTestDataRead.rootmap",
"DataModelTestDataWriteCnvPoolCnv.rootmap",
"DataModelTestDataReadCnvPoolCnv.rootmap",
"DataModelTestDataReadDict.dsomap",
"DataModelTestDataWriteDict.dsomap",
# from APR
"test_PersistencySvc_CustomReferenceAndStreamerDict.dsomap",
"test_PersistencySvc_CustomReferenceDict.dsomap",
"test_PersistencySvc_CustomStreamersDict.dsomap",
"test_PersistencySvc_NoClassIDDict.dsomap",
"test_StorageSvc_TransientMembersDict.dsomap",
"test_TestDictionaryDict.dsomap",
]
"""list of dsomap files to ignore from the merge"""
_useropts = "i:o:vh"
_userlongopts = [
"install-area=",
"output-file=",
"verbose",
"help"
]
_error_msg = """\
inspect a (set of) InstallArea(s), collect all .dsomap files and merge them into one single project-wide .rootmap file.
Accepted command line options:
-i, --install-area=<path or env.var> ... path to the InstallArea to inspect
-o, --output-file ... name of the merged output file
-v, --verbose ... enable verbose mode
-h, --help ... print this help message
"""
### functions ------------------------------------------------------------------
def fnmatch(path, pattern):
"""helper function to test multiple patterns
"""
patterns = pattern
if isinstance(patterns, basestring):
patterns = [patterns]
for pattern in patterns:
if _fnmatch(path, pattern):
return True
return False
def _is_in_ignore_list(fname):
""" helper method to test if `fname` is in any of the ignore list
"""
bfname = os.path.basename(fname)
return bfname in _dsomap_exclude_list
def collect_dsomap_fnames(topdir, pattern=['*.dsomap','*.rootmap']):
""" recursively inspect the `topdir` directory for files named '*.dsomap'
returns a list of unique real paths
"""
print "::: collecting dsomap files..."
all_files = []
# we need the 'followlinks' argument
if sys.version_info[:2] < (2,6): os_walk = _walk
else: os_walk = os.walk
if isinstance(pattern, basestring):
pattern = [pattern]
# opt hack
_install_area_cmtcfg = os.path.join('InstallArea', os.environ['CMTCONFIG'])
for root, dirs, files in os_walk(topdir, followlinks=True):
for f in files:
if fnmatch(f, pattern):
full_name = os.path.join(root, f)
full_name = os.path.realpath(full_name)
if (os.environ['CMTCONFIG'] in full_name and
not _is_in_ignore_list(full_name) and
# FIXME: we can't rely on *ALL* files being under the
# install-area b/c of component libs!
#not _install_area_cmtcfg in full_name and
1):
all_files.append(full_name)
print " - [%s]" % (full_name,)
all_files = list(set(all_files))
print "::: collecting dsomap files... [done] (nbr=%i)" % (len(all_files),)
return all_files
def merge_files(fnames, ofname):
"""merge the content of all files `fnames` into the file `ofname`
"""
print "::: merging files into [%s]..." % (ofname,)
_copy = shutil.copyfileobj
ofile = open(ofname, 'w')
for fname in fnames:
print "::: processing [%s]..." % (fname,)
_copy(fsrc=open(fname, 'r'), fdst=ofile)
ofile.flush()
ofile.close()
print "::: merging files into [%s]... [done]" % (ofname,)
return 0
def do_merge_files(topdir, ofname, pattern=['*.dsomap','*.rootmap']):
if isinstance(topdir, basestring):
topdir = topdir.split(os.pathsep)
dsomap_fnames = []
for d in topdir:
dsomap_fnames.extend(collect_dsomap_fnames(d, pattern))
return merge_files(dsomap_fnames, ofname)
def main():
"""the main entry point of this script
"""
class Options(object):
"""place holder for command line options values"""
pass
def _help_and_exit():
print _error_msg
sys.exit(1)
def _get_currentpath():
current = []
for m in ('CMTINSTALLAREA', 'cmt_installarea_prefix'):
cmd = 'cmt -disable_warnings show macro_value %s' % m
p = subprocess.Popen(cmd, shell = True,
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT)
out = p.communicate()[0]
if p.returncode != 0:
raise OSError(out)
current.append(out)
return current[0].rstrip(current[1]).rstrip(os.sep)
def _install_area():
cmtpath = _get_currentpath()
install_area = os.path.join(cmtpath, 'InstallArea')
#return install_area
# FIXME: we should only return the install-area, but some needed
# rootmap files (for component libs) are installed under the pkg
# $CMTCONFIG directory and not installed under the install-area
return cmtpath
def _outfname():
cmtpath = _get_currentpath()
proj_name = os.path.basename(cmtpath)
try:
proj_name = cmtpath.split(os.sep)[-2]
except Exception:
pass
cmtconf = os.environ['CMTCONFIG']
install_area = os.path.join(cmtpath, 'InstallArea')
outdir = os.path.join(install_area, cmtconf, 'lib')
outfname = os.path.join(outdir, '%s.rootmap' % proj_name)
return outfname
opts = Options()
opts.install_area = _install_area()
opts.output_file = _outfname()
opts.verbose = False
# process user options
try:
optlist, args = getopt.getopt(sys.argv[1:], _useropts, _userlongopts)
except getopt.error:
print "-->",_useropts
print sys.exc_value
_help_and_exit()
pass
if args:
print "Unhandled arguments:", args
_help_and_exit()
pass
for opt, arg in optlist:
if opt in ("-i", "--install-area",):
opts.install_area = arg
pass
elif opt in ("-o", "--output-file",):
opts.output_file = arg
pass
elif opt in ("-v", "--verbose"):
opts.verbose = True
pass
elif opt in ("-h", "--help"):
_help_and_exit()
pass
else:
print "Unknown option:", opt
_help_and_exit()
pass
#print args
install_area = []
_install_area = opts.install_area[:]
if isinstance(_install_area, basestring):
_install_area =[_install_area]
else:
_install_area = list(_install_area)
for i,d in enumerate(_install_area[:]):
_install_area[i] = os.path.expanduser(os.path.expandvars(d))
for d in _install_area:
install_area.extend(d.split(os.pathsep))
outdir = os.path.dirname(opts.output_file)
if not os.path.exists(outdir):
if outdir:
try:
os.makedirs(outdir)
except OSError, err:
import errno
# "handle" race condition
if err.errno == errno.EEXIST:
pass
else:
raise
if os.path.exists(opts.output_file):
os.remove(opts.output_file)
print ":"*80
print "::: abuild-merge-rootmap"
rc = do_merge_files(topdir=install_area,
ofname=opts.output_file)
print "::: bye."
print ":"*80
return rc
# copied verbatim from py-2.6
def _walk(top, topdown=True, onerror=None, followlinks=False):
"""Directory tree generator.
For each directory in the directory tree rooted at top (including top
itself, but excluding '.' and '..'), yields a 3-tuple
dirpath, dirnames, filenames
dirpath is a string, the path to the directory. dirnames is a list of
the names of the subdirectories in dirpath (excluding '.' and '..').
filenames is a list of the names of the non-directory files in dirpath.
Note that the names in the lists are just names, with no path components.
To get a full path (which begins with top) to a file or directory in
dirpath, do os.path.join(dirpath, name).
If optional arg 'topdown' is true or not specified, the triple for a
directory is generated before the triples for any of its subdirectories
(directories are generated top down). If topdown is false, the triple
for a directory is generated after the triples for all of its
subdirectories (directories are generated bottom up).
When topdown is true, the caller can modify the dirnames list in-place
(e.g., via del or slice assignment), and walk will only recurse into the
subdirectories whose names remain in dirnames; this can be used to prune
the search, or to impose a specific order of visiting. Modifying
dirnames when topdown is false is ineffective, since the directories in
dirnames have already been generated by the time dirnames itself is
generated.
By default errors from the os.listdir() call are ignored. If
optional arg 'onerror' is specified, it should be a function; it
will be called with one argument, an os.error instance. It can
report the error to continue with the walk, or raise the exception
to abort the walk. Note that the filename is available as the
filename attribute of the exception object.
By default, os.walk does not follow symbolic links to subdirectories on
systems that support them. In order to get this functionality, set the
optional argument 'followlinks' to true.
Caution: if you pass a relative pathname for top, don't change the
current working directory between resumptions of walk. walk never
changes the current directory, and assumes that the client doesn't
either.
Example:
import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
print root, "consumes",
print sum([getsize(join(root, name)) for name in files]),
print "bytes in", len(files), "non-directory files"
if 'CVS' in dirs:
dirs.remove('CVS') # don't visit CVS directories
"""
from os.path import join, isdir, islink
# We may not have read permission for top, in which case we can't
# get a list of the files the directory contains. os.path.walk
# always suppressed the exception then, rather than blow up for a
# minor reason when (say) a thousand readable directories are still
# left to visit. That logic is copied here.
try:
# Note that listdir and error are globals in this module due
# to earlier import-*.
names = os.listdir(top)
except os.error, err:
if onerror is not None:
onerror(err)
return
dirs, nondirs = [], []
for name in names:
if isdir(join(top, name)):
dirs.append(name)
else:
nondirs.append(name)
if topdown:
yield top, dirs, nondirs
for name in dirs:
path = join(top, name)
if followlinks or not islink(path):
for x in _walk(path, topdown, onerror, followlinks):
yield x
if not topdown:
yield top, dirs, nondirs
if __name__ == "__main__":
import sys
sys.exit(main())
#!/usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# @file: GaudiPolicy/cmt/fragments/merge_files.py
# @purpose: merge_files <fragment> file into a 'per-project' <merged> file
# @author: Sebastien Binet <binet@cern.ch>
import os
import sys
from datetime import datetime
import fcntl
def mergeFiles( fragFileNames, mergedFileName, commentChar, doMerge, ignoreMissing ):
startMark = "%s --Beg " % commentChar
timeMark = "%s --Date inserted: %s" % (commentChar, datetime.now())
endMark = "%s --End " % commentChar
nameOffset = len(startMark)
basenames = map(os.path.basename, fragFileNames)
isNewFile = not os.path.exists(mergedFileName)
# create an empty file if it does not exist
# "append mode" ensures that, in case of two processes trying to
# create the file, they do not truncate each other file
if isNewFile:
# check if the destination directory exists
path_to_file = os.path.split(mergedFileName)[0]
if path_to_file and not os.path.isdir(path_to_file):
# if doesn't exist, create it
os.makedirs(path_to_file)
open(mergedFileName,'a')
lockFile = open( mergedFileName + '.lock', 'a' )
# locking file, gaining exclusive access to it
# code from locker.py, only posix relevant part - we don't support NT - did we ever ??
# Lock with a simple call to lockf() - this blocks until the lock is aquired
try:
fcntl.lockf( lockFile, fcntl.LOCK_EX )
except IOError, exc_value:
print "Problem when trying to lock {0}, IOError {1}".format(mergedFile, exc_value[0])
raise
mergedFile = open( mergedFileName, 'r' )
try:
newLines = [ ]
skipBlock = ""
for line in mergedFile.readlines():
if line.startswith(startMark) and line[nameOffset:].strip() in basenames:
skipBlock = endMark + line[nameOffset:].strip()
# remove all the empty lines occurring before the start mark
while (len(newLines) > 0) and (newLines[-1].strip() == ''):
newLines.pop()
if not skipBlock:
newLines.append(line)
if line.startswith(skipBlock):
skipBlock = ""
if skipBlock:
print "WARNING: missing end mark ('%s')" % skipBlock
if doMerge:
for f in fragFileNames:
if ignoreMissing and not os.path.exists(f):
print "WARNING: '%s' does not exist, I'm ignoring it" % f
continue
# I do not want to add 2 empty lines at the beginning of a file
if newLines:
newLines.append('\n\n')
bf = os.path.basename(f)
newLines.append(startMark + bf + '\n')
newLines.append(timeMark + '\n')
fileData = open(f, 'r').read()
newLines.append(fileData)
if fileData and fileData[-1] != '\n':
newLines.append('\n')
newLines.append(endMark + bf + '\n')
#mergedFile.seek(0)
#mergedFile.truncate(0)
#mergedFile.writelines(newLines)
newFile = open( mergedFileName + ".new" , 'w' )
newFile.writelines(newLines)
newFile.close()
os.rename(mergedFileName + ".new",mergedFileName)
finally:
# unlock file
fcntl.lockf( lockFile, fcntl.LOCK_UN )
return 0
if __name__ == "__main__":
from optparse import OptionParser
parser = OptionParser(usage="usage: %prog [options]")
parser.add_option(
"-i",
"--input-file",
action = "append",
dest = "fragFileNames",
default = [],
help = "The path and name of the file one wants to merge into the 'master' one"
)
parser.add_option(
"-m",
"--merged-file",
dest = "mergedFileName",
default = None,
help = "The path and name of the 'master' file which will hold the content of all the other fragment files"
)
parser.add_option(
"-c",
"--comment-char",
dest = "commentChar",
default = "#",
help = "The type of the commenting character for the type of files at hand (this is an attempt at handling the largest possible use cases)"
)
parser.add_option(
"--do-merge",
dest = "doMerge",
action = "store_true",
default = True,
help = "Switch to actually carry on with the merging procedure"
)
parser.add_option(
"--un-merge",
dest = "unMerge",
action = "store_true",
default = False,
help = "Switch to remove our fragment file from the 'master' file"
)
parser.add_option(
"--stamp-dir",
dest = "stampDir",
action = "store",
default = None,
help = "Create the stamp file in the specified directory. If not specified"
+" the directory of the source file is used."
)
parser.add_option(
"--no-stamp",
action = "store_true",
help = "Do no create stamp files."
)
parser.add_option(
"--ignore-missing",
dest = "ignoreMissing",
action = "store_true",
help = "Print a warning if a fragment file is missing, but do not fail."
)
(options, args) = parser.parse_args()
# ensure consistency...
options.doMerge = not options.unMerge
# allow command line syntax as
# merge_files.py [options] <fragment file1> [<fragment file2>...] <merged file>
if args:
options.mergedFileName = args[-1]
options.fragFileNames += args[:-1]
sc = 1
if not options.fragFileNames or \
not options.mergedFileName :
str(parser.print_help() or "")
print "*** ERROR ***",sys.argv
sys.exit(sc)
pass
if options.stampDir is None:
stampFileName = lambda x: x + ".stamp"
else:
stampFileName = lambda x: os.path.join(options.stampDir,
os.path.basename(x)
+ ".stamp")
# Configure Python logging
import logging
logging.basicConfig(level = logging.INFO)
if "GAUDI_BUILD_LOCK" in os.environ:
globalLock = locker.LockFile(os.environ["GAUDI_BUILD_LOCK"], temporary = True)
else:
globalLock = None
if True: #try:
sc = mergeFiles( options.fragFileNames, options.mergedFileName,
options.commentChar,
doMerge = options.doMerge,
ignoreMissing = options.ignoreMissing)
if not options.no_stamp:
for stamp in map(stampFileName, options.fragFileNames):
open(stamp, 'w')
#except IOError, err:
# print "ERROR:",err
#except Exception, err:
# print "ERROR:",err
#except:
# print "ERROR: unknown error !!"
del globalLock
sys.exit( sc )