showq-0.4.1+git20090622+dfsg0/ 0000755 0001750 0001750 00000000000 11703037352 015141 5 ustar alessio alessio showq-0.4.1+git20090622+dfsg0/wscript 0000644 0001750 0001750 00000000506 11550357070 016562 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
APPNAME='showq'
VERSION='0.5.0'
srcdir = '.'
blddir = 'output'
def set_options(opt):
opt.sub_options('src')
opt.sub_options('ui')
def configure(conf):
conf.sub_config('src')
conf.sub_config('ui')
def build(bld):
bld.add_subdirs('src')
bld.add_subdirs('ui')
showq-0.4.1+git20090622+dfsg0/ui/ 0000755 0001750 0001750 00000000000 11550357070 015560 5 ustar alessio alessio showq-0.4.1+git20090622+dfsg0/ui/wscript 0000644 0001750 0001750 00000001044 11550357070 017175 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import misc
def set_options(opt):
pass
def configure(conf):
pass
def build(bld):
bld.new_task_gen(
source='showq.glade',
rule='./gconvert',
cwd=bld.path.abspath()
)
bld.install_files('${PREFIX}/share/showq/ui',
['editcue.ui',
'editmidi.ui',
'editfade.ui',
'efaders.ui',
'epatch.ui',
'editwave.ui',
'editgroup.ui',
'app.ui',
'pref.ui',
'prop.ui',
'renumber.ui',
'about.ui',
'popupmenu.ui',
'patch.ui'])
showq-0.4.1+git20090622+dfsg0/ui/editcue.ui 0000644 0001750 0001750 00000041172 11550357070 017546 0 ustar alessio alessio
showq-0.4.1+git20090622+dfsg0/ui/pref.ui 0000644 0001750 0001750 00000031541 11550357070 017057 0 ustar alessio alessio
000000TruePreferencesGDK_WINDOW_TYPE_HINT_DIALOGTrueTrueTrueGTK_POS_LEFTTrueTrueTrueLoad last show on start upTrueTrueFalseFalseTrueTrueDisable move to next cueTrueFalseFalse1TrueGeneralFalseTrueTrue0GTK_SHADOW_NONETrue12TrueTrue23TrueTrue1Device IdGTK_JUSTIFY_CENTERTrueTrueFalseadjustment1TrueFalse123True2312True1212True12TrueIncoming show control12TrueTrueUse MIDI Show ControlTrueTrue1TrueRemote1FalseTrueTruepage 32False2TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-cancelTrueTrueTrueTruegtk-okTrue1FalseGTK_PACK_ENDPref_load_suPref_disable_move_nextcheckbutton1cancelbutton4okbutton4
showq-0.4.1+git20090622+dfsg0/ui/popupmenu.ui 0000644 0001750 0001750 00000003044 11550357070 020150 0 ustar alessio alessio
gtk-editmenuitem1gtk-media-stopmenuitem2gtk-media-pausemenuitem3menuitem4Sneak outTrue
showq-0.4.1+git20090622+dfsg0/ui/about.ui 0000644 0001750 0001750 00000002331 11550357070 017230 0 ustar alessio alessio
TrueGDK_WINDOW_TYPE_HINT_NORMALCopyright Errol van-de-l'Islehttp://showq.berlios.de/http://showq.berlios.de/GPL 2+Errol van-de-l'Isletranslator-creditsFalseGTK_PACK_END
showq-0.4.1+git20090622+dfsg0/ui/showq.glade 0000644 0001750 0001750 00000675201 11550357070 017732 0 ustar alessio alessio
TruePreferencesGDK_WINDOW_TYPE_HINT_DIALOGTrueTrueTrueGTK_POS_LEFTTrueTrueTrueLoad last show on start upTrue0TrueFalseFalseTrueTrueDisable move to next cue0TrueFalseFalse1TrueGeneraltabFalseTrueTrue0GTK_SHADOW_NONETrue12TrueTrue23TrueTrue1Device IdGTK_JUSTIFY_CENTERTrueTrueFalse0 0 0 0 0 0TrueFalse123True2312True1212True12TrueIncoming show control12TrueTrueUse MIDI Show Control0TrueTrue11TrueRemotetab1FalseTrue2Truepage 3tab2False2TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-cancelTrue-6TrueTrueTruegtk-okTrue-51FalseGTK_PACK_ENDTruePropertiesGDK_WINDOW_TYPE_HINT_DIALOGTrueTrueTrue6True0Project name : FalseFalseTrueFalse1TrueTrueFalse*2False6TrueFalse1True6True0<b>Notes</b>TrueFalseFalseTrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrue122TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-applyTrue-10TrueTrueTruegtk-cancelTrue-61TrueTrueTruegtk-okTrue-52FalseGTK_PACK_ENDTrueRenumber cuesGDK_WINDOW_TYPE_HINT_DIALOGTrueTrue6TrueTrue23True0Start numberGTK_FILLTrue0: 12GTK_FILLTrue0Step12GTK_FILLTrue0: 1212GTK_FILLTrueTrue0 0 0 0 0 012True23TrueTrue0 0 0 0 0 012True2312TrueTrueSkip cues following an auto continue cueTrue0TrueTrueFalseFalse1TrueWarning : This will renumber the whole show.FalseFalse22TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-cancelTrue-6TrueTrueTruegtk-okTrue-51FalseGTK_PACK_ENDTrueGDK_WINDOW_TYPE_HINT_NORMALCopyright Errol van-de-l'Islehttp://showq.berlios.de/http://showq.berlios.de/GPL 2+Errol van-de-l'Isletranslator-creditsFalseGTK_PACK_ENDTrueTruegtk-editTrueTrueTruegtk-media-stopTrueTrueTruegtk-media-pauseTrueTrueTrueSneak outTruePatchGDK_WINDOW_TYPE_HINT_DIALOGTrueTrueTrueTrueTrueAudiotabFalseTrueTrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrueTrueFalse21TrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrue21TrueMIDItab1False1TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-cancelTrue-6TrueTrueTruegtk-okTrue-51FalseGTK_PACK_ENDTrue00.10000000149011612TrueTrueGTK_BUTTONBOX_CENTERTrueTrueStart all children0TrueTrueTrueTrueStart first cue and enter group0TrueTrueed_grp_all1TrueTrueTrue_FileTrueTruegtk-newTrueTrueTruegtk-openTrueTrueTruemenuitem1TrueTruegtk-saveTrueTrueTruegtk-save-asTrueTrueTrueTruegtk-quitTrueTrueTrue_EditTrueTrueNew CueTrueTrueMIDI cueTrueTrueGroup cueTrueTrueWave cueTrueTrueStop cueTrueTrueStart cueTrueTruePause cueTrueTrueFade cueTrueTrueEdit CueTrueTrueRenumberTrueTrueCutTrueTrueTrueLockTrueTruemenuitem5TrueTruePatchTrueTruegtk-propertiesTrueTrueTrueTruegtk-preferencesTrueTrueTrue_CueTrueTrueGoTrueTruegtk-media-play1TruePreviousTrueTruegtk-media-previous1TrueNextTrueTruegtk-media-next1TrueTrueLoadTrueTruemenuitem6TrueTrueAll StopTrueTrue_ViewTrueTrueCue numberTrueTrueTrueDescriptionTrueTrueTrueWaitTrueTrueTrueTypeTrueTrueTrueElapsed timeTrueTrueTrueAuto continueTrueTrueTrue_HelpTrueTruegtk-aboutTrueTrueFalseFalseTrueGTK_TOOLBAR_BOTHTrueNew Filegtk-newFalseTrueOpen Filegtk-openFalseTrueSave Filegtk-saveFalseTrueStop all cuesgtk-stopFalseFalseFalse1TrueTrueGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrueTrueFalse2TrueFalseFalse3TrueTrueTrueFade time FalseFalseTrueTrue0 0 1000 0.10000000149 1 1131FalseTrueTrueTrueDefault0TrueTrueTrueTrueStop on fade complete0Trueed_fade_defaultcomplete1TrueTruePause on fade complete0Trueed_fade_defaultcomplete2FalseFalse1TrueTrueOutput fadersFalseFalseTrueFalse41TrueTrueTrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue1True0FalseFalse1TrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue2True0FalseFalse11TrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue3True0FalseFalse12TrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue4True0FalseFalse13TrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue5True0FalseFalse14TrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue6True0FalseFalse15TrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue7True0FalseFalse16TrueTrueTrue0 0 1 0.0010000000475 0 0True5TrueTrue8True0FalseFalse172TrueTrueOutput PatchFalseFalseTrueFalse41True22True99True30True112GTK_FILLTrue223GTK_FILLTrue334GTK_FILLTrue445GTK_FILLTrue556GTK_FILLTrue667GTK_FILLTrue778GTK_FILLTrue889GTK_FILL3030True112GTK_FILLTrue223GTK_FILLTrue445GTK_FILLTrue334GTK_FILLTrue556GTK_FILLTrue778GTK_FILLTrue667GTK_FILLTrue889GTK_FILLTrueTrueTrue01212TrueTrueTrue01223TrueTrueTrue01234TrueTrueTrue01245TrueTrueTrue01256TrueTrueTrue01267TrueTrueTrue01278TrueTrueTrue01289TrueTrueTrue02312TrueTrueTrue02323TrueTrueTrue02334TrueTrueTrue02345TrueTrueTrue02356TrueTrueTrue02367TrueTrueTrue02378TrueTrueTrue02389TrueTrueTrue03412TrueTrueTrue03423TrueTrueTrue03434TrueTrueTrue03445TrueTrueTrue03456TrueTrueTrue03467TrueTrueTrue03478TrueTrueTrue03489TrueTrueTrue04512TrueTrueTrue04523TrueTrueTrue04534TrueTrueTrue04545TrueTrueTrue04556TrueTrueTrue04567TrueTrueTrue04578TrueTrueTrue04589TrueTrueTrue05612TrueTrueTrue05623TrueTrueTrue05634TrueTrueTrue05645TrueTrueTrue05656TrueTrueTrue05667TrueTrueTrue05678TrueTrueTrue05689TrueTrueTrue06712TrueTrueTrue06723TrueTrueTrue06734TrueTrueTrue06745TrueTrueTrue06756TrueTrueTrue06767TrueTrueTrue06778TrueTrueTrue06789TrueTrueTrue07812TrueTrueTrue07823TrueTrueTrue07834TrueTrueTrue07845TrueTrueTrue07856TrueTrueTrue07867TrueTrueTrue07878TrueTrueTrue07889TrueTrueTrue08912TrueTrueTrue08923TrueTrueTrue08934TrueTrueTrue08945TrueTrueTrue08956TrueTrueTrue08967TrueTrueTrue08978TrueTrueTrue089891212True016I
n
p
u
t
12GTK_FILLTrue0Output122TrueTrue0True12True32True16File :GTK_FILLTrue16File type :12GTK_FILLTrue16Length :23GTK_FILLTrue01212GTK_FILLTrue01223GTK_FILLTrue12GTK_FILLTrueTruelabel_itemFalseFalseTrue0True12True12True16Start Time :GTK_FILLTrueTrue0 0 10000 0.10000000149 1 113True12TrueTruelabel_itemFalseFalse1TrueGTK_TOOLBAR_BOTHTruegtk-media-playFalseTruegtk-media-pauseed_wave_playFalseTruegtk-media-stopTrueed_wave_playFalseFalseFalse2TrueTrueTimeFalseFalseTrueFalse1TrueTrueGTK_UPDATE_DISCONTINUOUS0 0 1 0.10000000149 1 1GTK_POS_LEFT2False3518TrueTrueTrueTrueTrue0MIDI function : FalseFalseTrueNote on
Note off
Program change
Controller change
Polyphonic aftertouch
Channel aftertouch
Pitch bend change
MIDI Show Control
MIDI SysEx1FalseTrueTrueOutput patch : FalseFalseTrue1
2
3
4
5
6
7
81False1TrueTrueFalseTrue32True0MIDI channel : GTK_FILLTrue012GTK_FILLTrue023GTK_FILLTrueTrue1 1 16 1 1 11True12True1 0 127 1 10 101True1212True1 0 127 1 10 101True1223Truelabel133tabFalseTrueTrue0GTK_SHADOW_NONETrue12TrueGeneral lighting
Moving lights
Colour changers
Strobes
Lasers
Chasers
General sound
Music
CD players
EPROM play-back
Audio tape machines
Intercoms
Amplifiers
Audio effects devices
Equalisers
General machinery
Rigging
Flys
Lifts
Turntables
Trusses
Robots
Animation
Floats
Breakaways
Barges
General video
Video tape machines
Video cassette machine
Video disc players
Video switchers
Video effects
Video character generators
Video still stores
Video monitors
General projection
Film projectors
Slide projectors
Video projectors
Dissolvers
Shutter controls
General process control
Hydraulic oil
Water
Carbon dioxide
Compressed air
Natural gas
Fog
Smoke
Cracked haze
General pyrotechnics
Fireworks
Explosions
Flame
Smoke pots
All devicesTrueCommand formatlabel_itemFalseTrueTrue0GTK_SHADOW_NONETrue12TrueTrue0 0 127 1 10 101TrueTrueDevice IDlabel_itemFalseTrue0GTK_SHADOW_NONETrue12TrueGO
STOP
RESUME
TIMED GO
LOAD
SET
FIRE
ALL OFF
RESTORE
RESET
GO OFF
GO/JAM CLOCK
STANDBY +
STANDBY -
SEQUENCE +
SEQUENCE -
START CLOCK
STOP CLOCK
ZERO CLOCK
SET CLOCK
MTC CHASE ON
MTC CHASE OFF
OPEN CUE LIST
CLOSE CUE LIST
OPEN CUE PATH
CLOSE CUE PATHTrueCommandlabel_item1False1TrueTrueFalseTrueTruelabel145tabFalseTrueTrue0GTK_SHADOW_NONETrue12TrueTrue*TrueQ Numberlabel_itemFalseTrue0GTK_SHADOW_NONETrue12TrueTrue*TrueQ Listlabel_itemFalse1True0GTK_SHADOW_NONETrue12TrueTrue*TrueQ Pathlabel_itemFalse21Truelabel146tab1FalseTrueTrueTrueTrueMacro number : FalseFalseTrueTrue0 0 127 1 10 101TrueFalse1False2Truelabel161tab2FalseTrueTrueTrueTrueControl number :FalseFalseTrueTrue0 0 16383 1 10 101True1FalseTrueTrueTrueControl value :FalseFalseTrueTrue0 0 16383 1 10 101True1False13Truelabel163tab3False20GTK_SHADOW_NONETrue12TrueTrue25TrueTrue0 0 23 1 10 101True12TrueTrue0 0 59 1 10 101True1212TrueTrue0 0 59 1 10 101True2312TrueTrue0 0 29 1 10 101True3412TrueTrue0 0 99 1 10 101True4512True0Minute12GTK_FILLTrue0HourGTK_FILLTrue0Second23GTK_FILLTrue0Frame34GTK_FILLTrue0Sub Frame45GTK_FILLTrue0GTK_SHADOW_NONETrue12True22TrueTrueTrue24 FrameTrue0TrueGTK_FILLTrueTrue25 FrameTrue0Trueed_midi_msc_2412GTK_FILLTrueTrue30 FrameTrue0Trueed_midi_msc_2412GTK_FILLTrueTrue30 Drop FrameTrue0Trueed_midi_msc_241212GTK_FILLTrueTime code formatTruelabel_item1TrueTimelabel_item31Truelabel134tab1FalseTrueTrueTrueEnter raw MIDI system exclusive string. Use only hexadecimal characters and white space. Omit the starting F0 and endding F7. TrueTrueTrue12Truepage 3tab2False2FalseTrueFalse41TrueTrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrueFalseTrueFalse2TrueFalse1True6GTK_BUTTONBOX_ENDTrueTrueTruegtk-removeTrue0TrueTrueTruegtk-addTrue01TrueTrueTrue0True00True2Truegtk-applyFalseFalseTrueModifyTrueFalseFalse12False2315Edit CueTrueTrueFalseFalseTrueTrueTrueTrueTrueTrueTrueCue FalseFalseTrueTrue*1TrueTrueTrueDescriptionFalseFalseTrueTrue*11TrueTrueTrueWait timeFalseFalseTrueTrue0 0 1000 0.10000000149 10 1013True12TrueTrueTrueTargetTrueTrue13True0.75TrueTrueAuto continueTrue0TrueFalseFalse4FalseTrueFalse41True0GTK_SHADOW_NONETrueTrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrueGTK_WRAP_WORDTrue<b>Notes</b>Truelabel_item2TrueInfotabFalseTrueTrue0GTK_SHADOW_NONETrue12TrueTrueTo edit a hotkey, click on the button and type a new key, or press backspace to clear.TrueTrueTrueTrueDisabled01True<b>Hot key</b>Truelabel_itemTrue11TrueTriggertab1False1True6GTK_BUTTONBOX_ENDTrueTrueTruegtk-cancelTrue0TrueTruegtk-applyTrue01TrueTrueTruegtk-okTrue02FalseFalse62
showq-0.4.1+git20090622+dfsg0/ui/patch.ui 0000644 0001750 0001750 00000013356 11550357070 017226 0 ustar alessio alessio
PatchGDK_WINDOW_TYPE_HINT_DIALOGTrueTrueTrueTrueTrueAudioFalseTrueTrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrueTrueFalse21TrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrue2TrueMIDI1False1TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-cancelTrueTrueTrueTruegtk-okTrue1FalseGTK_PACK_ENDcancelbutton3okbutton3
showq-0.4.1+git20090622+dfsg0/ui/editgroup.ui 0000644 0001750 0001750 00000003055 11550357070 020124 0 ustar alessio alessio
True00.10000000149011612TrueTrueGTK_BUTTONBOX_CENTERTrueTrueStart all childrenTrueTrueTrueTrueStart first cue and enter groupTrueTrueed_grp_all1
showq-0.4.1+git20090622+dfsg0/ui/prop.ui 0000644 0001750 0001750 00000015360 11550357070 017104 0 ustar alessio alessio
TruePropertiesGDK_WINDOW_TYPE_HINT_DIALOGTrueTrueTrue6True0Project name : FalseFalseTrueFalse1TrueTrueFalse*2False6TrueFalse1True6True0<b>Notes</b>TrueFalseFalseTrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrue122TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-applyTrueTrueTrueTruegtk-cancelTrue1TrueTrueTruegtk-okTrue2FalseGTK_PACK_ENDbutton1cancelbutton1okbutton1
showq-0.4.1+git20090622+dfsg0/ui/app.ui 0000644 0001750 0001750 00000035416 11550357070 016710 0 ustar alessio alessio
item14_Filegtk-newm_newgtk-openm_opengtk-savem_savegtk-save-asm_saveasgtk-quitm_quititem15_Edititem4New Cuem_new_midi_cueMIDI cuem_new_group_cueGroup cuem_new_wave_cueWave cuem_new_stop_cueStop cuem_new_start_cueStart cuem_new_pause_cuePause cuem_new_fade_cueFade cuem_edit_cueEdit Cuem_renumberRenumberm_cut_cueCutm_lockLockm_patchPatchgtk-propertiesm_propertiesgtk-preferencesm_preferencescue1_Cuegtk-media-playm_goGogtk-media-previousm_previousPreviousgtk-media-nextm_nextNextm_loadLoadm_all_stopAll Stopitem13_ViewTruem_view_1Cue numberTruem_view_2DescriptionTruem_view_3WaitTruem_view_4TypeTruem_view_5Elapsed timeTruem_view_6Auto continueitem12_Helpgtk-aboutm_aboutTrueTrueFalseFalseTrueGTK_TOOLBAR_BOTHTrueNew Filegtk-newFalseTrueOpen Filegtk-openFalseTrueSave Filegtk-saveFalseTrueStop all cuesgtk-stopFalseFalseFalse1TrueTrueGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrueTrueFalse2TrueFalseFalse3
showq-0.4.1+git20090622+dfsg0/ui/editwave.ui 0000644 0001750 0001750 00000025527 11550357070 017742 0 ustar alessio alessio
10000010.10000000149101010.1000000014910TrueTrue0True12True32True16File :GTK_FILLTrue16File type :12GTK_FILLTrue16Length :23GTK_FILLTrue01212GTK_FILLTrue01223GTK_FILLTrue12GTK_FILLTrueTrueFalseFalseTrue0True12True12True16Start Time :GTK_FILLTrueTrueadjustment113True12TrueTrueFalseFalse1TrueGTK_TOOLBAR_BOTHTruegtk-media-playFalseTruegtk-media-pauseed_wave_playFalseTruegtk-media-stopTrueed_wave_playFalseFalseFalse2TrueTrueTimeFalseFalseTrueFalse1TrueTrueGTK_UPDATE_DISCONTINUOUSadjustment2GTK_POS_LEFT2False3
showq-0.4.1+git20090622+dfsg0/ui/gconvert 0000755 0001750 0001750 00000001526 11550357070 017341 0 ustar alessio alessio #
gtk-builder-convert --root editcue showq.glade editcue.ui
gtk-builder-convert --root edit_midi_vbox showq.glade editmidi.ui
gtk-builder-convert --root edit_fade_vbox showq.glade editfade.ui
gtk-builder-convert --root edit_faders_vbox showq.glade efaders.ui
gtk-builder-convert --root edit_patch_vbox showq.glade epatch.ui
gtk-builder-convert --root edit_wave_vbox showq.glade editwave.ui
gtk-builder-convert --root edit_group_box showq.glade editgroup.ui
gtk-builder-convert --root app showq.glade app.ui
gtk-builder-convert --root Preferences showq.glade pref.ui
gtk-builder-convert --root Properties showq.glade prop.ui
gtk-builder-convert --root renumber showq.glade renumber.ui
gtk-builder-convert --root about showq.glade about.ui
gtk-builder-convert --root PopupMenu showq.glade popupmenu.ui
gtk-builder-convert --root Patch showq.glade patch.ui
showq-0.4.1+git20090622+dfsg0/ui/editmidi.ui 0000644 0001750 0001750 00000202022 11550357070 017705 0 ustar alessio alessio
16111115901011002901011009901011001270101101127010110112701011001270101100163830101100163830101100230101100590101100
Note on
Note off
Program change
Controller change
Polyphonic aftertouch
Channel aftertouch
Pitch bend change
MIDI Show Control
MIDI SysEx
1
2
3
4
5
6
7
8
General lighting
Moving lights
Colour changers
Strobes
Lasers
Chasers
General sound
Music
CD players
EPROM play-back
Audio tape machines
Intercoms
Amplifiers
Audio effects devices
Equalisers
General machinery
Rigging
Flys
Lifts
Turntables
Trusses
Robots
Animation
Floats
Breakaways
Barges
General video
Video tape machines
Video cassette machine
Video disc players
Video switchers
Video effects
Video character generators
Video still stores
Video monitors
General projection
Film projectors
Slide projectors
Video projectors
Dissolvers
Shutter controls
General process control
Hydraulic oil
Water
Carbon dioxide
Compressed air
Natural gas
Fog
Smoke
Cracked haze
General pyrotechnics
Fireworks
Explosions
Flame
Smoke pots
All devices
GO
STOP
RESUME
TIMED GO
LOAD
SET
FIRE
ALL OFF
RESTORE
RESET
GO OFF
GO/JAM CLOCK
STANDBY +
STANDBY -
SEQUENCE +
SEQUENCE -
START CLOCK
STOP CLOCK
ZERO CLOCK
SET CLOCK
MTC CHASE ON
MTC CHASE OFF
OPEN CUE LIST
CLOSE CUE LIST
OPEN CUE PATH
CLOSE CUE PATH
518TrueTrueTrueTrueTrue0MIDI function : FalseFalseTruemodel101FalseTrueTrueOutput patch : FalseFalseTruemodel201False1TrueTrueFalseTrue32True0MIDI channel : GTK_FILLTrue012GTK_FILLTrue023GTK_FILLTrueTrueadjustment11True12Trueadjustment21True1212Trueadjustment31True1223Truelabel133FalseTrueTrue0GTK_SHADOW_NONETrue12Truemodel30TrueCommand formatFalseTrueTrue0GTK_SHADOW_NONETrue12TrueTrueadjustment41TrueTrueDevice IDFalseTrue0GTK_SHADOW_NONETrue12Truemodel40TrueCommand1False1TrueTrueFalseTrueTruelabel145FalseTrueTrue0GTK_SHADOW_NONETrue12TrueTrue*TrueQ NumberFalseTrue0GTK_SHADOW_NONETrue12TrueTrue*TrueQ ListFalse1True0GTK_SHADOW_NONETrue12TrueTrue*TrueQ PathFalse2Truelabel1461FalseTrueTrueTrueTrueMacro number : FalseFalseTrueTrueadjustment51TrueFalse1FalseTruelabel1612FalseTrueTrueTrueTrueControl number :FalseFalseTrueTrueadjustment61True1FalseTrueTrueTrueControl value :FalseFalseTrueTrueadjustment71True1False1Truelabel1633False20GTK_SHADOW_NONETrue12TrueTrue25TrueTrueadjustment81True12TrueTrueadjustment91True1212TrueTrueadjustment101True2312TrueTrueadjustment111True3412TrueTrueadjustment121True4512True0Minute12GTK_FILLTrue0HourGTK_FILLTrue0Second23GTK_FILLTrue0Frame34GTK_FILLTrue0Sub Frame45GTK_FILLTrue0GTK_SHADOW_NONETrue12True22TrueTrueTrue24 FrameTrueTrueGTK_FILLTrueTrue25 FrameTrueTrueed_midi_msc_2412GTK_FILLTrueTrue30 FrameTrueTrueed_midi_msc_2412GTK_FILLTrueTrue30 Drop FrameTrueTrueed_midi_msc_241212GTK_FILLTrueTime code formatTrue1TrueTime3Truelabel1341FalseTrueTrueTrueEnter raw MIDI system exclusive string. Use only hexadecimal characters and white space. Omit the starting F0 and endding F7. TrueTrueTrue1Truepage 32False2FalseTrueFalse41TrueTrueTrueGTK_POLICY_AUTOMATICGTK_POLICY_AUTOMATICGTK_SHADOW_INTrueTrueFalseTrueFalse2TrueFalse1True6GTK_BUTTONBOX_ENDTrueTrueTruegtk-removeTrueTrueTrueTruegtk-addTrue1TrueTrueTrueTrue00True2Truegtk-applyFalseFalseTrueModifyTrueFalseFalse12False2
showq-0.4.1+git20090622+dfsg0/ui/editfade.ui 0000644 0001750 0001750 00000006542 11550357070 017673 0 ustar alessio alessio
1000010.1000000014910TrueTrueTrueFade time FalseFalseTrueTrueadjustment1131FalseTrueTrueTrueDefaultTrueTrueTrueTrueStop on fade completeTrueed_fade_defaultcomplete1TrueTruePause on fade completeTrueed_fade_defaultcomplete2FalseFalse1
showq-0.4.1+git20090622+dfsg0/ui/efaders.ui 0000644 0001750 0001750 00000034011 11550357070 017527 0 ustar alessio alessio
1000.0010000000475001000.0010000000475001000.0010000000475001000.0010000000475001000.0010000000475001000.0010000000475001000.0010000000475001000.001000000047500TrueTrueOutput fadersFalseFalseTrueFalse41TrueTrueTrueTrueTrueadjustment1True5TrueTrue1TrueFalseFalse1TrueTrueTrueadjustment2True5TrueTrue2TrueFalseFalse11TrueTrueTrueadjustment3True5TrueTrue3TrueFalseFalse12TrueTrueTrueadjustment4True5TrueTrue4TrueFalseFalse13TrueTrueTrueadjustment5True5TrueTrue5TrueFalseFalse14TrueTrueTrueadjustment6True5TrueTrue6TrueFalseFalse15TrueTrueTrueadjustment7True5TrueTrue7TrueFalseFalse16TrueTrueTrueadjustment8True5TrueTrue8TrueFalseFalse172
showq-0.4.1+git20090622+dfsg0/ui/renumber.ui 0000644 0001750 0001750 00000021132 11550357070 017735 0 ustar alessio alessio
000000000000TrueRenumber cuesGDK_WINDOW_TYPE_HINT_DIALOGTrueTrue6TrueTrue23True0Start numberGTK_FILLTrue0: 12GTK_FILLTrue0Step12GTK_FILLTrue0: 1212GTK_FILLTrueTrueadjustment112True23TrueTrueadjustment212True2312TrueTrueSkip cues following an auto continue cueTrueTrueTrueFalseFalse1TrueWarning : This will renumber the whole show.FalseFalse22TrueGTK_BUTTONBOX_ENDTrueTrueTruegtk-cancelTrueTrueTrueTruegtk-okTrue1FalseGTK_PACK_ENDre_skip_acontcancelbutton2okbutton2
showq-0.4.1+git20090622+dfsg0/ui/epatch.ui 0000644 0001750 0001750 00000140341 11550357070 017366 0 ustar alessio alessio
TrueTrueOutput PatchFalseFalseTrueFalse41True22True99True30True112GTK_FILLTrue223GTK_FILLTrue334GTK_FILLTrue445GTK_FILLTrue556GTK_FILLTrue667GTK_FILLTrue778GTK_FILLTrue889GTK_FILL3030True112GTK_FILLTrue223GTK_FILLTrue445GTK_FILLTrue334GTK_FILLTrue556GTK_FILLTrue778GTK_FILLTrue667GTK_FILLTrue889GTK_FILLTrueTrueTrue1212TrueTrueTrue1223TrueTrueTrue1234TrueTrueTrue1245TrueTrueTrue1256TrueTrueTrue1267TrueTrueTrue1278TrueTrueTrue1289TrueTrueTrue2312TrueTrueTrue2323TrueTrueTrue2334TrueTrueTrue2345TrueTrueTrue2356TrueTrueTrue2367TrueTrueTrue2378TrueTrueTrue2389TrueTrueTrue3412TrueTrueTrue3423TrueTrueTrue3434TrueTrueTrue3445TrueTrueTrue3456TrueTrueTrue3467TrueTrueTrue3478TrueTrueTrue3489TrueTrueTrue4512TrueTrueTrue4523TrueTrueTrue4534TrueTrueTrue4545TrueTrueTrue4556TrueTrueTrue4567TrueTrueTrue4578TrueTrueTrue4589TrueTrueTrue5612TrueTrueTrue5623TrueTrueTrue5634TrueTrueTrue5645TrueTrueTrue5656TrueTrueTrue5667TrueTrueTrue5678TrueTrueTrue5689TrueTrueTrue6712TrueTrueTrue6723TrueTrueTrue6734TrueTrueTrue6745TrueTrueTrue6756TrueTrueTrue6767TrueTrueTrue6778TrueTrueTrue6789TrueTrueTrue7812TrueTrueTrue7823TrueTrueTrue7834TrueTrueTrue7845TrueTrueTrue7856TrueTrueTrue7867TrueTrueTrue7878TrueTrueTrue7889TrueTrueTrue8912TrueTrueTrue8923TrueTrueTrue8934TrueTrueTrue8945TrueTrueTrue8956TrueTrueTrue8967TrueTrueTrue8978TrueTrueTrue89891212True016I
n
p
u
t
12GTK_FILLTrue0Output122
showq-0.4.1+git20090622+dfsg0/wafadmin/ 0000755 0001750 0001750 00000000000 11703037352 016727 5 ustar alessio alessio showq-0.4.1+git20090622+dfsg0/wafadmin/Node.py 0000644 0001750 0001750 00000025432 11176703512 020176 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys,fnmatch,re
import Utils
UNDEFINED=0
DIR=1
FILE=2
BUILD=3
type_to_string={UNDEFINED:"unk",DIR:"dir",FILE:"src",BUILD:"bld"}
exclude_regs='''
**/*~
**/#*#
**/.#*
**/%*%
**/._*
**/CVS
**/CVS/**
**/.cvsignore
**/SCCS
**/SCCS/**
**/vssver.scc
**/.svn
**/.svn/**
**/.DS_Store'''.split()
exc_fun=None
def default_excludes():
global exc_fun
if exc_fun:
return exc_fun
regs=[Utils.jar_regexp(x)for x in exclude_regs]
def mat(path):
for x in regs:
if x.match(path):
return True
return False
exc_fun=mat
return exc_fun
class Node(object):
__slots__=("name","parent","id","childs")
def __init__(self,name,parent,node_type=UNDEFINED):
self.name=name
self.parent=parent
self.__class__.bld.id_nodes+=4
self.id=self.__class__.bld.id_nodes+node_type
if node_type==DIR:self.childs={}
if parent and name in parent.childs:
raise Utils.WafError('node %s exists in the parent files %r already'%(name,parent))
if parent:parent.childs[name]=self
def __setstate__(self,data):
if len(data)==4:
(self.parent,self.name,self.id,self.childs)=data
else:
(self.parent,self.name,self.id)=data
def __getstate__(self):
if getattr(self,'childs',None)is None:
return(self.parent,self.name,self.id)
else:
return(self.parent,self.name,self.id,self.childs)
def __str__(self):
if not self.parent:return''
return"%s://%s"%(type_to_string[self.id&3],self.abspath())
def __repr__(self):
return self.__str__()
def __hash__(self):
raise Utils.WafError('nodes, you are doing it wrong')
def __copy__(self):
raise Utils.WafError('nodes are not supposed to be cloned')
def get_type(self):
return self.id&3
def set_type(self,t):
self.id=self.id+t-self.id&3
def dirs(self):
return[x for x in self.childs.values()if x.id&3==DIR]
def files(self):
return[x for x in self.childs.values()if x.id&3==FILE]
def get_dir(self,name,default=None):
node=self.childs.get(name,None)
if not node or node.id&3!=DIR:return default
return node
def get_file(self,name,default=None):
node=self.childs.get(name,None)
if not node or node.id&3!=FILE:return default
return node
def get_build(self,name,default=None):
node=self.childs.get(name,None)
if not node or node.id&3!=BUILD:return default
return node
def find_resource(self,lst):
if isinstance(lst,str):
lst=Utils.split_path(lst)
if len(lst)==1:
parent=self
else:
parent=self.find_dir(lst[:-1])
if not parent:return None
self.__class__.bld.rescan(parent)
name=lst[-1]
node=parent.childs.get(name,None)
if node:
tp=node.id&3
if tp==FILE or tp==BUILD:
return node
else:
return None
tree=self.__class__.bld
if not name in tree.cache_dir_contents[parent.id]:
return None
path=parent.abspath()+os.sep+name
try:
st=Utils.h_file(path)
except IOError:
return None
child=self.__class__(name,parent,FILE)
tree.node_sigs[0][child.id]=st
return child
def find_or_declare(self,lst):
if isinstance(lst,str):
lst=Utils.split_path(lst)
if len(lst)==1:
parent=self
else:
parent=self.find_dir(lst[:-1])
if not parent:return None
self.__class__.bld.rescan(parent)
name=lst[-1]
node=parent.childs.get(name,None)
if node:
tp=node.id&3
if tp!=BUILD:
raise Utils.WafError("find_or_declare returns a build node, not a source nor a directory %r"%lst)
return node
node=self.__class__(name,parent,BUILD)
return node
def find_dir(self,lst):
if isinstance(lst,str):
lst=Utils.split_path(lst)
current=self
for name in lst:
self.__class__.bld.rescan(current)
prev=current
if not current.parent and name==current.name:
continue
elif not name:
continue
elif name=='.':
continue
elif name=='..':
current=current.parent or current
else:
current=prev.childs.get(name,None)
if current is None:
dir_cont=self.__class__.bld.cache_dir_contents
if prev.id in dir_cont and name in dir_cont[prev.id]:
if not prev.name:
if os.sep=='/':
dirname=os.sep+name
else:
dirname=name
else:
dirname=prev.abspath()+os.sep+name
if not os.path.isdir(dirname):
return None
current=self.__class__(name,prev,DIR)
elif(not prev.name and len(name)==2 and name[1]==':')or name.startswith('\\\\'):
current=self.__class__(name,prev,DIR)
else:
return None
else:
if current.id&3!=DIR:
return None
return current
def ensure_dir_node_from_path(self,lst):
if isinstance(lst,str):
lst=Utils.split_path(lst)
current=self
for name in lst:
if not name:
continue
elif name=='.':
continue
elif name=='..':
current=current.parent or current
else:
prev=current
current=prev.childs.get(name,None)
if current is None:
current=self.__class__(name,prev,DIR)
return current
def exclusive_build_node(self,path):
lst=Utils.split_path(path)
name=lst[-1]
if len(lst)>1:
parent=None
try:
parent=self.find_dir(lst[:-1])
except OSError:
pass
if not parent:
parent=self.ensure_dir_node_from_path(lst[:-1])
self.__class__.bld.cache_scanned_folders[parent.id]=1
else:
try:
self.__class__.bld.rescan(parent)
except OSError:
pass
else:
parent=self
node=parent.childs.get(name,None)
if not node:
node=self.__class__(name,parent,BUILD)
return node
def path_to_parent(self,parent):
lst=[]
p=self
h1=parent.height()
h2=p.height()
while h2>h1:
h2-=1
lst.append(p.name)
p=p.parent
if lst:
lst.reverse()
ret=os.path.join(*lst)
else:
ret=''
return ret
def find_ancestor(self,node):
dist=self.height()-node.height()
if dist<0:return node.find_ancestor(self)
cand=self
while dist>0:
cand=cand.parent
dist-=1
if cand==node:return cand
cursor=node
while cand.parent:
cand=cand.parent
cursor=cursor.parent
if cand==cursor:return cand
def relpath_gen(self,going_to):
if self==going_to:return'.'
if going_to.parent==self:return'..'
ancestor=self.find_ancestor(going_to)
lst=[]
cand=self
while not cand.id==ancestor.id:
lst.append(cand.name)
cand=cand.parent
cand=going_to
while not cand.id==ancestor.id:
lst.append('..')
cand=cand.parent
lst.reverse()
return os.sep.join(lst)
def nice_path(self,env=None):
tree=self.__class__.bld
ln=tree.launch_node()
if self.id&3==FILE:return self.relpath_gen(ln)
else:return os.path.join(tree.bldnode.relpath_gen(ln),env.variant(),self.relpath_gen(tree.srcnode))
def is_child_of(self,node):
p=self
diff=self.height()-node.height()
while diff>0:
diff-=1
p=p.parent
return p.id==node.id
def variant(self,env):
if not env:return 0
elif self.id&3==FILE:return 0
else:return env.variant()
def height(self):
d=self
val=-1
while d:
d=d.parent
val+=1
return val
def abspath(self,env=None):
variant=(env and(self.id&3!=FILE)and env.variant())or 0
ret=self.__class__.bld.cache_node_abspath[variant].get(self.id,None)
if ret:return ret
if not variant:
if not self.parent:
val=os.sep=='/'and os.sep or''
elif not self.parent.name:
val=(os.sep=='/'and os.sep or'')+self.name
else:
val=self.parent.abspath()+os.sep+self.name
else:
val=os.sep.join((self.__class__.bld.bldnode.abspath(),env.variant(),self.path_to_parent(self.__class__.bld.srcnode)))
self.__class__.bld.cache_node_abspath[variant][self.id]=val
return val
def change_ext(self,ext):
name=self.name
k=name.rfind('.')
if k>=0:
name=name[:k]+ext
else:
name=name+ext
return self.parent.find_or_declare([name])
def src_dir(self,env):
return self.parent.srcpath(env)
def bld_dir(self,env):
return self.parent.bldpath(env)
def bld_base(self,env):
s=os.path.splitext(self.name)[0]
return os.path.join(self.bld_dir(env),s)
def bldpath(self,env=None):
if self.id&3==FILE:
return self.relpath_gen(self.__class__.bld.bldnode)
if self.path_to_parent(self.__class__.bld.srcnode)is not'':
return os.path.join(env.variant(),self.path_to_parent(self.__class__.bld.srcnode))
return env.variant()
def srcpath(self,env=None):
if self.id&3==BUILD:
return self.bldpath(env)
return self.relpath_gen(self.__class__.bld.bldnode)
def read(self,env):
return Utils.readf(self.abspath(env))
def dir(self,env):
return self.parent.abspath(env)
def file(self):
return self.name
def file_base(self):
return os.path.splitext(self.name)[0]
def suffix(self):
k=max(0,self.name.rfind('.'))
return self.name[k:]
def find_iter_impl(self,src=True,bld=True,dir=True,accept_name=None,is_prune=None,maxdepth=25):
self.__class__.bld.rescan(self)
for name in self.__class__.bld.cache_dir_contents[self.id]:
if accept_name(self,name):
node=self.find_resource(name)
if node:
if src and node.id&3==FILE:
yield node
else:
node=self.find_dir(name)
if node and node.id!=self.__class__.bld.bldnode.id:
if dir:
yield node
if not is_prune(self,name):
if maxdepth:
for k in node.find_iter_impl(src,bld,dir,accept_name,is_prune,maxdepth=maxdepth-1):
yield k
else:
if not is_prune(self,name):
node=self.find_resource(name)
if not node:
node=self.find_dir(name)
if node and node.id!=self.__class__.bld.bldnode.id:
if dir:
yield node
if maxdepth:
for k in node.find_iter_impl(src,bld,dir,accept_name,is_prune,maxdepth=maxdepth-1):
yield k
if bld:
for node in self.childs.values():
if node.id==self.__class__.bld.bldnode.id:
continue
if node.id&3==BUILD:
if accept_name(self,node.name):
yield node
raise StopIteration
def find_iter(self,in_pat=['*'],ex_pat=[],prune_pat=['.svn'],src=True,bld=True,dir=False,maxdepth=25,flat=False):
if not(src or bld or dir):
raise StopIteration
if self.id&3!=DIR:
raise StopIteration
in_pat=Utils.to_list(in_pat)
ex_pat=Utils.to_list(ex_pat)
prune_pat=Utils.to_list(prune_pat)
def accept_name(node,name):
for pat in ex_pat:
if fnmatch.fnmatchcase(name,pat):
return False
for pat in in_pat:
if fnmatch.fnmatchcase(name,pat):
return True
return False
def is_prune(node,name):
for pat in prune_pat:
if fnmatch.fnmatchcase(name,pat):
return True
return False
ret=self.find_iter_impl(src,bld,dir,accept_name,is_prune,maxdepth=maxdepth)
if flat:
return" ".join([x.relpath_gen(self)for x in ret])
return ret
def ant_glob(self,*k,**kw):
regex=Utils.jar_regexp(k[0])
def accept(node,name):
ts=node.relpath_gen(self)+'/'+name
return regex.match(ts)
def reject(node,name):
ts=node.relpath_gen(self)+'/'+name
return default_excludes()(ts)
ret=[x for x in self.find_iter_impl(accept_name=accept,is_prune=reject,src=kw.get('src',1),bld=kw.get('bld',1),dir=kw.get('dir',0),maxdepth=kw.get('maxdepth',25))]
if kw.get('flat',True):
return" ".join([x.relpath_gen(self)for x in ret])
return ret
class Nodu(Node):
pass
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/ 0000755 0001750 0001750 00000000000 11703037352 020027 5 ustar alessio alessio showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/gcc.py 0000644 0001750 0001750 00000004676 11176703511 021153 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys
import Configure,Options,Utils,TaskGen
import ccroot,ar
from Configure import conftest
def find_gcc(conf):
v=conf.env
cc=None
if v['CC']:
cc=v['CC']
elif'CC'in conf.environ:
cc=conf.environ['CC']
if not cc:cc=conf.find_program('gcc',var='CC')
if not cc:cc=conf.find_program('cc',var='CC')
if not cc:conf.fatal('gcc was not found')
cc=conf.cmd_to_list(cc)
ccroot.get_cc_version(conf,cc,gcc=True)
v['CC_NAME']='gcc'
v['CC']=cc
def gcc_common_flags(conf):
v=conf.env
v['CC_SRC_F']=''
v['CC_TGT_F']=['-c','-o','']
v['CPPPATH_ST']='-I%s'
if not v['LINK_CC']:v['LINK_CC']=v['CC']
v['CCLNK_SRC_F']=''
v['CCLNK_TGT_F']=['-o','']
v['LIB_ST']='-l%s'
v['LIBPATH_ST']='-L%s'
v['STATICLIB_ST']='-l%s'
v['STATICLIBPATH_ST']='-L%s'
v['RPATH_ST']='-Wl,-rpath,%s'
v['CCDEFINES_ST']='-D%s'
v['SONAME_ST']='-Wl,-h,%s'
v['SHLIB_MARKER']='-Wl,-Bdynamic'
v['STATICLIB_MARKER']='-Wl,-Bstatic'
v['FULLSTATIC_MARKER']='-static'
v['program_PATTERN']='%s'
v['shlib_CCFLAGS']=['-fPIC','-DPIC']
v['shlib_LINKFLAGS']=['-shared']
v['shlib_PATTERN']='lib%s.so'
v['staticlib_LINKFLAGS']=['-Wl,-Bstatic']
v['staticlib_PATTERN']='lib%s.a'
v['LINKFLAGS_MACBUNDLE']=['-bundle','-undefined','dynamic_lookup']
v['CCFLAGS_MACBUNDLE']=['-fPIC']
v['macbundle_PATTERN']='%s.bundle'
def gcc_modifier_win32(conf):
v=conf.env
v['program_PATTERN']='%s.exe'
v['shlib_PATTERN']='%s.dll'
v['staticlib_PATTERN']='%s.lib'
v['shlib_CCFLAGS']=[]
v['staticlib_LINKFLAGS']=[]
def gcc_modifier_cygwin(conf):
return conf.gcc_modifier_win32()
def gcc_modifier_darwin(conf):
v=conf.env
v['shlib_CCFLAGS']=['-fPIC','-compatibility_version','1','-current_version','1']
v['shlib_LINKFLAGS']=['-dynamiclib']
v['shlib_PATTERN']='lib%s.dylib'
v['staticlib_LINKFLAGS']=[]
v['SHLIB_MARKER']=''
v['STATICLIB_MARKER']=''
def gcc_modifier_aix5(conf):
v=conf.env
v['program_LINKFLAGS']=['-Wl,-brtl']
v['shlib_LINKFLAGS']=['-shared','-Wl,-brtl,-bexpfull']
v['SHLIB_MARKER']=''
def detect(conf):
conf.find_gcc()
conf.find_cpp()
conf.find_ar()
conf.gcc_common_flags()
target_platform=conf.env['TARGET_PLATFORM']or sys.platform
gcc_modifier_func=globals().get('gcc_modifier_'+target_platform)
if gcc_modifier_func:
gcc_modifier_func(conf)
conf.cc_load_tools()
conf.cc_add_flags()
conftest(find_gcc)
conftest(gcc_common_flags)
conftest(gcc_modifier_win32)
conftest(gcc_modifier_cygwin)
conftest(gcc_modifier_darwin)
conftest(gcc_modifier_aix5)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/suncc.py 0000644 0001750 0001750 00000002416 11176703511 021520 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,optparse
import Utils,Options,Configure
import ccroot,ar
from Configure import conftest
def find_scc(conf):
v=conf.env
cc=None
if v['CC']:cc=v['CC']
elif'CC'in conf.environ:cc=conf.environ['CC']
if not cc:cc=conf.find_program('cc',var='CC')
if not cc:conf.fatal('suncc was not found')
try:
if not Utils.cmd_output('%s -flags'%cc):
conf.fatal('suncc %r was not found'%cc)
except ValueError:
conf.fatal('suncc -flags could not be executed')
v['CC']=cc
v['CC_NAME']='sun'
def scc_common_flags(conf):
v=conf.env
v['CC_SRC_F']=''
v['CC_TGT_F']=['-c','-o','']
v['CPPPATH_ST']='-I%s'
if not v['LINK_CC']:v['LINK_CC']=v['CC']
v['CCLNK_SRC_F']=''
v['CCLNK_TGT_F']=['-o','']
v['LIB_ST']='-l%s'
v['LIBPATH_ST']='-L%s'
v['STATICLIB_ST']='-l%s'
v['STATICLIBPATH_ST']='-L%s'
v['CCDEFINES_ST']='-D%s'
v['SONAME_ST']='-Wl,-h -Wl,%s'
v['SHLIB_MARKER']='-Bdynamic'
v['STATICLIB_MARKER']='-Bstatic'
v['program_PATTERN']='%s'
v['shlib_CCFLAGS']=['-Kpic','-DPIC']
v['shlib_LINKFLAGS']=['-G']
v['shlib_PATTERN']='lib%s.so'
v['staticlib_LINKFLAGS']=['-Bstatic']
v['staticlib_PATTERN']='lib%s.a'
detect='''
find_scc
find_cpp
find_ar
scc_common_flags
cc_load_tools
cc_add_flags
'''
conftest(find_scc)
conftest(scc_common_flags)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/gas.py 0000644 0001750 0001750 00000002300 11176703511 021147 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys
import Task
from TaskGen import extension,taskgen,after,before
EXT_ASM=['.s','.S','.asm','.ASM','.spp','.SPP']
as_str='${AS} ${ASFLAGS} ${_ASINCFLAGS} ${SRC} -o ${TGT}'
Task.simple_task_type('asm',as_str,'PINK',ext_out='.o',shell=False)
def asm_hook(self,node):
task=self.create_task('asm')
try:obj_ext=self.obj_ext
except AttributeError:obj_ext='_%d.o'%self.idx
task.inputs=[node]
task.outputs=[node.change_ext(obj_ext)]
self.compiled_tasks.append(task)
self.meths.append('asm_incflags')
def asm_incflags(self):
if self.env['ASINCFLAGS']:self.env['_ASINCFLAGS']=self.env['ASINCFLAGS']
if'cxx'in self.features:self.env['_ASINCFLAGS']=self.env['_CXXINCFLAGS']
else:self.env['_ASINCFLAGS']=self.env['_CCINCFLAGS']
def detect(conf):
comp=conf.environ.get('AS','')
if not comp:comp=conf.env['AS']
if not comp:comp=conf.find_program('as',var='AS')
if not comp:comp=conf.find_program('gas',var='AS')
if not comp:comp=conf.env['CC']
if not comp:return
v=conf.env
v['ASFLAGS']=''
extension(EXT_ASM)(asm_hook)
taskgen(asm_incflags)
after('apply_obj_vars_cc')(asm_incflags)
after('apply_obj_vars_cxx')(asm_incflags)
before('apply_link')(asm_incflags)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/compiler_cc.py 0000644 0001750 0001750 00000003000 11176703511 022652 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys,imp,types,ccroot
import optparse
import Utils,Configure,Options
c_compiler={'win32':['msvc','gcc'],'cygwin':['gcc'],'darwin':['gcc'],'aix5':['gcc'],'linux':['gcc','icc','suncc'],'sunos':['gcc','suncc'],'irix':['gcc'],'hpux':['gcc'],'default':['gcc']}
def __list_possible_compiler(platform):
try:
return c_compiler[platform]
except KeyError:
return c_compiler["default"]
def detect(conf):
try:test_for_compiler=Options.options.check_c_compiler
except AttributeError:conf.fatal("Add set_options(opt): opt.tool_options('compiler_cc')")
for c_compiler in test_for_compiler.split():
try:
conf.check_tool(c_compiler)
except Configure.ConfigurationError:
pass
else:
if conf.env['CC']:
conf.check_message("%s"%c_compiler,'',True)
conf.env["COMPILER_CC"]="%s"%c_compiler
return
conf.check_message("%s"%c_compiler,'',False)
break
conf.env["COMPILER_CC"]=None
def set_options(opt):
detected_platform=Options.platform
possible_compiler_list=__list_possible_compiler(detected_platform)
test_for_compiler=str(" ").join(possible_compiler_list)
cc_compiler_opts=opt.add_option_group("C Compiler Options")
cc_compiler_opts.add_option('--check-c-compiler',default="%s"%test_for_compiler,help='On this platform (%s) the following C-Compiler will be checked by default: "%s"'%(detected_platform,test_for_compiler),dest="check_c_compiler")
for c_compiler in test_for_compiler.split():
opt.tool_options('%s'%c_compiler,option_group=cc_compiler_opts)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/ocaml.py 0000644 0001750 0001750 00000020541 11176703511 021477 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,re
import TaskGen,Utils,Task,Build
from Logs import error
from TaskGen import taskgen,feature,before,after,extension
EXT_MLL=['.mll']
EXT_MLY=['.mly']
EXT_MLI=['.mli']
EXT_MLC=['.c']
EXT_ML=['.ml']
open_re=re.compile('^\s*open\s+([a-zA-Z]+)(;;){0,1}$',re.M)
foo=re.compile(r"""(\(\*)|(\*\))|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^()*"'\\]*)""",re.M)
def filter_comments(txt):
meh=[0]
def repl(m):
if m.group(1):meh[0]+=1
elif m.group(2):meh[0]-=1
elif not meh[0]:return m.group(0)
return''
return foo.sub(repl,txt)
def scan(self):
node=self.inputs[0]
code=filter_comments(node.read(self.env))
global open_re
names=[]
import_iterator=open_re.finditer(code)
if import_iterator:
for import_match in import_iterator:
names.append(import_match.group(1))
found_lst=[]
raw_lst=[]
for name in names:
nd=None
for x in self.incpaths:
nd=x.find_resource(name.lower()+'.ml')
if not nd:nd=x.find_resource(name+'.ml')
if nd:
found_lst.append(nd)
break
else:
raw_lst.append(name)
return(found_lst,raw_lst)
native_lst=['native','all','c_object']
bytecode_lst=['bytecode','all']
class ocaml_taskgen(TaskGen.task_gen):
def __init__(self,*k,**kw):
TaskGen.task_gen.__init__(self,*k,**kw)
def init_ml(self):
Utils.def_attrs(self,type='all',incpaths_lst=[],bld_incpaths_lst=[],mlltasks=[],mlytasks=[],mlitasks=[],native_tasks=[],bytecode_tasks=[],linktasks=[],bytecode_env=None,native_env=None,compiled_tasks=[],includes='',uselib='',are_deps_set=0)
def init_envs_ml(self):
self.islibrary=getattr(self,'islibrary',False)
global native_lst,bytecode_lst
self.native_env=None
if self.type in native_lst:
self.native_env=self.env.copy()
if self.islibrary:self.native_env['OCALINKFLAGS']='-a'
self.bytecode_env=None
if self.type in bytecode_lst:
self.bytecode_env=self.env.copy()
if self.islibrary:self.bytecode_env['OCALINKFLAGS']='-a'
if self.type=='c_object':
self.native_env.append_unique('OCALINKFLAGS_OPT','-output-obj')
def apply_incpaths_ml(self):
inc_lst=self.includes.split()
lst=self.incpaths_lst
for dir in inc_lst:
node=self.path.find_dir(dir)
if not node:
error("node not found: "+str(dir))
continue
self.bld.rescan(node)
if not node in lst:lst.append(node)
self.bld_incpaths_lst.append(node)
def apply_vars_ml(self):
for i in self.incpaths_lst:
if self.bytecode_env:
app=self.bytecode_env.append_value
app('OCAMLPATH','-I')
app('OCAMLPATH',i.srcpath(self.env))
app('OCAMLPATH','-I')
app('OCAMLPATH',i.bldpath(self.env))
if self.native_env:
app=self.native_env.append_value
app('OCAMLPATH','-I')
app('OCAMLPATH',i.bldpath(self.env))
app('OCAMLPATH','-I')
app('OCAMLPATH',i.srcpath(self.env))
varnames=['INCLUDES','OCAMLFLAGS','OCALINKFLAGS','OCALINKFLAGS_OPT']
for name in self.uselib.split():
for vname in varnames:
cnt=self.env[vname+'_'+name]
if cnt:
if self.bytecode_env:self.bytecode_env.append_value(vname,cnt)
if self.native_env:self.native_env.append_value(vname,cnt)
def apply_link_ml(self):
if self.bytecode_env:
ext=self.islibrary and'.cma'or'.run'
linktask=self.create_task('ocalink')
linktask.bytecode=1
linktask.set_outputs(self.path.find_or_declare(self.target+ext))
linktask.obj=self
linktask.env=self.bytecode_env
self.linktasks.append(linktask)
if self.native_env:
if self.type=='c_object':ext='.o'
elif self.islibrary:ext='.cmxa'
else:ext=''
linktask=self.create_task('ocalinkx')
linktask.set_outputs(self.path.find_or_declare(self.target+ext))
linktask.obj=self
linktask.env=self.native_env
self.linktasks.append(linktask)
self.compiled_tasks.append(linktask)
def mll_hook(self,node):
mll_task=self.create_task('ocamllex',self.native_env)
mll_task.set_inputs(node)
mll_task.set_outputs(node.change_ext('.ml'))
self.mlltasks.append(mll_task)
self.allnodes.append(mll_task.outputs[0])
def mly_hook(self,node):
mly_task=self.create_task('ocamlyacc',self.native_env)
mly_task.set_inputs(node)
mly_task.set_outputs([node.change_ext('.ml'),node.change_ext('.mli')])
self.mlytasks.append(mly_task)
self.allnodes.append(mly_task.outputs[0])
task=self.create_task('ocamlcmi',self.native_env)
task.set_inputs(mly_task.outputs[1])
task.set_outputs(mly_task.outputs[1].change_ext('.cmi'))
def mli_hook(self,node):
task=self.create_task('ocamlcmi',self.native_env)
task.set_inputs(node)
task.set_outputs(node.change_ext('.cmi'))
self.mlitasks.append(task)
def mlc_hook(self,node):
task=self.create_task('ocamlcc',self.native_env)
task.set_inputs(node)
task.set_outputs(node.change_ext('.o'))
self.compiled_tasks.append(task)
def ml_hook(self,node):
if self.native_env:
task=self.create_task('ocamlx',self.native_env)
task.set_inputs(node)
task.set_outputs(node.change_ext('.cmx'))
task.obj=self
task.incpaths=self.bld_incpaths_lst
self.native_tasks.append(task)
if self.bytecode_env:
task=self.create_task('ocaml',self.bytecode_env)
task.set_inputs(node)
task.obj=self
task.bytecode=1
task.incpaths=self.bld_incpaths_lst
task.set_outputs(node.change_ext('.cmo'))
self.bytecode_tasks.append(task)
def compile_may_start(self):
if not getattr(self,'flag_deps',''):
self.flag_deps=1
if getattr(self,'bytecode',''):alltasks=self.obj.bytecode_tasks
else:alltasks=self.obj.native_tasks
self.signature()
tree=self.generator.bld
env=self.env
for node in self.inputs:
lst=tree.node_deps[self.unique_id()]
for depnode in lst:
for t in alltasks:
if t==self:continue
if depnode in t.inputs:
self.set_run_after(t)
delattr(self,'cache_sig')
self.signature()
return Task.Task.runnable_status(self)
b=Task.simple_task_type
cls=b('ocamlx','${OCAMLOPT} ${OCAMLPATH} ${OCAMLFLAGS} ${INCLUDES} -c -o ${TGT} ${SRC}',color='GREEN',shell=False)
cls.runnable_status=compile_may_start
cls.scan=scan
b=Task.simple_task_type
cls=b('ocaml','${OCAMLC} ${OCAMLPATH} ${OCAMLFLAGS} ${INCLUDES} -c -o ${TGT} ${SRC}',color='GREEN',shell=False)
cls.runnable_status=compile_may_start
cls.scan=scan
b('ocamlcmi','${OCAMLC} ${OCAMLPATH} ${INCLUDES} -o ${TGT} -c ${SRC}',color='BLUE',before="ocaml ocamlcc ocamlx")
b('ocamlcc','cd ${TGT[0].bld_dir(env)} && ${OCAMLOPT} ${OCAMLFLAGS} ${OCAMLPATH} ${INCLUDES} -c ${SRC[0].abspath(env)}',color='GREEN')
b('ocamllex','${OCAMLLEX} ${SRC} -o ${TGT}',color='BLUE',before="ocamlcmi ocaml ocamlcc")
b('ocamlyacc','${OCAMLYACC} -b ${TGT[0].bld_base(env)} ${SRC}',color='BLUE',before="ocamlcmi ocaml ocamlcc")
def link_may_start(self):
if not getattr(self,'order',''):
if getattr(self,'bytecode',0):alltasks=self.obj.bytecode_tasks
else:alltasks=self.obj.native_tasks
seen=[]
pendant=[]+alltasks
while pendant:
task=pendant.pop(0)
if task in seen:continue
for x in task.run_after:
if not x in seen:
pendant.append(task)
break
else:
seen.append(task)
self.inputs=[x.outputs[0]for x in seen]
self.order=1
return Task.Task.runnable_status(self)
act=b('ocalink','${OCAMLC} -o ${TGT} ${INCLUDES} ${OCALINKFLAGS} ${SRC}',color='YELLOW',after="ocaml ocamlcc")
act.runnable_status=link_may_start
act=b('ocalinkx','${OCAMLOPT} -o ${TGT} ${INCLUDES} ${OCALINKFLAGS_OPT} ${SRC}',color='YELLOW',after="ocamlx ocamlcc")
act.runnable_status=link_may_start
def detect(conf):
opt=conf.find_program('ocamlopt',var='OCAMLOPT')
occ=conf.find_program('ocamlc',var='OCAMLC')
if(not opt)or(not occ):
conf.fatal('The objective caml compiler was not found:\ninstall it or make it available in your PATH')
conf.env['OCAMLC']=occ
conf.env['OCAMLOPT']=opt
conf.env['OCAMLLEX']=conf.find_program('ocamllex',var='OCAMLLEX')
conf.env['OCAMLYACC']=conf.find_program('ocamlyacc',var='OCAMLYACC')
conf.env['OCAMLFLAGS']=''
conf.env['OCAMLLIB']=Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep
conf.env['LIBPATH_OCAML']=Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep
conf.env['CPPPATH_OCAML']=Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep
conf.env['LIB_OCAML']='camlrun'
feature('ocaml')(init_ml)
feature('ocaml')(init_envs_ml)
after('init_ml')(init_envs_ml)
feature('ocaml')(apply_incpaths_ml)
before('apply_vars_ml')(apply_incpaths_ml)
after('init_envs_ml')(apply_incpaths_ml)
feature('ocaml')(apply_vars_ml)
before('apply_core')(apply_vars_ml)
feature('ocaml')(apply_link_ml)
after('apply_core')(apply_link_ml)
extension(EXT_MLL)(mll_hook)
extension(EXT_MLY)(mly_hook)
extension(EXT_MLI)(mli_hook)
extension(EXT_MLC)(mlc_hook)
extension(EXT_ML)(ml_hook)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/flex.py 0000644 0001750 0001750 00000000570 11176703511 021342 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import TaskGen
def decide_ext(self,node):
if'cxx'in self.features:return'.lex.cc'
else:return'.lex.c'
TaskGen.declare_chain(name='flex',rule='${FLEX} -o${TGT} ${FLEXFLAGS} ${SRC}',ext_in='.l',decider=decide_ext,before='cc cxx',)
def detect(conf):
conf.find_program('flex',var='FLEX',mandatory=True)
v=conf.env
v['FLEXFLAGS']=''
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/suncxx.py 0000644 0001750 0001750 00000002257 11176703511 021740 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,optparse
import Utils,Options,Configure
import ccroot,ar
from Configure import conftest
def find_sxx(conf):
v=conf.env
cc=None
if v['CXX']:cc=v['CXX']
elif'CXX'in conf.environ:cc=conf.environ['CXX']
if not cc:cc=conf.find_program('c++',var='CXX')
if not cc:cc=conf.find_program('CC',var='CXX')
if not cc:conf.fatal('sunc++ was not found')
v['CXX']=cc
v['CXX_NAME']='sun'
def sxx_common_flags(conf):
v=conf.env
v['CXX_SRC_F']=''
v['CXX_TGT_F']=['-c','-o','']
v['CPPPATH_ST']='-I%s'
if not v['LINK_CXX']:v['LINK_CXX']=v['CXX']
v['CXXLNK_SRC_F']=''
v['CXXLNK_TGT_F']=['-o','']
v['LIB_ST']='-l%s'
v['LIBPATH_ST']='-L%s'
v['STATICLIB_ST']='-l%s'
v['STATICLIBPATH_ST']='-L%s'
v['CXXDEFINES_ST']='-D%s'
v['SONAME_ST']='-Wl,-h -Wl,%s'
v['SHLIB_MARKER']='-Bdynamic'
v['STATICLIB_MARKER']='-Bstatic'
v['program_PATTERN']='%s'
v['shlib_CXXFLAGS']=['-Kpic','-DPIC']
v['shlib_LINKFLAGS']=['-G']
v['shlib_PATTERN']='lib%s.so'
v['staticlib_LINKFLAGS']=['-Bstatic']
v['staticlib_PATTERN']='lib%s.a'
detect='''
find_sxx
find_cpp
find_ar
sxx_common_flags
cxx_load_tools
cxx_add_flags
'''
conftest(find_sxx)
conftest(sxx_common_flags)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/compiler_cxx.py 0000644 0001750 0001750 00000003102 11176703511 023072 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys,imp,types,ccroot
import optparse
import Utils,Configure,Options
cxx_compiler={'win32':['msvc','g++'],'cygwin':['g++'],'darwin':['g++'],'aix5':['g++'],'linux':['g++','icpc','sunc++'],'sunos':['g++','sunc++'],'irix':['g++'],'hpux':['g++'],'default':['g++']}
def __list_possible_compiler(platform):
try:
return(cxx_compiler[platform])
except KeyError:
return(cxx_compiler["default"])
def detect(conf):
try:test_for_compiler=Options.options.check_cxx_compiler
except AttributeError:raise Configure.ConfigurationError("Add set_options(opt): opt.tool_options('compiler_cxx')")
for cxx_compiler in test_for_compiler.split():
try:
conf.check_tool(cxx_compiler)
except Configure.ConfigurationError:
pass
else:
if conf.env['CXX']:
conf.check_message("%s"%cxx_compiler,'',True)
conf.env["COMPILER_CXX"]="%s"%cxx_compiler
return
conf.check_message("%s"%cxx_compiler,'',False)
break
conf.env["COMPILER_CXX"]=None
def set_options(opt):
detected_platform=Options.platform
possible_compiler_list=__list_possible_compiler(detected_platform)
test_for_compiler=str(" ").join(possible_compiler_list)
cxx_compiler_opts=opt.add_option_group("C++ Compiler Options")
cxx_compiler_opts.add_option('--check-cxx-compiler',default="%s"%test_for_compiler,help='On this platform (%s) the following C++ Compiler will be checked by default: "%s"'%(detected_platform,test_for_compiler),dest="check_cxx_compiler")
for cxx_compiler in test_for_compiler.split():
opt.tool_options('%s'%cxx_compiler,option_group=cxx_compiler_opts)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/osx.py 0000644 0001750 0001750 00000010614 11176703511 021215 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,shutil,sys,platform
import TaskGen,Task,Build,Options
from TaskGen import taskgen,feature,after,before
from Logs import error,debug
def set_macosx_deployment_target(self):
if self.env['MACOSX_DEPLOYMENT_TARGET']:
os.environ['MACOSX_DEPLOYMENT_TARGET']=self.env['MACOSX_DEPLOYMENT_TARGET']
elif'MACOSX_DEPLOYMENT_TARGET'not in os.environ:
if sys.platform=='darwin':
os.environ['MACOSX_DEPLOYMENT_TARGET']='.'.join(platform.mac_ver()[0].split('.')[:2])
def apply_framework(self):
for x in self.to_list(self.env['FRAMEWORKPATH']):
frameworkpath_st='-F%s'
self.env.append_unique('CXXFLAGS',frameworkpath_st%x)
self.env.append_unique('CCFLAGS',frameworkpath_st%x)
self.env.append_unique('LINKFLAGS',frameworkpath_st%x)
for x in self.to_list(self.env['FRAMEWORK']):
self.env.append_value('LINKFLAGS',['-framework',x])
def create_task_macapp(self):
if'cprogram'in self.features and self.link_task:
apptask=self.create_task('macapp',self.env)
apptask.set_inputs(self.link_task.outputs)
apptask.set_outputs(self.link_task.outputs[0].change_ext('.app'))
self.apptask=apptask
def apply_link_osx(self):
if self.env['MACAPP']or getattr(self,'mac_app',False):
self.create_task_macapp()
name=self.link_task.outputs[0].name
if getattr(self,'vnum',None):
name=name.replace('.dylib','.%s.dylib'%self.vnum)
path=os.path.join(self.env['PREFIX'],'lib',name)
self.env.append_value('LINKFLAGS','-install_name')
self.env.append_value('LINKFLAGS',path)
def apply_bundle(self):
if not('cshlib'in self.features or'shlib'in self.features):return
if self.env['MACBUNDLE']or getattr(self,'mac_bundle',False):
self.env['shlib_PATTERN']=self.env['macbundle_PATTERN']
uselib=self.uselib=self.to_list(self.uselib)
if not'MACBUNDLE'in uselib:uselib.append('MACBUNDLE')
def apply_bundle_remove_dynamiclib(self):
if self.env['MACBUNDLE']or getattr(self,'mac_bundle',False):
if not getattr(self,'vnum',None):
try:
self.env['LINKFLAGS'].remove('-dynamiclib')
except ValueError:
pass
app_dirs=['Contents',os.path.join('Contents','MacOS'),os.path.join('Contents','Resources')]
app_info='''
CFBundlePackageTypeAPPLCFBundleGetInfoStringCreated by WafCFBundleSignature????NOTETHIS IS A GENERATED FILE, DO NOT MODIFYCFBundleExecutable%s
'''
def app_build(task):
global app_dirs
env=task.env
i=0
for p in task.outputs:
srcfile=p.srcpath(env)
debug('osx: creating directories')
try:
os.mkdir(srcfile)
[os.makedirs(os.path.join(srcfile,d))for d in app_dirs]
except(OSError,IOError):
pass
srcprg=task.inputs[i].srcpath(env)
dst=os.path.join(srcfile,'Contents','MacOS')
debug('osx: copy %s to %s'%(srcprg,dst))
shutil.copy(srcprg,dst)
debug('osx: generate Info.plist')
f=open(os.path.join(srcfile,"Contents","Info.plist"),"w")
f.write(app_info%os.path.basename(srcprg))
f.close()
i+=1
return 0
def install_shlib(task):
nums=task.vnum.split('.')
path=self.install_path
libname=task.outputs[0].name
name3=libname.replace('.dylib','.%s.dylib'%task.vnum)
name2=libname.replace('.dylib','.%s.dylib'%nums[0])
name1=libname
filename=task.outputs[0].abspath(task.env)
bld=task.outputs[0].__class__.bld
bld.install_as(path+name3,filename,env=task.env)
bld.symlink_as(path+name2,name3)
bld.symlink_as(path+name1,name3)
def install_target_osx_cshlib(self):
if not self.bld.is_install:return
if getattr(self,'vnum','')and sys.platform!='win32':
self.link_task.install=install_shlib
Task.task_type_from_func('macapp',vars=[],func=app_build,after="cxx_link cc_link ar_link_static")
feature('cc','cxx')(set_macosx_deployment_target)
before('apply_lib_vars')(set_macosx_deployment_target)
feature('cc','cxx')(apply_framework)
after('apply_lib_vars')(apply_framework)
taskgen(create_task_macapp)
after('apply_link')(apply_link_osx)
feature('cc','cxx')(apply_link_osx)
before('apply_link','apply_lib_vars')(apply_bundle)
feature('cc','cxx')(apply_bundle)
after('apply_link')(apply_bundle_remove_dynamiclib)
feature('cshlib')(apply_bundle_remove_dynamiclib)
feature('osx')(install_target_osx_cshlib)
after('install_target_cshlib')(install_target_osx_cshlib)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/cxx.py 0000644 0001750 0001750 00000005244 11176703511 021211 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import sys
if sys.hexversion < 0x020400f0: from sets import Set as set
import TaskGen,Task,Utils
from Logs import debug
import ccroot
from TaskGen import feature,before,extension,after
g_cxx_flag_vars=['CXXDEPS','FRAMEWORK','FRAMEWORKPATH','STATICLIB','LIB','LIBPATH','LINKFLAGS','RPATH','CXXFLAGS','CCFLAGS','CPPPATH','CPPFLAGS','CXXDEFINES']
EXT_CXX=['.cpp','.cc','.cxx','.C','.c++']
g_cxx_type_vars=['CXXFLAGS','LINKFLAGS']
class cxx_taskgen(ccroot.ccroot_abstract):
pass
def init_cxx(self):
if not'cc'in self.features:
self.mappings['.c']=TaskGen.task_gen.mappings['.cxx']
self.p_flag_vars=set(self.p_flag_vars).union(g_cxx_flag_vars)
self.p_type_vars=set(self.p_type_vars).union(g_cxx_type_vars)
if not self.env['CXX_NAME']:
raise Utils.WafError("At least one compiler (g++, ..) must be selected")
def apply_obj_vars_cxx(self):
env=self.env
app=env.append_unique
cxxpath_st=env['CPPPATH_ST']
for i in env['INC_PATHS']:
app('_CXXINCFLAGS',cxxpath_st%i.bldpath(env))
app('_CXXINCFLAGS',cxxpath_st%i.srcpath(env))
for i in env['CPPPATH']:
app('_CXXINCFLAGS',cxxpath_st%i)
def apply_defines_cxx(self):
self.defines=getattr(self,'defines',[])
lst=self.to_list(self.defines)+self.to_list(self.env['CXXDEFINES'])
milst=[]
for defi in lst:
if not defi in milst:
milst.append(defi)
libs=self.to_list(self.uselib)
for l in libs:
val=self.env['CXXDEFINES_'+l]
if val:milst+=self.to_list(val)
self.env['DEFLINES']=["%s %s"%(x[0],Utils.trimquotes('='.join(x[1:])))for x in[y.split('=')for y in milst]]
y=self.env['CXXDEFINES_ST']
self.env['_CXXDEFFLAGS']=[y%x for x in milst]
def cxx_hook(self,node):
task=self.create_task('cxx')
if getattr(self,'obj_ext',None):
obj_ext=self.obj_ext
else:
obj_ext='_%d.o'%self.idx
task.inputs=[node]
task.outputs=[node.change_ext(obj_ext)]
self.compiled_tasks.append(task)
return task
cxx_str='${CXX} ${CXXFLAGS} ${CPPFLAGS} ${_CXXINCFLAGS} ${_CXXDEFFLAGS} ${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}'
cls=Task.simple_task_type('cxx',cxx_str,color='GREEN',ext_out='.o',ext_in='.cxx',shell=False)
cls.scan=ccroot.scan
cls.vars.append('CXXDEPS')
link_str='${LINK_CXX} ${CXXLNK_SRC_F}${SRC} ${CXXLNK_TGT_F}${TGT} ${LINKFLAGS}'
cls=Task.simple_task_type('cxx_link',link_str,color='YELLOW',ext_in='.o',shell=False)
cls.maxjobs=1
cls2=Task.task_type_from_func('vnum_cxx_link',ccroot.link_vnum,cls.vars,color='CYAN',ext_in='.o')
cls2.maxjobs=1
feature('cxx')(init_cxx)
before('apply_type_vars')(init_cxx)
after('default_cc')(init_cxx)
feature('cxx')(apply_obj_vars_cxx)
after('apply_incpaths')(apply_obj_vars_cxx)
feature('cxx')(apply_defines_cxx)
after('apply_lib_vars')(apply_defines_cxx)
extension(EXT_CXX)(cxx_hook)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/libtool.py 0000644 0001750 0001750 00000017440 11176703511 022054 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import sys,re,os,optparse
import TaskGen,Task,Utils,preproc
from Logs import error,debug,warn
from TaskGen import taskgen,after,before,feature
REVISION="0.1.3"
fakelibtool_vardeps=['CXX','PREFIX']
def fakelibtool_build(task):
env=task.env
dest=open(task.outputs[0].abspath(env),'w')
sname=task.inputs[0].name
fu=dest.write
fu("# Generated by ltmain.sh - GNU libtool 1.5.18 - (pwn3d by BKsys II code name WAF)\n")
if env['vnum']:
nums=env['vnum'].split('.')
libname=task.inputs[0].name
name3=libname+'.'+env['vnum']
name2=libname+'.'+nums[0]
name1=libname
fu("dlname='%s'\n"%name2)
strn=" ".join([name3,name2,name1])
fu("library_names='%s'\n"%(strn))
else:
fu("dlname='%s'\n"%sname)
fu("library_names='%s %s %s'\n"%(sname,sname,sname))
fu("old_library=''\n")
vars=' '.join(env['libtoolvars']+env['LINKFLAGS'])
fu("dependency_libs='%s'\n"%vars)
fu("current=0\n")
fu("age=0\nrevision=0\ninstalled=yes\nshouldnotlink=no\n")
fu("dlopen=''\ndlpreopen=''\n")
fu("libdir='%s/lib'\n"%env['PREFIX'])
dest.close()
return 0
def read_la_file(path):
sp=re.compile(r'^([^=]+)=\'(.*)\'$')
dc={}
file=open(path,"r")
for line in file.readlines():
try:
_,left,right,_=sp.split(line.strip())
dc[left]=right
except ValueError:
pass
file.close()
return dc
def apply_link_libtool(self):
if self.type!='program':
linktask=self.link_task
latask=self.create_task('fakelibtool')
latask.set_inputs(linktask.outputs)
latask.set_outputs(linktask.outputs[0].change_ext('.la'))
self.latask=latask
if self.bld.is_install:
self.bld.install_files('${PREFIX}/lib',linktask.outputs[0].abspath(self.env),self.env)
def apply_libtool(self):
self.env['vnum']=self.vnum
paths=[]
libs=[]
libtool_files=[]
libtool_vars=[]
for l in self.env['LINKFLAGS']:
if l[:2]=='-L':
paths.append(l[2:])
elif l[:2]=='-l':
libs.append(l[2:])
for l in libs:
for p in paths:
dict=read_la_file(p+'/lib'+l+'.la')
linkflags2=dict.get('dependency_libs','')
for v in linkflags2.split():
if v.endswith('.la'):
libtool_files.append(v)
libtool_vars.append(v)
continue
self.env.append_unique('LINKFLAGS',v)
break
self.env['libtoolvars']=libtool_vars
while libtool_files:
file=libtool_files.pop()
dict=read_la_file(file)
for v in dict['dependency_libs'].split():
if v[-3:]=='.la':
libtool_files.append(v)
continue
self.env.append_unique('LINKFLAGS',v)
Task.task_type_from_func('fakelibtool',vars=fakelibtool_vardeps,func=fakelibtool_build,color='BLUE',after="cc_link cxx_link ar_link_static")
class libtool_la_file:
def __init__(self,la_filename):
self.__la_filename=la_filename
self.linkname=str(os.path.split(la_filename)[-1])[:-3]
if self.linkname.startswith("lib"):
self.linkname=self.linkname[3:]
self.dlname=None
self.library_names=None
self.old_library=None
self.dependency_libs=None
self.current=None
self.age=None
self.revision=None
self.installed=None
self.shouldnotlink=None
self.dlopen=None
self.dlpreopen=None
self.libdir='/usr/lib'
if not self.__parse():
raise"file %s not found!!"%(la_filename)
def __parse(self):
if not os.path.isfile(self.__la_filename):return 0
la_file=open(self.__la_filename,'r')
for line in la_file:
ln=line.strip()
if not ln:continue
if ln[0]=='#':continue
(key,value)=str(ln).split('=',1)
key=key.strip()
value=value.strip()
if value=="no":value=False
elif value=="yes":value=True
else:
try:value=int(value)
except ValueError:value=value.strip("'")
setattr(self,key,value)
la_file.close()
return 1
def get_libs(self):
libs=[]
if self.dependency_libs:
libs=str(self.dependency_libs).strip().split()
if libs==None:
libs=[]
libs.insert(0,"-l%s"%self.linkname.strip())
libs.insert(0,"-L%s"%self.libdir.strip())
return libs
def __str__(self):
return'''\
dlname = "%(dlname)s"
library_names = "%(library_names)s"
old_library = "%(old_library)s"
dependency_libs = "%(dependency_libs)s"
version = %(current)s.%(age)s.%(revision)s
installed = "%(installed)s"
shouldnotlink = "%(shouldnotlink)s"
dlopen = "%(dlopen)s"
dlpreopen = "%(dlpreopen)s"
libdir = "%(libdir)s"'''%self.__dict__
class libtool_config:
def __init__(self,la_filename):
self.__libtool_la_file=libtool_la_file(la_filename)
tmp=self.__libtool_la_file
self.__version=[int(tmp.current),int(tmp.age),int(tmp.revision)]
self.__sub_la_files=[]
self.__sub_la_files.append(la_filename)
self.__libs=None
def __cmp__(self,other):
if not other:
return 1
othervers=[int(s)for s in str(other).split(".")]
selfvers=self.__version
return cmp(selfvers,othervers)
def __str__(self):
return"\n".join([str(self.__libtool_la_file),' '.join(self.__libtool_la_file.get_libs()),'* New getlibs:',' '.join(self.get_libs())])
def __get_la_libs(self,la_filename):
return libtool_la_file(la_filename).get_libs()
def get_libs(self):
libs_list=list(self.__libtool_la_file.get_libs())
libs_map={}
while len(libs_list)>0:
entry=libs_list.pop(0)
if entry:
if str(entry).endswith(".la"):
if entry not in self.__sub_la_files:
self.__sub_la_files.append(entry)
libs_list.extend(self.__get_la_libs(entry))
else:
libs_map[entry]=1
self.__libs=libs_map.keys()
return self.__libs
def get_libs_only_L(self):
if not self.__libs:self.get_libs()
libs=self.__libs
libs=[s for s in libs if str(s).startswith('-L')]
return libs
def get_libs_only_l(self):
if not self.__libs:self.get_libs()
libs=self.__libs
libs=[s for s in libs if str(s).startswith('-l')]
return libs
def get_libs_only_other(self):
if not self.__libs:self.get_libs()
libs=self.__libs
libs=[s for s in libs if not(str(s).startswith('-L')or str(s).startswith('-l'))]
return libs
def useCmdLine():
usage='''Usage: %prog [options] PathToFile.la
example: %prog --atleast-version=2.0.0 /usr/lib/libIlmImf.la
nor: %prog --libs /usr/lib/libamarok.la'''
parser=optparse.OptionParser(usage)
a=parser.add_option
a("--version",dest="versionNumber",action="store_true",default=False,help="output version of libtool-config")
a("--debug",dest="debug",action="store_true",default=False,help="enable debug")
a("--libs",dest="libs",action="store_true",default=False,help="output all linker flags")
a("--libs-only-l",dest="libs_only_l",action="store_true",default=False,help="output -l flags")
a("--libs-only-L",dest="libs_only_L",action="store_true",default=False,help="output -L flags")
a("--libs-only-other",dest="libs_only_other",action="store_true",default=False,help="output other libs (e.g. -pthread)")
a("--atleast-version",dest="atleast_version",default=None,help="return 0 if the module is at least version ATLEAST_VERSION")
a("--exact-version",dest="exact_version",default=None,help="return 0 if the module is exactly version EXACT_VERSION")
a("--max-version",dest="max_version",default=None,help="return 0 if the module is at no newer than version MAX_VERSION")
(options,args)=parser.parse_args()
if len(args)!=1 and not options.versionNumber:
parser.error("incorrect number of arguments")
if options.versionNumber:
print("libtool-config version %s"%REVISION)
return 0
ltf=libtool_config(args[0])
if options.debug:
print(ltf)
if options.atleast_version:
if ltf>=options.atleast_version:return 0
sys.exit(1)
if options.exact_version:
if ltf==options.exact_version:return 0
sys.exit(1)
if options.max_version:
if ltf<=options.max_version:return 0
sys.exit(1)
def p(x):
print(" ".join(x))
if options.libs:p(ltf.get_libs())
elif options.libs_only_l:p(ltf.get_libs_only_l())
elif options.libs_only_L:p(ltf.get_libs_only_L())
elif options.libs_only_other:p(ltf.get_libs_only_other())
return 0
if __name__=='__main__':
useCmdLine()
feature("libtool")(apply_link_libtool)
after('apply_link')(apply_link_libtool)
feature("libtool")(apply_libtool)
before('apply_core')(apply_libtool)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/kde4.py 0000644 0001750 0001750 00000004144 11176703511 021234 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys,re
import Options,TaskGen,Task,Utils
from TaskGen import taskgen,feature,after
class msgfmt_taskgen(TaskGen.task_gen):
def __init__(self,*k,**kw):
TaskGen.task_gen.__init__(self,*k,**kw)
def init_msgfmt(self):
self.default_install_path='${KDE4_LOCALE_INSTALL_DIR}'
def apply_msgfmt(self):
for lang in self.to_list(self.langs):
node=self.path.find_resource(lang+'.po')
task=self.create_task('msgfmt')
task.set_inputs(node)
task.set_outputs(node.change_ext('.mo'))
if not self.bld.is_install:continue
langname=lang.split('/')
langname=langname[-1]
task.install_path=self.install_path+os.sep+langname+os.sep+'LC_MESSAGES'
task.filename=getattr(self,'appname','set_your_appname')+'.mo'
task.chmod=self.chmod
def detect(conf):
kdeconfig=conf.find_program('kde4-config')
if not kdeconfig:
conf.fatal('we need kde4-config')
prefix=Utils.cmd_output('%s --prefix'%kdeconfig,silent=True).strip()
file='%s/share/apps/cmake/modules/KDELibsDependencies.cmake'%prefix
try:os.stat(file)
except OSError:
file='%s/share/kde4/apps/cmake/modules/KDELibsDependencies.cmake'%prefix
try:os.stat(file)
except OSError:conf.fatal('could not open %s'%file)
try:
txt=Utils.readf(file)
except(OSError,IOError):
conf.fatal('could not read %s'%file)
txt=txt.replace('\\\n','\n')
fu=re.compile('#(.*)\n')
txt=fu.sub('',txt)
setregexp=re.compile('([sS][eE][tT]\s*\()\s*([^\s]+)\s+\"([^"]+)\"\)')
found=setregexp.findall(txt)
for(_,key,val)in found:
conf.env[key]=val
conf.env['LIB_KDECORE']='kdecore'
conf.env['LIB_KDEUI']='kdeui'
conf.env['LIB_KIO']='kio'
conf.env['LIB_KHTML']='khtml'
conf.env['LIB_KPARTS']='kparts'
conf.env['LIBPATH_KDECORE']=conf.env['KDE4_LIB_INSTALL_DIR']
conf.env['CPPPATH_KDECORE']=conf.env['KDE4_INCLUDE_INSTALL_DIR']
conf.env.append_value('CPPPATH_KDECORE',conf.env['KDE4_INCLUDE_INSTALL_DIR']+"/KDE")
conf.env['MSGFMT']=conf.find_program('msgfmt')
Task.simple_task_type('msgfmt','${MSGFMT} ${SRC} -o ${TGT}',color='BLUE',shell=False)
feature('msgfmt')(init_msgfmt)
feature('msgfmt')(apply_msgfmt)
after('init_msgfmt')(apply_msgfmt)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/winres.py 0000644 0001750 0001750 00000002077 11176703511 021717 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys,re
import TaskGen,Task
from Utils import quote_whitespace
from TaskGen import extension
EXT_WINRC=['.rc']
winrc_str='${WINRC} ${_CPPDEFFLAGS} ${_CCDEFFLAGS} ${WINRCFLAGS} ${_CPPINCFLAGS} ${_CCINCFLAGS} ${WINRC_TGT_F} ${TGT} ${WINRC_SRC_F} ${SRC}'
def rc_file(self,node):
obj_ext='.rc.o'
if self.env['WINRC_TGT_F']=='/fo':obj_ext='.res'
rctask=self.create_task('winrc')
rctask.set_inputs(node)
rctask.set_outputs(node.change_ext(obj_ext))
self.compiled_tasks.append(rctask)
Task.simple_task_type('winrc',winrc_str,color='BLUE',before='cc cxx',shell=False)
def detect(conf):
v=conf.env
winrc=v['WINRC']
v['WINRC_TGT_F']='-o'
v['WINRC_SRC_F']='-i'
if not winrc:
if v['CC_NAME']in['gcc','cc','g++','c++']:
winrc=conf.find_program('windres',var='WINRC',path_list=v['PATH'])
elif v['CC_NAME']=='msvc':
winrc=conf.find_program('RC',var='WINRC',path_list=v['PATH'])
v['WINRC_TGT_F']='/fo'
v['WINRC_SRC_F']=''
if not winrc:
conf.fatal('winrc was not found!')
v['WINRCFLAGS']=''
extension(EXT_WINRC)(rc_file)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/qt4.py 0000644 0001750 0001750 00000027521 11176703511 021121 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
try:
from xml.sax import make_parser
from xml.sax.handler import ContentHandler
except ImportError:
has_xml=False
ContentHandler=object
else:
has_xml=True
import os,sys
import ccroot,cxx
import TaskGen,Task,Utils,Runner,Options,Node
from TaskGen import taskgen,feature,after,extension
from Logs import error
from Constants import*
MOC_H=['.h','.hpp','.hxx','.hh']
EXT_RCC=['.qrc']
EXT_UI=['.ui']
EXT_QT4=['.cpp','.cc','.cxx','.C']
class qxx_task(Task.Task):
before=['cxx_link','ar_link_static']
def __init__(self,*k,**kw):
Task.Task.__init__(self,*k,**kw)
self.moc_done=0
def scan(self):
(nodes,names)=ccroot.scan(self)
for x in nodes:
if x.name.endswith('.moc'):
nodes.remove(x)
names.append(x.relpath_gen(self.inputs[0].parent))
return(nodes,names)
def runnable_status(self):
if self.moc_done:
for t in self.run_after:
if not t.hasrun:
return ASK_LATER
self.signature()
return Task.Task.runnable_status(self)
else:
for t in self.run_after:
if not t.hasrun:
return ASK_LATER
self.add_moc_tasks()
return ASK_LATER
def add_moc_tasks(self):
node=self.inputs[0]
tree=node.__class__.bld
try:
self.signature()
except KeyError:
pass
else:
delattr(self,'cache_sig')
moctasks=[]
mocfiles=[]
variant=node.variant(self.env)
try:
tmp_lst=tree.raw_deps[self.unique_id()]
tree.raw_deps[self.unique_id()]=[]
except KeyError:
tmp_lst=[]
for d in tmp_lst:
if not d.endswith('.moc'):continue
if d in mocfiles:
error("paranoia owns")
continue
mocfiles.append(d)
ext=''
try:ext=Options.options.qt_header_ext
except AttributeError:pass
if not ext:
base2=d[:-4]
paths=[node.parent.srcpath(self.env),node.parent.bldpath(self.env)]
poss=[(x,y)for x in MOC_H for y in paths]
for(i,path)in poss:
try:
os.stat(os.path.join(path,base2+i))
except OSError:
pass
else:
ext=i
break
if not ext:raise Utils.WafError("no header found for %s which is a moc file"%str(d))
h_node=node.parent.find_resource(base2+i)
m_node=h_node.change_ext('.moc')
tree.node_deps[(self.inputs[0].parent.id,self.env.variant(),m_node.name)]=h_node
task=Task.TaskBase.classes['moc'](self.env,normal=0)
task.set_inputs(h_node)
task.set_outputs(m_node)
generator=tree.generator
generator.outstanding.insert(0,task)
generator.total+=1
moctasks.append(task)
tmp_lst=tree.raw_deps[self.unique_id()]=mocfiles
lst=tree.node_deps.get(self.unique_id(),())
for d in lst:
name=d.name
if name.endswith('.moc'):
task=Task.TaskBase.classes['moc'](self.env,normal=0)
task.set_inputs(tree.node_deps[(self.inputs[0].parent.id,self.env.variant(),name)])
task.set_outputs(d)
generator=tree.generator
generator.outstanding.insert(0,task)
generator.total+=1
moctasks.append(task)
self.run_after=moctasks
self.moc_done=1
run=Task.TaskBase.classes['cxx'].__dict__['run']
def translation_update(task):
outs=[a.abspath(task.env)for a in task.outputs]
outs=" ".join(outs)
lupdate=task.env['QT_LUPDATE']
for x in task.inputs:
file=x.abspath(task.env)
cmd="%s %s -ts %s"%(lupdate,file,outs)
Utils.pprint('BLUE',cmd)
task.generator.bld.exec_command(cmd)
class XMLHandler(ContentHandler):
def __init__(self):
self.buf=[]
self.files=[]
def startElement(self,name,attrs):
if name=='file':
self.buf=[]
def endElement(self,name):
if name=='file':
self.files.append(''.join(self.buf))
def characters(self,cars):
self.buf.append(cars)
def scan(self):
node=self.inputs[0]
parser=make_parser()
curHandler=XMLHandler()
parser.setContentHandler(curHandler)
fi=open(self.inputs[0].abspath(self.env))
parser.parse(fi)
fi.close()
nodes=[]
names=[]
root=self.inputs[0].parent
for x in curHandler.files:
x=x.encode('utf8')
nd=root.find_resource(x)
if nd:nodes.append(nd)
else:names.append(x)
return(nodes,names)
def create_rcc_task(self,node):
rcnode=node.change_ext('_rc.cpp')
rcctask=self.create_task('rcc')
rcctask.inputs=[node]
rcctask.outputs=[rcnode]
cpptask=self.create_task('cxx')
cpptask.inputs=[rcnode]
cpptask.outputs=[rcnode.change_ext('.o')]
self.compiled_tasks.append(cpptask)
return cpptask
def create_uic_task(self,node):
uictask=self.create_task('ui4')
uictask.inputs=[node]
uictask.outputs=[self.path.find_or_declare(self.env['ui_PATTERN']%node.name[:-3])]
class qt4_taskgen(cxx.cxx_taskgen):
def __init__(self,*k,**kw):
cxx.cxx_taskgen.__init__(self,*k,**kw)
self.features.append('qt4')
def add_lang(self,node):
self.lang=self.to_list(getattr(self,'lang',[]))+[node]
def apply_qt4(self):
if getattr(self,'lang',None):
update=getattr(self,'update',None)
lst=[]
trans=[]
for l in self.to_list(self.lang):
if not isinstance(l,Node.Node):
l=self.path.find_resource(l+'.ts')
t=self.create_task('ts2qm')
t.set_inputs(l)
t.set_outputs(l.change_ext('.qm'))
lst.append(t.outputs[0])
if update:
trans.append(t.inputs[0])
if update and Options.options.trans_qt4:
u=Task.TaskCmd(translation_update,self.env,2)
u.inputs=[a.inputs[0]for a in self.compiled_tasks]
u.outputs=trans
if getattr(self,'langname',None):
t=Task.TaskBase.classes['qm2rcc'](self.env)
t.set_inputs(lst)
t.set_outputs(self.path.find_or_declare(self.langname+'.qrc'))
t.path=self.path
k=create_rcc_task(self,t.outputs[0])
self.link_task.inputs.append(k.outputs[0])
lst=[]
for flag in self.to_list(self.env['CXXFLAGS']):
if len(flag)<2:continue
if flag[0:2]=='-D'or flag[0:2]=='-I':
lst.append(flag)
self.env['MOC_FLAGS']=lst
def cxx_hook(self,node):
task=self.create_task('qxx')
self.compiled_tasks.append(task)
try:obj_ext=self.obj_ext
except AttributeError:obj_ext='_%d.o'%self.idx
task.inputs=[node]
task.outputs=[node.change_ext(obj_ext)]
def process_qm2rcc(task):
outfile=task.outputs[0].abspath(task.env)
f=open(outfile,'w')
f.write('\n\n')
for k in task.inputs:
f.write(' ')
f.write(k.path_to_parent(task.path))
f.write('\n')
f.write('\n')
f.close()
b=Task.simple_task_type
b('moc','${QT_MOC} ${MOC_FLAGS} ${SRC} ${MOC_ST} ${TGT}',color='BLUE',vars=['QT_MOC','MOC_FLAGS'],shell=False)
cls=b('rcc','${QT_RCC} -name ${SRC[0].name} ${SRC[0].abspath(env)} ${RCC_ST} -o ${TGT}',color='BLUE',before='cxx moc qxx_task',after="qm2rcc",shell=False)
cls.scan=scan
b('ui4','${QT_UIC} ${SRC} -o ${TGT}',color='BLUE',before='cxx moc qxx_task',shell=False)
b('ts2qm','${QT_LRELEASE} ${QT_LRELEASE_FLAGS} ${SRC} -qm ${TGT}',color='BLUE',before='qm2rcc',shell=False)
Task.task_type_from_func('qm2rcc',vars=[],func=process_qm2rcc,color='BLUE',before='rcc',after='ts2qm')
def detect_qt4(conf):
env=conf.env
opt=Options.options
qtlibs=getattr(opt,'qtlibs','')
qtincludes=getattr(opt,'qtincludes','')
qtbin=getattr(opt,'qtbin','')
useframework=getattr(opt,'use_qt4_osxframework',True)
qtdir=getattr(opt,'qtdir','')
if not qtdir:qtdir=conf.environ.get('QT4_ROOT','')
if not qtdir:
try:
lst=os.listdir('/usr/local/Trolltech/')
lst.sort()
lst.reverse()
qtdir='/usr/local/Trolltech/%s/'%lst[0]
except OSError:
pass
if not qtdir:
try:
path=conf.environ['PATH'].split(':')
for qmk in['qmake-qt4','qmake4','qmake']:
qmake=conf.find_program(qmk,path)
if qmake:
version=Utils.cmd_output([qmake,'-query','QT_VERSION']).strip().split('.')
if version[0]=="4":
qtincludes=Utils.cmd_output([qmake,'-query','QT_INSTALL_HEADERS']).strip()
qtdir=Utils.cmd_output([qmake,'-query','QT_INSTALL_PREFIX']).strip()+"/"
qtbin=Utils.cmd_output([qmake,'-query','QT_INSTALL_BINS']).strip()+"/"
break
except(OSError,ValueError):
pass
if not qtlibs:qtlibs=os.path.join(qtdir,'lib')
vars="QtCore QtGui QtUiTools QtNetwork QtOpenGL QtSql QtSvg QtTest QtXml QtWebKit Qt3Support".split()
framework_ok=False
if sys.platform=="darwin"and useframework:
for i in vars:
e=conf.create_framework_configurator()
e.path=[qtlibs,'/Library/Frameworks']
e.name=i
e.remove_dot_h=True
e.run()
if not i=='QtCore':
for r in env['CCFLAGS_'+i.upper()]:
if r.startswith('-F'):
env['CCFLAGS_'+i.upper()].remove(r)
break
if conf.is_defined('HAVE_QTOPENGL'):
env.append_unique('FRAMEWORK_QTOPENGL','OpenGL')
if conf.is_defined('HAVE_QTGUI'):
env.append_unique('FRAMEWORK_QTGUI',['AppKit','ApplicationServices'])
framework_ok=True
if not conf.is_defined("HAVE_QTGUI"):
if not qtincludes:qtincludes=os.path.join(qtdir,'include')
env['QTINCLUDEPATH']=qtincludes
lst=[qtincludes,'/usr/share/qt4/include/','/opt/qt4/include']
conf.check(header_name='QtGui/QFont',define_name='HAVE_QTGUI',mandatory=1,includes=lst)
if not qtbin:qtbin=os.path.join(qtdir,'bin')
binpath=[qtbin,'/usr/share/qt4/bin/']+conf.environ['PATH'].split(':')
def find_bin(lst,var):
for f in lst:
ret=conf.find_program(f,path_list=binpath)
if ret:
env[var]=ret
break
find_bin(['uic-qt3','uic3'],'QT_UIC3')
find_bin(['uic-qt4','uic'],'QT_UIC')
if not env['QT_UIC']:
conf.fatal('connot find uic compiler')
try:
version=Utils.cmd_output(env['QT_UIC']+" -version 2>&1").strip()
except ValueError:
conf.fatal('your uic compiler is for qt3, add uic for qt4 to your path')
version=version.replace('Qt User Interface Compiler ','')
version=version.replace('User Interface Compiler for Qt','')
if version.find(" 3.")!=-1:
conf.check_message('uic version','(too old)',0,option='(%s)'%version)
sys.exit(1)
conf.check_message('uic version','',1,option='(%s)'%version)
find_bin(['moc-qt4','moc'],'QT_MOC')
find_bin(['rcc'],'QT_RCC')
find_bin(['lrelease-qt4','lrelease'],'QT_LRELEASE')
find_bin(['lupdate-qt4','lupdate'],'QT_LUPDATE')
env['UIC3_ST']='%s -o %s'
env['UIC_ST']='%s -o %s'
env['MOC_ST']='-o'
env['ui_PATTERN']='ui_%s.h'
env['QT_LRELEASE_FLAGS']=['-silent']
if not framework_ok:
vars_debug=[a+'_debug'for a in vars]
pkgconfig=env['pkg-config']or'PKG_CONFIG_PATH=%s:%s/pkgconfig:/usr/lib/qt4/lib/pkgconfig:/opt/qt4/lib/pkgconfig:/usr/lib/qt4/lib:/opt/qt4/lib pkg-config --silence-errors'%(qtlibs,qtlibs)
for i in vars_debug+vars:
try:
conf.check_cfg(package=i,args='--cflags --libs',path=pkgconfig)
except ValueError:
pass
def process_lib(vars_,coreval):
for d in vars_:
var=d.upper()
if var=='QTCORE':continue
value=env['LIBPATH_'+var]
if value:
core=env[coreval]
accu=[]
for lib in value:
if lib in core:continue
accu.append(lib)
env['LIBPATH_'+var]=accu
process_lib(vars,'LIBPATH_QTCORE')
process_lib(vars_debug,'LIBPATH_QTCORE_DEBUG')
if Options.options.want_rpath:
def process_rpath(vars_,coreval):
for d in vars_:
var=d.upper()
value=env['LIBPATH_'+var]
if value:
core=env[coreval]
accu=[]
for lib in value:
if var!='QTCORE':
if lib in core:
continue
accu.append('-Wl,--rpath='+lib)
env['RPATH_'+var]=accu
process_rpath(vars,'LIBPATH_QTCORE')
process_rpath(vars_debug,'LIBPATH_QTCORE_DEBUG')
env['QTLOCALE']=str(env['PREFIX'])+'/share/locale'
def detect(conf):
detect_qt4(conf)
def set_options(opt):
opt.add_option('--want-rpath',type='int',default=1,dest='want_rpath',help='set rpath to 1 or 0 [Default 1]')
opt.add_option('--header-ext',type='string',default='',help='header extension for moc files',dest='qt_header_ext')
for i in"qtdir qtincludes qtlibs qtbin".split():
opt.add_option('--'+i,type='string',default='',dest=i)
if sys.platform=="darwin":
opt.add_option('--no-qt4-framework',action="store_false",help='do not use the framework version of Qt4 in OS X',dest='use_qt4_osxframework',default=True)
opt.add_option('--translate',action="store_true",help="collect translation strings",dest="trans_qt4",default=False)
extension(EXT_RCC)(create_rcc_task)
extension(EXT_UI)(create_uic_task)
extension('.ts')(add_lang)
feature('qt4')(apply_qt4)
after('apply_link')(apply_qt4)
extension(EXT_QT4)(cxx_hook)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/msvc.py 0000644 0001750 0001750 00000043606 11176703511 021363 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os,sys,re,string,optparse
import Utils,TaskGen,Runner,Configure,Task,Options
from Logs import debug,error,warn
from TaskGen import after,before,feature
from Configure import conftest,conf
import ccroot,cc,cxx,ar,winres
from libtool import read_la_file
import _winreg
all_msvc_platforms=[('x64','amd64'),('x86','x86'),('ia64','ia64'),('x86_amd64','amd64'),('x86_ia64','ia64')]
all_icl_platforms=[('Itanium','ia64'),('intel64','amd64'),('em64t','amd64'),('ia32','x86')]
def setup_msvc(conf,versions):
platforms=Utils.to_list(conf.env['MSVC_TARGETS'])or[i for i,j in all_msvc_platforms+all_icl_platforms]
desired_versions=conf.env['MSVC_VERSIONS']or[v for v,_ in versions][::-1]
versiondict=dict(versions)
for version in desired_versions:
try:
targets=dict(versiondict[version])
for target in platforms:
try:
arch,(p1,p2,p3)=targets[target]
compiler,version=version.split()
return compiler,p1,p2,p3
except KeyError:continue
except KeyError:continue
conf.fatal('msvc: Impossible to find a valid architecture for building')
def get_msvc_version(conf,version,target,vcvars):
batfile=os.path.join(conf.blddir,"waf-print-msvc.bat")
f=open(batfile,'w')
f.write("""@echo off
set INCLUDE=
set LIB=
call %1 %2
echo PATH=%PATH%
echo INCLUDE=%INCLUDE%
echo LIB=%LIB%
""")
f.close()
sout=Utils.cmd_output(['cmd','/E:on','/V:on','/C',batfile,vcvars,target])
lines=sout.splitlines()
if lines[0].find("Setting environment")==-1 and lines[0].find("Setting SDK environment")==-1 and lines[1].find('Intel(R) C++ Compiler')==-1:
conf.fatal('msvc: Impossible to find a valid architecture for building')
for line in lines[1:]:
if line.startswith('PATH='):
MSVC_PATH=line[5:].split(';')
elif line.startswith('INCLUDE='):
MSVC_INCDIR=[i for i in line[8:].split(';')if i]
elif line.startswith('LIB='):
MSVC_LIBDIR=[i for i in line[4:].split(';')if i]
return(MSVC_PATH,MSVC_INCDIR,MSVC_LIBDIR)
def gather_wsdk_versions(conf,versions):
version_pattern=re.compile('^v..?.?\...?.?')
try:
all_versions=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,'SOFTWARE\\Wow6432node\\Microsoft\\Microsoft SDKs\\Windows')
except WindowsError:
try:
all_versions=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,'SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows')
except WindowsError:
return
index=0
while 1:
try:
version=_winreg.EnumKey(all_versions,index)
except WindowsError:
break
index=index+1
if not version_pattern.match(version):
continue
try:
msvc_version=_winreg.OpenKey(all_versions,version)
path,type=_winreg.QueryValueEx(msvc_version,'InstallationFolder')
except WindowsError:
continue
if os.path.isfile(os.path.join(path,'bin','SetEnv.cmd')):
targets=[]
for target,arch in all_msvc_platforms:
try:
targets.append((target,(arch,conf.get_msvc_version(version,'/'+target,os.path.join(path,'bin','SetEnv.cmd')))))
except Configure.ConfigurationError:
pass
versions.append(('wsdk '+version[1:],targets))
def gather_msvc_versions(conf,versions):
version_pattern=re.compile('^..?\...?')
for vcver,vcvar in[('VCExpress','exp'),('VisualStudio','')]:
try:
all_versions=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,'SOFTWARE\\Wow6432node\\Microsoft\\'+vcver)
except WindowsError:
try:
all_versions=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,'SOFTWARE\\Microsoft\\'+vcver)
except WindowsError:
continue
index=0
while 1:
try:
version=_winreg.EnumKey(all_versions,index)
except WindowsError:
break
index=index+1
if not version_pattern.match(version):
continue
try:
msvc_version=_winreg.OpenKey(all_versions,version+"\\Setup\\VS")
path,type=_winreg.QueryValueEx(msvc_version,'ProductDir')
targets=[]
if os.path.isfile(os.path.join(path,'VC','vcvarsall.bat')):
for target,realtarget in all_msvc_platforms[::-1]:
try:
targets.append((target,(realtarget,conf.get_msvc_version(version,target,os.path.join(path,'VC','vcvarsall.bat')))))
except:
pass
elif os.path.isfile(os.path.join(path,'Common7','Tools','vsvars32.bat')):
try:
targets.append(('x86',('x86',conf.get_msvc_version(version,'x86',os.path.join(path,'Common7','Tools','vsvars32.bat')))))
except Configure.ConfigurationError:
pass
versions.append(('msvc '+version,targets))
except WindowsError:
continue
def gather_icl_versions(conf,versions):
version_pattern=re.compile('^...?.?\....?.?')
try:
all_versions=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,'SOFTWARE\\Wow6432node\\Intel\\Compilers\\C++')
except WindowsError:
try:
all_versions=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,'SOFTWARE\\Intel\\Compilers\\C++')
except WindowsError:
return
index=0
while 1:
try:
version=_winreg.EnumKey(all_versions,index)
except WindowsError:
break
index=index+1
if not version_pattern.match(version):
continue
targets=[]
for target,arch in all_icl_platforms:
try:
icl_version=_winreg.OpenKey(all_versions,version+'\\'+target)
path,type=_winreg.QueryValueEx(icl_version,'ProductDir')
if os.path.isfile(os.path.join(path,'bin','iclvars.bat')):
try:
targets.append((target,(arch,conf.get_msvc_version(version,target,os.path.join(path,'bin','iclvars.bat')))))
except Configure.ConfigurationError:
pass
except WindowsError:
continue
major=version[0:2]
versions.append(('intel '+major,targets))
def get_msvc_versions(conf):
if not conf.env['MSVC_INSTALLED_VERSIONS']:
conf.env['MSVC_INSTALLED_VERSIONS']=[]
conf.gather_msvc_versions(conf.env['MSVC_INSTALLED_VERSIONS'])
conf.gather_wsdk_versions(conf.env['MSVC_INSTALLED_VERSIONS'])
conf.gather_icl_versions(conf.env['MSVC_INSTALLED_VERSIONS'])
return conf.env['MSVC_INSTALLED_VERSIONS']
def detect_msvc(conf):
versions=get_msvc_versions(conf)
return setup_msvc(conf,versions)
def msvc_linker(task):
static=task.__class__.name.find('static')>0
e=env=task.env
subsystem=getattr(task.generator,'subsystem','')
if subsystem:
subsystem='/subsystem:%s'%subsystem
outfile=task.outputs[0].bldpath(e)
manifest=outfile+'.manifest'
def to_list(xx):
if isinstance(xx,str):return[xx]
return xx
lst=[]
if static:
lst.extend(to_list(env['STLIBLINK']))
else:
lst.extend(to_list(env['LINK']))
lst.extend(to_list(subsystem))
if static:
lst.extend(to_list(env['STLINKFLAGS']))
else:
lst.extend(to_list(env['LINKFLAGS']))
lst.extend([a.srcpath(env)for a in task.inputs])
lst.extend(to_list('/OUT:%s'%outfile))
lst=[x for x in lst if x]
lst=[lst]
ret=task.exec_command(*lst)
if ret:return ret
pdbnode=task.outputs[0].change_ext('.pdb')
pdbfile=pdbnode.bldpath(e)
if os.path.exists(pdbfile):
task.outputs.append(pdbnode)
if not static and os.path.exists(manifest):
debug('msvc: manifesttool')
mtool=e['MT']
if not mtool:
return 0
mode=''
if'cprogram'in task.generator.features:
mode='1'
elif'cshlib'in task.generator.features:
mode='2'
debug('msvc: embedding manifest')
lst=[]
lst.extend(to_list(e['MT']))
lst.extend(to_list(e['MTFLAGS']))
lst.extend(to_list("-manifest"))
lst.extend(to_list(manifest))
lst.extend(to_list("-outputresource:%s;%s"%(outfile,mode)))
lst=[lst]
ret=task.exec_command(*lst)
return ret
g_msvc_systemlibs="""
aclui activeds ad1 adptif adsiid advapi32 asycfilt authz bhsupp bits bufferoverflowu cabinet
cap certadm certidl ciuuid clusapi comctl32 comdlg32 comsupp comsuppd comsuppw comsuppwd comsvcs
credui crypt32 cryptnet cryptui d3d8thk daouuid dbgeng dbghelp dciman32 ddao35 ddao35d
ddao35u ddao35ud delayimp dhcpcsvc dhcpsapi dlcapi dnsapi dsprop dsuiext dtchelp
faultrep fcachdll fci fdi framedyd framedyn gdi32 gdiplus glauxglu32 gpedit gpmuuid
gtrts32w gtrtst32hlink htmlhelp httpapi icm32 icmui imagehlp imm32 iphlpapi iprop
kernel32 ksguid ksproxy ksuser libcmt libcmtd libcpmt libcpmtd loadperf lz32 mapi
mapi32 mgmtapi minidump mmc mobsync mpr mprapi mqoa mqrt msacm32 mscms mscoree
msdasc msimg32 msrating mstask msvcmrt msvcurt msvcurtd mswsock msxml2 mtx mtxdm
netapi32 nmapinmsupp npptools ntdsapi ntdsbcli ntmsapi ntquery odbc32 odbcbcp
odbccp32 oldnames ole32 oleacc oleaut32 oledb oledlgolepro32 opends60 opengl32
osptk parser pdh penter pgobootrun pgort powrprof psapi ptrustm ptrustmd ptrustu
ptrustud qosname rasapi32 rasdlg rassapi resutils riched20 rpcndr rpcns4 rpcrt4 rtm
rtutils runtmchk scarddlg scrnsave scrnsavw secur32 sensapi setupapi sfc shell32
shfolder shlwapi sisbkup snmpapi sporder srclient sti strsafe svcguid tapi32 thunk32
traffic unicows url urlmon user32 userenv usp10 uuid uxtheme vcomp vcompd vdmdbg
version vfw32 wbemuuid webpost wiaguid wininet winmm winscard winspool winstrm
wintrust wldap32 wmiutils wow32 ws2_32 wsnmp32 wsock32 wst wtsapi32 xaswitch xolehlp
""".split()
def find_lt_names_msvc(self,libname,is_static=False):
lt_names=['lib%s.la'%libname,'%s.la'%libname,]
for path in self.env['LIBPATH']:
for la in lt_names:
laf=os.path.join(path,la)
dll=None
if os.path.exists(laf):
ltdict=read_la_file(laf)
lt_libdir=None
if ltdict.get('libdir',''):
lt_libdir=ltdict['libdir']
if not is_static and ltdict.get('library_names',''):
dllnames=ltdict['library_names'].split()
dll=dllnames[0].lower()
dll=re.sub('\.dll$','',dll)
return(lt_libdir,dll,False)
elif ltdict.get('old_library',''):
olib=ltdict['old_library']
if os.path.exists(os.path.join(path,olib)):
return(path,olib,True)
elif lt_libdir!=''and os.path.exists(os.path.join(lt_libdir,olib)):
return(lt_libdir,olib,True)
else:
return(None,olib,True)
else:
raise Utils.WafError('invalid libtool object file: %s'%laf)
return(None,None,None)
def libname_msvc(self,libname,is_static=False,mandatory=False):
lib=libname.lower()
lib=re.sub('\.lib$','',lib)
if lib in g_msvc_systemlibs:
return lib
lib=re.sub('^lib','',lib)
if lib=='m':
return None
(lt_path,lt_libname,lt_static)=self.find_lt_names_msvc(lib,is_static)
if lt_path!=None and lt_libname!=None:
if lt_static==True:
return os.path.join(lt_path,lt_libname)
if lt_path!=None:
_libpaths=[lt_path]+self.env['LIBPATH']
else:
_libpaths=self.env['LIBPATH']
static_libs=['%ss.lib'%lib,'lib%ss.lib'%lib,'%s.lib'%lib,'lib%s.lib'%lib,]
dynamic_libs=['lib%s.dll.lib'%lib,'lib%s.dll.a'%lib,'%s.dll.lib'%lib,'%s.dll.a'%lib,'lib%s_d.lib'%lib,'%s_d.lib'%lib,'%s.lib'%lib,]
libnames=static_libs
if not is_static:
libnames=dynamic_libs+static_libs
for path in _libpaths:
for libn in libnames:
if os.path.exists(os.path.join(path,libn)):
debug('msvc: lib found: %s'%os.path.join(path,libn))
return re.sub('\.lib$','',libn)
if mandatory:
self.fatal("The library %r could not be found"%libname)
return re.sub('\.lib$','',libname)
def check_lib_msvc(self,libname,is_static=False,uselib_store=None,mandatory=False):
libn=self.libname_msvc(libname,is_static,mandatory)
if not uselib_store:
uselib_store=libname.upper()
if is_static:
self.env['LIB_'+uselib_store]=[libn]
else:
self.env['STATICLIB_'+uselib_store]=[libn]
def check_libs_msvc(self,libnames,is_static=False,mandatory=False):
for libname in Utils.to_list(libnames):
self.check_lib_msvc(libname,is_static,mandatory=mandatory)
def apply_obj_vars_msvc(self):
if self.env['CC_NAME']!='msvc':
return
try:
self.meths.remove('apply_obj_vars')
except ValueError:
pass
env=self.env
app=env.append_unique
cpppath_st=env['CPPPATH_ST']
lib_st=env['LIB_ST']
staticlib_st=env['STATICLIB_ST']
libpath_st=env['LIBPATH_ST']
staticlibpath_st=env['STATICLIBPATH_ST']
for i in env['LIBPATH']:
app('LINKFLAGS',libpath_st%i)
if not self.libpaths.count(i):
self.libpaths.append(i)
for i in env['LIBPATH']:
app('LINKFLAGS',staticlibpath_st%i)
if not self.libpaths.count(i):
self.libpaths.append(i)
if not env['FULLSTATIC']:
if env['STATICLIB']or env['LIB']:
app('LINKFLAGS',env['SHLIB_MARKER'])
for i in env['STATICLIB']:
app('LINKFLAGS',lib_st%i)
for i in env['LIB']:
app('LINKFLAGS',lib_st%i)
def apply_link_msvc(self):
if self.env['CC_NAME']!='msvc':
return
link=getattr(self,'link',None)
if not link:
if'cstaticlib'in self.features:link='msvc_link_static'
elif'cxx'in self.features:link='msvc_cxx_link'
else:link='msvc_cc_link'
self.vnum=''
self.link=link
def init_msvc(self):
try:getattr(self,'libpaths')
except AttributeError:self.libpaths=[]
Task.task_type_from_func('msvc_link_static',vars=['STLIBLINK','STLINKFLAGS'],color='YELLOW',func=msvc_linker,ext_in='.o')
Task.task_type_from_func('msvc_cc_link',vars=['LINK','LINK_SRC_F','LINKFLAGS','MT','MTFLAGS'],color='YELLOW',func=msvc_linker,ext_in='.o')
Task.task_type_from_func('msvc_cxx_link',vars=['LINK','LINK_SRC_F','LINKFLAGS','MT','MTFLAGS'],color='YELLOW',func=msvc_linker,ext_in='.o')
rc_str='${RC} ${RCFLAGS} /fo ${TGT} ${SRC}'
Task.simple_task_type('rc',rc_str,color='GREEN',before='cc cxx',shell=False)
def no_autodetect(conf):
conf.eval_rules(detect.replace('autodetect',''))
detect='''
autodetect
find_msvc
msvc_common_flags
cc_load_tools
cxx_load_tools
cc_add_flags
cxx_add_flags
'''
def autodetect(conf):
v=conf.env
compiler,path,includes,libdirs=detect_msvc(conf)
v['PATH']=path
v['CPPPATH']=includes
v['LIBPATH']=libdirs
v['MSVC_COMPILER']=compiler
def find_msvc(conf):
if sys.platform!='win32':
conf.fatal('MSVC module only works under native Win32 Python! cygwin is not supported yet')
v=conf.env
compiler,path,includes,libdirs=detect_msvc(conf)
v['PATH']=path
v['CPPPATH']=includes
v['LIBPATH']=libdirs
if compiler=='msvc'or compiler=='wsdk':
compiler_name='CL'
linker_name='LINK'
lib_name='LIB'
elif compiler=='intel':
compiler_name='ICL'
linker_name='XILINK'
lib_name='XILIB'
else:
conf.fatal('Unknown compiler type : %s'%compiler)
cxx=None
if v['CXX']:cxx=v['CXX']
elif'CXX'in conf.environ:cxx=conf.environ['CXX']
if not cxx:cxx=conf.find_program(compiler_name,var='CXX',path_list=path)
if not cxx:conf.fatal('%s was not found (compiler)'%compiler_name)
cxx=conf.cmd_to_list(cxx)
env=dict(conf.environ)
env.update(PATH=';'.join(path))
if not Utils.cmd_output([cxx,'/nologo','/?'],silent=True,env=env):
conf.fatal('the msvc compiler could not be identified')
v['CC']=v['CXX']=cxx
v['CC_NAME']=v['CXX_NAME']='msvc'
try:v.prepend_value('CPPPATH',conf.environ['INCLUDE'])
except KeyError:pass
try:v.prepend_value('LIBPATH',conf.environ['LIB'])
except KeyError:pass
if not v['LINK_CXX']:
link=conf.find_program(linker_name,path_list=path)
if link:v['LINK_CXX']=link
else:conf.fatal('%s was not found (linker)'%linker_name)
v['LINK']=link
if not v['LINK_CC']:v['LINK_CC']=v['LINK_CXX']
if not v['STLIBLINK']:
stliblink=conf.find_program(lib_name,path_list=path)
if not stliblink:return
v['STLIBLINK']=stliblink
v['STLINKFLAGS']=['/NOLOGO']
manifesttool=conf.find_program('MT',path_list=path)
if manifesttool:
v['MT']=manifesttool
v['MTFLAGS']=['/NOLOGO']
conf.check_tool('winres')
if not conf.env['WINRC']:
warn('Resource compiler not found. Compiling resource file is disabled')
def exec_command_msvc(self,*k,**kw):
if self.env['CC_NAME']=='msvc':
if isinstance(k[0],list):
lst=[]
carry=''
for a in k[0]:
if(len(a)==3 and(a.startswith('/F')or a.startswith('/Y')))or(a=='/doc'):
carry=a
else:
lst.append(carry+a)
carry=''
k=[lst]
env=dict(os.environ)
env.update(PATH=';'.join(self.env['PATH']))
kw['env']=env
return self.generator.bld.exec_command(*k,**kw)
for k in'cc cxx msvc_cc_link msvc_cxx_link msvc_link_static winrc'.split():
cls=Task.TaskBase.classes.get(k,None)
if cls:
cls.exec_command=exec_command_msvc
def msvc_common_flags(conf):
v=conf.env
v['CPPFLAGS']=['/W3','/nologo','/EHsc']
v['CCDEFINES']=['WIN32']
v['CXXDEFINES']=['WIN32']
v['_CCINCFLAGS']=[]
v['_CCDEFFLAGS']=[]
v['_CXXINCFLAGS']=[]
v['_CXXDEFFLAGS']=[]
v['CC_SRC_F']=''
v['CC_TGT_F']=['/c','/Fo']
v['CXX_SRC_F']=''
v['CXX_TGT_F']=['/c','/Fo']
v['CPPPATH_ST']='/I%s'
v['CPPFLAGS_CONSOLE']=['/SUBSYSTEM:CONSOLE']
v['CPPFLAGS_NATIVE']=['/SUBSYSTEM:NATIVE']
v['CPPFLAGS_POSIX']=['/SUBSYSTEM:POSIX']
v['CPPFLAGS_WINDOWS']=['/SUBSYSTEM:WINDOWS']
v['CPPFLAGS_WINDOWSCE']=['/SUBSYSTEM:WINDOWSCE']
v['CPPFLAGS_CRT_MULTITHREADED']=['/MT']
v['CPPFLAGS_CRT_MULTITHREADED_DLL']=['/MD']
v['CPPDEFINES_CRT_MULTITHREADED']=['_MT']
v['CPPDEFINES_CRT_MULTITHREADED_DLL']=['_MT','_DLL']
v['CPPFLAGS_CRT_MULTITHREADED_DBG']=['/MTd']
v['CPPFLAGS_CRT_MULTITHREADED_DLL_DBG']=['/MDd']
v['CPPDEFINES_CRT_MULTITHREADED_DBG']=['_DEBUG','_MT']
v['CPPDEFINES_CRT_MULTITHREADED_DLL_DBG']=['_DEBUG','_MT','_DLL']
v['CCFLAGS']=['/TC']
v['CCFLAGS_OPTIMIZED']=['/O2','/DNDEBUG']
v['CCFLAGS_RELEASE']=['/O2','/DNDEBUG']
v['CCFLAGS_DEBUG']=['/Od','/RTC1','/D_DEBUG','/ZI']
v['CCFLAGS_ULTRADEBUG']=['/Od','/RTC1','/D_DEBUG','/ZI']
v['CXXFLAGS']=['/TP']
v['CXXFLAGS_OPTIMIZED']=['/O2','/DNDEBUG']
v['CXXFLAGS_RELEASE']=['/O2','/DNDEBUG']
v['CXXFLAGS_DEBUG']=['/Od','/RTC1','/D_DEBUG','/ZI']
v['CXXFLAGS_ULTRADEBUG']=['/Od','/RTC1','/D_DEBUG','/ZI']
v['LIB']=[]
v['LINK_TGT_F']='/OUT:'
v['LINK_SRC_F']=''
v['LIB_ST']='%s.lib'
v['LIBPATH_ST']='/LIBPATH:%s'
v['STATICLIB_ST']='%s.lib'
v['STATICLIBPATH_ST']='/LIBPATH:%s'
v['CCDEFINES_ST']='/D%s'
v['CXXDEFINES_ST']='/D%s'
v['LINKFLAGS']=['/NOLOGO','/MANIFEST']
v['shlib_CCFLAGS']=['']
v['shlib_CXXFLAGS']=['']
v['shlib_LINKFLAGS']=['/DLL']
v['shlib_PATTERN']='%s.dll'
v['staticlib_LINKFLAGS']=['']
v['staticlib_PATTERN']='%s.lib'
v['program_PATTERN']='%s.exe'
conf(get_msvc_version)
conf(gather_wsdk_versions)
conf(gather_msvc_versions)
conf(gather_icl_versions)
conf(get_msvc_versions)
conf(find_lt_names_msvc)
conf(libname_msvc)
conf(check_lib_msvc)
conf(check_libs_msvc)
feature('cprogram','cshlib','cstaticlib')(apply_obj_vars_msvc)
after('apply_lib_vars')(apply_obj_vars_msvc)
before('apply_obj_vars')(apply_obj_vars_msvc)
feature('cprogram','cshlib','cstaticlib')(apply_link_msvc)
before('apply_link')(apply_link_msvc)
feature('cc','cxx')(init_msvc)
after('init_cc','init_cxx')(init_msvc)
before('apply_type_vars','apply_core')(init_msvc)
conftest(no_autodetect)
conftest(autodetect)
conftest(find_msvc)
conftest(msvc_common_flags)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/boost.py 0000644 0001750 0001750 00000017001 11176703511 021527 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import os.path,glob,types,re,sys
import Configure,config_c,Options,Utils,Logs
from Logs import warn
from Configure import conf
boost_code='''
#include
#include
int main() { std::cout << BOOST_VERSION << std::endl; }
'''
boost_libpath=['/usr/lib','/usr/local/lib','/opt/local/lib','/sw/lib','/lib']
boost_cpppath=['/usr/include','/usr/local/include','/opt/local/include','/sw/include']
STATIC_NOSTATIC='nostatic'
STATIC_BOTH='both'
STATIC_ONLYSTATIC='onlystatic'
is_versiontag=re.compile('^\d+_\d+_?\d*$')
is_threadingtag=re.compile('^mt$')
is_abitag=re.compile('^[sgydpn]+$')
is_toolsettag=re.compile('^(acc|borland|como|cw|dmc|darwin|gcc|hp_cxx|intel|kylix|msvc|qcc|sun|vacpp)\d*$')
def set_options(opt):
opt.add_option('--boost-includes',type='string',default='',dest='boostincludes',help='path to the boost directory where the includes are e.g. /usr/local/include/boost-1_35')
opt.add_option('--boost-libs',type='string',default='',dest='boostlibs',help='path to the directory where the boost libs are e.g. /usr/local/lib')
def string_to_version(s):
version=s.split('.')
if len(version)<3:return 0
return int(version[0])*100000+int(version[1])*100+int(version[2])
def version_string(version):
major=version/100000
minor=version/100%1000
minor_minor=version%100
if minor_minor==0:
return"%d_%d"%(major,minor)
else:
return"%d_%d_%d"%(major,minor,minor_minor)
def libfiles(lib,pattern,lib_paths):
result=[]
for lib_path in lib_paths:
libname=pattern%('boost_'+lib+'*')
result+=glob.glob(lib_path+'/'+libname)
return result
def get_boost_version_number(self,dir):
try:
return self.run_c_code(compiler='cxx',code=boost_code,includes=dir,execute=1,env=self.env.copy(),type='cprogram',compile_mode='cxx',compile_filename='test.cpp')
except Configure.ConfigurationError,e:
return-1
def set_default(kw,var,val):
if not var in kw:
kw[var]=val
def tags_score(tags,kw):
score=0
needed_tags={'threading':kw['tag_threading'],'abi':kw['tag_abi'],'toolset':kw['tag_toolset'],'version':kw['tag_version']}
if kw['tag_toolset']is None:
v=kw['env']
toolset=v['CXX_NAME']
if v['CXX_VERSION']:
version_no=v['CXX_VERSION'].split('.')
toolset+=version_no[0]
if len(version_no)>1:
toolset+=version_no[1]
needed_tags['toolset']=toolset
found_tags={}
for tag in tags:
if is_versiontag.match(tag):found_tags['version']=tag
if is_threadingtag.match(tag):found_tags['threading']=tag
if is_abitag.match(tag):found_tags['abi']=tag
if is_toolsettag.match(tag):found_tags['toolset']=tag
for tagname in needed_tags.iterkeys():
if needed_tags[tagname]is not None and tagname in found_tags:
if re.compile(needed_tags[tagname]).match(found_tags[tagname]):
score+=kw['score_'+tagname][0]
else:
score+=kw['score_'+tagname][1]
return score
def validate_boost(self,kw):
ver=kw.get('version','')
for x in'min_version max_version version'.split():
set_default(kw,x,ver)
set_default(kw,'lib','')
kw['lib']=Utils.to_list(kw['lib'])
set_default(kw,'env',self.env)
set_default(kw,'libpath',boost_libpath)
set_default(kw,'cpppath',boost_cpppath)
for x in'tag_threading tag_version tag_toolset'.split():
set_default(kw,x,None)
set_default(kw,'tag_abi','^[^d]*$')
set_default(kw,'score_threading',(10,-10))
set_default(kw,'score_abi',(10,-10))
set_default(kw,'score_toolset',(1,-1))
set_default(kw,'score_version',(100,-100))
set_default(kw,'score_min',0)
set_default(kw,'static',STATIC_NOSTATIC)
set_default(kw,'found_includes',False)
set_default(kw,'min_score',0)
set_default(kw,'errmsg','not found')
set_default(kw,'okmsg','ok')
def find_boost_includes(self,kw):
boostPath=getattr(Options.options,'boostincludes','')
if boostPath:
boostPath=[os.path.normpath(os.path.expandvars(os.path.expanduser(boostPath)))]
else:
boostPath=Utils.to_list(kw['cpppath'])
min_version=string_to_version(kw.get('min_version',''))
max_version=string_to_version(kw.get('max_version',''))or(sys.maxint-1)
version=0
for include_path in boostPath:
boost_paths=glob.glob(os.path.join(include_path,'boost*'))
for path in boost_paths:
pathname=os.path.split(path)[-1]
ret=-1
if pathname=='boost':
path=include_path
ret=self.get_boost_version_number(path)
elif pathname.startswith('boost-'):
ret=self.get_boost_version_number(path)
ret=int(ret)
if ret!=-1 and ret>=min_version and ret<=max_version and ret>version:
boost_path=path
version=ret
if not version:
self.fatal('boost headers not found! (required version min: %s max: %s)'%(kw['min_version'],kw['max_version']))
return False
found_version=version_string(version)
versiontag='^'+found_version+'$'
if kw['tag_version']is None:
kw['tag_version']=versiontag
elif kw['tag_version']!=versiontag:
warn('boost header version %r and tag_version %r do not match!'%(versiontag,kw['tag_version']))
env=self.env
env['CPPPATH_BOOST']=boost_path
env['BOOST_VERSION']=found_version
self.found_includes=1
ret='Version %s (%s)'%(found_version,boost_path)
return ret
def find_boost_library(self,lib,kw):
def find_library_from_list(lib,files):
lib_pattern=re.compile('.*boost_(.*?)\..*')
result=(None,None)
resultscore=kw['min_score']-1
for file in files:
m=lib_pattern.search(file,1)
if m:
libname=m.group(1)
libtags=libname.split('-')[1:]
currentscore=tags_score(libtags,kw)
if currentscore>resultscore:
result=(libname,file)
resultscore=currentscore
return result
lib_paths=getattr(Options.options,'boostlibs','')
if lib_paths:
lib_paths=[os.path.normpath(os.path.expandvars(os.path.expanduser(lib_paths)))]
else:
lib_paths=Utils.to_list(kw['libpath'])
v=kw.get('env',self.env)
(libname,file)=(None,None)
if kw['static']in[STATIC_NOSTATIC,STATIC_BOTH]:
st_env_prefix='LIB'
files=libfiles(lib,v['shlib_PATTERN'],lib_paths)
(libname,file)=find_library_from_list(lib,files)
if libname is None and kw['static']in[STATIC_ONLYSTATIC,STATIC_BOTH]:
st_env_prefix='STATICLIB'
staticLibPattern=v['staticlib_PATTERN']
if self.env['CC_NAME']=='msvc':
staticLibPattern='lib'+staticLibPattern
files=libfiles(lib,staticLibPattern,lib_paths)
(libname,file)=find_library_from_list(lib,files)
if libname is not None:
v['LIBPATH_BOOST_'+lib.upper()]=os.path.split(file)[0]
if self.env['CC_NAME']=='msvc'and os.path.splitext(file)[1]=='.lib':
v[st_env_prefix+'_BOOST_'+lib.upper()]='libboost_'+libname
else:
v[st_env_prefix+'_BOOST_'+lib.upper()]='boost_'+libname
return
self.fatal('lib boost_'+lib+' not found!')
def check_boost(self,*k,**kw):
self.validate_boost(kw)
ret=None
try:
if not kw.get('found_includes',None):
self.check_message_1(kw.get('msg_includes','boost headers'))
ret=self.find_boost_includes(kw)
except Configure.ConfigurationError,e:
if'errmsg'in kw:
self.check_message_2(kw['errmsg'],'YELLOW')
if'mandatory'in kw:
if Logs.verbose>1:
raise
else:
self.fatal('the configuration failed (see %r)'%self.log.name)
else:
if'okmsg'in kw:
self.check_message_2(kw.get('okmsg_includes',ret))
for lib in kw['lib']:
self.check_message_1('library boost_'+lib)
try:
self.find_boost_library(lib,kw)
except Configure.ConfigurationError,e:
if'errmsg'in kw:
self.check_message_2(kw['errmsg'],'YELLOW')
if'mandatory'in kw:
if Logs.verbose>1:
raise
else:
self.fatal('the configuration failed (see %r)'%self.log.name)
else:
if'okmsg'in kw:
self.check_message_2(kw['okmsg'])
return ret
conf(get_boost_version_number)
conf(validate_boost)
conf(find_boost_includes)
conf(find_boost_library)
conf(check_boost)
showq-0.4.1+git20090622+dfsg0/wafadmin/Tools/gnu_dirs.py 0000644 0001750 0001750 00000005060 11176703511 022215 0 ustar alessio alessio #! /usr/bin/env python
# encoding: utf-8
import Utils,Options
_options=[x.split(', ')for x in'''
bindir, user executables, ${EXEC_PREFIX}/bin
sbindir, system admin executables, ${EXEC_PREFIX}/sbin
libexecdir, program executables, ${EXEC_PREFIX}/libexec
sysconfdir, read-only single-machine data, ${PREFIX}/etc
sharedstatedir, modifiable architecture-independent data, ${PREFIX}/com
localstatedir, modifiable single-machine data, ${PREFIX}/var
libdir, object code libraries, ${EXEC_PREFIX}/lib
includedir, C header files, ${PREFIX}/include
oldincludedir, C header files for non-gcc, /usr/include
datarootdir, read-only arch.-independent data root, ${PREFIX}/share
datadir, read-only architecture-independent data, ${DATAROOTDIR}
infodir, info documentation, ${DATAROOTDIR}/info
localedir, locale-dependent data, ${DATAROOTDIR}/locale
mandir, man documentation, ${DATAROOTDIR}/man
docdir, documentation root, ${DATAROOTDIR}/doc/${PACKAGE}
htmldir, html documentation, ${DOCDIR}
dvidir, dvi documentation, ${DOCDIR}
pdfdir, pdf documentation, ${DOCDIR}
psdir, ps documentation, ${DOCDIR}
'''.split('\n')if x]
def detect(conf):
def get_param(varname,default):
return getattr(Options.options,varname,'')or default
env=conf.env
env['EXEC_PREFIX']=get_param('EXEC_PREFIX',env['PREFIX'])
env['PACKAGE']=Utils.g_module.APPNAME or env['PACKAGE']
complete=False
iter=0
while not complete and iter