<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crmullins</id>
	<title>Slicer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crmullins"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/wiki/Special:Contributions/Crmullins"/>
	<updated>2026-05-04T12:59:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/ScriptRepository&amp;diff=41601</id>
		<title>Documentation/Nightly/ScriptRepository</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/ScriptRepository&amp;diff=41601"/>
		<updated>2015-05-26T01:16:54Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Center the 3D view on the scene&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Community-contributed modules=&lt;br /&gt;
&lt;br /&gt;
Usage: save the .py file to a directory, add the directory to the additional module paths in the Slicer application settings (choose in the menu: Edit / Application settings, click Modules, click &amp;gt;&amp;gt; next to Additional module paths, click Add, and choose the .py file's location).&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
* [https://raw.github.com/pieper/VolumeMasker/master/VolumeMasker.py VolumeMasker.py]: Update a target volume with the results of setting all input volume voxels to 0 except for those that correspond to a selected label value in an input label map (Used for example in the volume rendering in [https://www.youtube.com/watch?v=dfu2gugHLHs this video).&lt;br /&gt;
&lt;br /&gt;
==DICOM==&lt;br /&gt;
* [https://gist.github.com/pieper/6186477 dicom header browser] to easily scroll through dicom files using dcmdump.&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/src/BatchProcessing SlicerRT batch processing] to batch convert RT structure sets to labelmap NRRD files.&lt;br /&gt;
&lt;br /&gt;
==Informatics==&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/MarkupsInfoModule/MarkupsInfo.py MarkupsInfo.py]: Compute the total length between all the points of a markup list.&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/LineProfile/LineProfile.py LineProfile.py]: Compute intensity profile in a volume along a line.&lt;br /&gt;
&lt;br /&gt;
=Community-contributed examples=&lt;br /&gt;
&lt;br /&gt;
Usage: Copy-paste the shown code lines or linked .py file contents into Python console in Slicer.&lt;br /&gt;
&lt;br /&gt;
==Capture==&lt;br /&gt;
* Get a MRML node in the scene based on the node name and call methods of that object. For the MRHead sample data:&lt;br /&gt;
  vol=slicer.util.getNode('MR*')&lt;br /&gt;
  vol.GetImageData().GetDimensions()&lt;br /&gt;
* Capture the full Slicer screen and save it into a file&lt;br /&gt;
  img = qt.QPixmap.grabWidget(slicer.util.mainWindow()).toImage()&lt;br /&gt;
  img.save('c:/tmp/test.png')&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/CaptureRotationVideo/CaptureRotationVideo.py CaptureRotationVideo.py]: Capture a video of the scene rotating in the 3D view&lt;br /&gt;
&lt;br /&gt;
==Launching Slicer==&lt;br /&gt;
* How to open an .mrb file with Slicer at the command line?&lt;br /&gt;
  Slicer.exe --python-code &amp;quot;slicer.util.loadScene( 'f:/2013-08-23-Scene.mrb' )&amp;quot;&lt;br /&gt;
* How to run a script in the Slicer environment in batch mode (without showing any graphical user interface)?&lt;br /&gt;
  Slicer.exe --python-code &amp;quot;doSomething; doSomethingElse; etc.&amp;quot; --testing --no-splash --no-main-window&lt;br /&gt;
&lt;br /&gt;
==DICOM==&lt;br /&gt;
* How to access tags of DICOM images imported into Slicer? For example, to print the first patient's first study's first series' &amp;quot;0020,0032&amp;quot; field:&lt;br /&gt;
  db=slicer.dicomDatabase&lt;br /&gt;
  patientList=db.patients()&lt;br /&gt;
  studyList=db.studiesForPatient(patientList[0])&lt;br /&gt;
  seriesList=db.seriesForStudy(studyList[0])&lt;br /&gt;
  fileList=db.filesForSeries(seriesList[0])&lt;br /&gt;
  print db.fileValue(fileList[0],'0020,0032')&lt;br /&gt;
&lt;br /&gt;
* How to access tag of a volume loaded from DICOM? For example, get the patient position stored in a volume:&lt;br /&gt;
  volumeName='2: ENT IMRT'&lt;br /&gt;
  n=slicer.util.getNode(volumeName)&lt;br /&gt;
  instUids=n.GetAttribute('DICOM.instanceUIDs').split()&lt;br /&gt;
  filename=slicer.dicomDatabase.fileForInstance(instUids[0])&lt;br /&gt;
  print slicer.dicomDatabase.fileValue(filename,'0018,5100')&lt;br /&gt;
&lt;br /&gt;
==Toolbar functions==&lt;br /&gt;
* How to turn on slice intersections in the crosshair menu on the toolbar:&lt;br /&gt;
  viewNodes = slicer.mrmlScene.GetNodesByClass('vtkMRMLSliceCompositeNode')&lt;br /&gt;
  viewNodes.UnRegister(slicer.mrmlScene)&lt;br /&gt;
  viewNodes.InitTraversal()&lt;br /&gt;
  viewNode = viewNodes.GetNextItemAsObject()&lt;br /&gt;
  while viewNode:&lt;br /&gt;
    viewNode.SetSliceIntersectionVisibility(1)&lt;br /&gt;
    viewNode = viewNodes.GetNextItemAsObject()&lt;br /&gt;
&lt;br /&gt;
How to find similar functions? For this one I searched for &amp;quot;slice intersections&amp;quot; text in the whole slicer source code, found that the function is implemented in Base\QTGUI\qSlicerViewersToolBar.cxx, then translated the qSlicerViewersToolBarPrivate::setSliceIntersectionVisible(bool visible) method to Python.&lt;br /&gt;
&lt;br /&gt;
==Manipulating objects in the slice viewer==&lt;br /&gt;
* How to define/edit a circular region of interest in a slice viewer?&lt;br /&gt;
&lt;br /&gt;
Drop two markup points on a slice view and copy-paste the code below into the Python console. After this, as you move the markups you’ll see a circle following the markups.&lt;br /&gt;
&lt;br /&gt;
  # Update the sphere from the fiducial points&lt;br /&gt;
  def UpdateSphere(param1, param2):  &lt;br /&gt;
    centerPointCoord = [0.0, 0.0, 0.0]&lt;br /&gt;
    markups.GetNthFiducialPosition(0,centerPointCoord)&lt;br /&gt;
    circumferencePointCoord = [0.0, 0.0, 0.0]&lt;br /&gt;
    markups.GetNthFiducialPosition(1,circumferencePointCoord)&lt;br /&gt;
    sphere.SetCenter(centerPointCoord)&lt;br /&gt;
    radius=math.sqrt((centerPointCoord[0]-circumferencePointCoord[0])**2+(centerPointCoord[1]-circumferencePointCoord[1])**2+(centerPointCoord[2]-circumferencePointCoord[2])**2)&lt;br /&gt;
    sphere.SetRadius(radius)&lt;br /&gt;
    sphere.SetPhiResolution(30)&lt;br /&gt;
    sphere.SetThetaResolution(30)&lt;br /&gt;
    sphere.Update()&lt;br /&gt;
  &lt;br /&gt;
  # Get a reference to the markup&lt;br /&gt;
  markups=slicer.util.getNode('F')&lt;br /&gt;
  # Create the sphere that will intersect the slice viewer&lt;br /&gt;
  sphere = vtk.vtkSphereSource()&lt;br /&gt;
  # Initial positioning of the sphere&lt;br /&gt;
  UpdateSphere(0,0)&lt;br /&gt;
  # Create model node and add to scene&lt;br /&gt;
  model = slicer.vtkMRMLModelNode()&lt;br /&gt;
  model.SetAndObservePolyData(sphere.GetOutput())&lt;br /&gt;
  modelDisplay = slicer.vtkMRMLModelDisplayNode()&lt;br /&gt;
  modelDisplay.SetSliceIntersectionVisibility(True) # Show in slice view&lt;br /&gt;
  modelDisplay.SetVisibility(False) # Hide in 3D view&lt;br /&gt;
  slicer.mrmlScene.AddNode(modelDisplay)&lt;br /&gt;
  model.SetAndObserveDisplayNodeID(modelDisplay.GetID())&lt;br /&gt;
  modelDisplay.SetInputPolyData(model.GetPolyData())&lt;br /&gt;
  slicer.mrmlScene.AddNode(model) &lt;br /&gt;
  # Call UpdateSphere whenever the fiducials are changed&lt;br /&gt;
  markups.AddObserver(&amp;quot;ModifiedEvent&amp;quot;, UpdateSphere, 2)&lt;br /&gt;
&lt;br /&gt;
== Add a texture mapped plane to the scene as a model ==&lt;br /&gt;
Note that model textures are not exposed in the GUI and are not saved in the scene&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# use dummy image data here&lt;br /&gt;
e = vtk.vtkImageEllipsoidSource()&lt;br /&gt;
&lt;br /&gt;
scene = slicer.mrmlScene&lt;br /&gt;
&lt;br /&gt;
# Create model node&lt;br /&gt;
model = slicer.vtkMRMLModelNode()&lt;br /&gt;
model.SetScene(scene)&lt;br /&gt;
model.SetName(scene.GenerateUniqueName(&amp;quot;2DImageModel&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
planeSource = vtk.vtkPlaneSource()&lt;br /&gt;
model.SetAndObservePolyData(planeSource.GetOutput())&lt;br /&gt;
&lt;br /&gt;
# Create display node&lt;br /&gt;
modelDisplay = slicer.vtkMRMLModelDisplayNode()&lt;br /&gt;
modelDisplay.SetColor(1,1,0) # yellow&lt;br /&gt;
modelDisplay.SetBackfaceCulling(0)&lt;br /&gt;
modelDisplay.SetScene(scene)&lt;br /&gt;
scene.AddNode(modelDisplay)&lt;br /&gt;
model.SetAndObserveDisplayNodeID(modelDisplay.GetID())&lt;br /&gt;
&lt;br /&gt;
# Add to scene&lt;br /&gt;
modelDisplay.SetAndObserveTextureImageData(e.GetOutput())&lt;br /&gt;
scene.AddNode(model) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
transform = slicer.vtkMRMLLinearTransformNode()&lt;br /&gt;
scene.AddNode(transform) &lt;br /&gt;
model.SetAndObserveTransformNodeID(transform.GetID())&lt;br /&gt;
&lt;br /&gt;
vTransform = vtk.vtkTransform()&lt;br /&gt;
vTransform.Scale(50,50,50)&lt;br /&gt;
vTransform.RotateX(30)&lt;br /&gt;
transform.SetAndObserveMatrixTransformToParent(vTransform.GetMatrix())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export a model to Blender, including color ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plyFilePath = &amp;quot;/tmp/fibers.ply&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lineDisplayNode = getNode(&amp;quot;*LineDisplay*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
tuber = vtk.vtkTubeFilter()&lt;br /&gt;
tuber.SetInput(lineDisplayNode.GetOutputPolyData())&lt;br /&gt;
&lt;br /&gt;
tubes = tuber.GetOutput()&lt;br /&gt;
tubes.Update()&lt;br /&gt;
scalars = tubes.GetPointData().GetArray(0)&lt;br /&gt;
scalars.SetName(&amp;quot;scalars&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
triangles = vtk.vtkTriangleFilter()&lt;br /&gt;
triangles.SetInput(tubes)&lt;br /&gt;
&lt;br /&gt;
colorNode = lineDisplayNode.GetColorNode()&lt;br /&gt;
lookupTable = vtk.vtkLookupTable()&lt;br /&gt;
lookupTable.DeepCopy(colorNode.GetLookupTable())&lt;br /&gt;
lookupTable.SetTableRange(0,1)&lt;br /&gt;
&lt;br /&gt;
plyWriter = vtk.vtkPLYWriter()&lt;br /&gt;
plyWriter.SetInput(triangles.GetOutput())&lt;br /&gt;
plyWriter.SetLookupTable(lookupTable)&lt;br /&gt;
plyWriter.SetArrayName(&amp;quot;scalars&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plyWriter.SetFileName(plyFilePath)&lt;br /&gt;
plyWriter.Write()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clone a volume ==&lt;br /&gt;
This example shows how to clone the MRHead sample volume, including its pixel data and display settings.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sourceVolumeNode = slicer.util.getNode('MRHead')&lt;br /&gt;
volumesLogic = slicer.modules.volumes.logic()&lt;br /&gt;
clonedVolumeNode = volumesLogic.CloneVolume(slicer.mrmlScene, sourceVolumeNode, 'Cloned volume')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create a new volume ==&lt;br /&gt;
This example shows how to create a new empty volume.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imageSize=[512, 512, 512]&lt;br /&gt;
imageSpacing=[1.0, 1.0, 1.0]&lt;br /&gt;
voxelType=vtk.VTK_UNSIGNED_CHAR&lt;br /&gt;
# Create an empty image volume&lt;br /&gt;
imageData=vtk.vtkImageData()&lt;br /&gt;
imageData.SetDimensions(imageSize)&lt;br /&gt;
imageData.AllocateScalars(voxelType, 1)&lt;br /&gt;
thresholder=vtk.vtkImageThreshold()&lt;br /&gt;
thresholder.SetInputData(imageData)&lt;br /&gt;
thresholder.SetInValue(0)&lt;br /&gt;
thresholder.SetOutValue(0)&lt;br /&gt;
# Create volume node&lt;br /&gt;
volumeNode=slicer.vtkMRMLScalarVolumeNode()&lt;br /&gt;
volumeNode.SetSpacing(imageSpacing)&lt;br /&gt;
volumeNode.SetImageDataConnection(thresholder.GetOutputPort())&lt;br /&gt;
# Add volume to scene&lt;br /&gt;
slicer.mrmlScene.AddNode(volumeNode)&lt;br /&gt;
displayNode=slicer.vtkMRMLScalarVolumeDisplayNode()&lt;br /&gt;
slicer.mrmlScene.AddNode(displayNode)&lt;br /&gt;
colorNode = slicer.util.getNode('Grey')&lt;br /&gt;
displayNode.SetAndObserveColorNodeID(colorNode.GetID())&lt;br /&gt;
volumeNode.SetAndObserveDisplayNodeID(displayNode.GetID())&lt;br /&gt;
volumeNode.CreateDefaultStorageNode()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modify voxels in a volume ==&lt;br /&gt;
This example shows how to change voxels values of the MRHead sample volume.&lt;br /&gt;
The values will be computed by function f(r,a,s,) = (r-10)*(r-10)+(a+15)*(a+15)+s*s.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volumeNode=slicer.util.getNode('MRHead')&lt;br /&gt;
ijkToRas = vtk.vtkMatrix4x4()&lt;br /&gt;
volumeNode.GetIJKToRASMatrix(ijkToRas)&lt;br /&gt;
imageData=volumeNode.GetImageData()&lt;br /&gt;
extent = imageData.GetExtent()&lt;br /&gt;
for k in xrange(extent[4], extent[5]+1):&lt;br /&gt;
  for j in xrange(extent[2], extent[3]+1):&lt;br /&gt;
    for i in xrange(extent[0], extent[1]+1):&lt;br /&gt;
      position_Ijk=[i, j, k, 1]&lt;br /&gt;
      position_Ras=ijkToRas.MultiplyPoint(position_Ijk)&lt;br /&gt;
      r=position_Ras[0]&lt;br /&gt;
      a=position_Ras[1]&lt;br /&gt;
      s=position_Ras[2]      &lt;br /&gt;
      functionValue=(r-10)*(r-10)+(a+15)*(a+15)+s*s&lt;br /&gt;
      imageData.SetScalarComponentFromDouble(i,j,k,0,functionValue)&lt;br /&gt;
imageData.SetScalarComponentFromFloat(distortionVectorPosition_Ijk[0], distortionVectorPosition_Ijk[1], distortionVectorPosition_Ijk[2], 0, fillValue)&lt;br /&gt;
imageData.Modified()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manipulate a Slice View ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lm = slicer.app.layoutManager()&lt;br /&gt;
red = lm.sliceWidget('Red')&lt;br /&gt;
redLogic = red.sliceLogic()&lt;br /&gt;
# Print current slice offset position&lt;br /&gt;
print redLogic.GetSliceOffset()&lt;br /&gt;
# Change slice position&lt;br /&gt;
redLogic.SetSliceOffset(20)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Show a volume in the Slice Views ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volumeNode = slicer.util.getNode('YourVolumeNode')&lt;br /&gt;
applicationLogic = slicer.app.applicationLogic()&lt;br /&gt;
selectionNode = applicationLogic.GetSelectionNode()&lt;br /&gt;
selectionNode.SetSecondaryVolumeID(volumeNode.GetID())&lt;br /&gt;
applicationLogic.PropagateForegroundVolumeSelection(0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
n =  slicer.util.getNode('YourVolumeNode')&lt;br /&gt;
for color in ['Red', 'Yellow', 'Green']:&lt;br /&gt;
    slicer.app.layoutManager().sliceWidget(color).sliceLogic().GetSliceCompositeNode().SetForegroundVolumeID(n.GetID())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Center the 3D View on the Scene ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
layoutManager = slicer.app.layoutManager()&lt;br /&gt;
threeDWidget = layoutManager.threeDWidget(0)&lt;br /&gt;
threeDView = threeDWidget.threeDView()&lt;br /&gt;
threeDView.resetFocalPoint()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Display text in a 3D view or slice view ==&lt;br /&gt;
&lt;br /&gt;
The easiest way to show information overlaid on a viewer is to use corner annotations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
view=slicer.app.layoutManager().threeDWidget(0).threeDView()&lt;br /&gt;
# Set text to &amp;quot;Something&amp;quot;&lt;br /&gt;
view.cornerAnnotation().SetText(vtk.vtkCornerAnnotation.UpperRight,&amp;quot;Something&amp;quot;)&lt;br /&gt;
# Set color to red&lt;br /&gt;
view.cornerAnnotation().GetTextProperty().SetColor(1,0,0)&lt;br /&gt;
# Update the view&lt;br /&gt;
view.forceRender()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customize viewer layout ==&lt;br /&gt;
&lt;br /&gt;
Show a custom layout of a 3D view on top of the red slice view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
customLayout = (&amp;quot;&amp;lt;layout type=\&amp;quot;vertical\&amp;quot; split=\&amp;quot;true\&amp;quot; &amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;view class=\&amp;quot;vtkMRMLViewNode\&amp;quot; singletontag=\&amp;quot;1\&amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;    &amp;lt;property name=\&amp;quot;viewlabel\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;1&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;/view&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;/item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;view class=\&amp;quot;vtkMRMLSliceNode\&amp;quot; singletontag=\&amp;quot;Red\&amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;   &amp;lt;property name=\&amp;quot;orientation\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;Axial&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;   &amp;lt;property name=\&amp;quot;viewlabel\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;R&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;   &amp;lt;property name=\&amp;quot;viewcolor\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;#F34A33&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;/view&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;/item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;&amp;lt;/layout&amp;gt;&amp;quot;)&lt;br /&gt;
  &lt;br /&gt;
customLayoutId=501&lt;br /&gt;
&lt;br /&gt;
layoutManager = slicer.app.layoutManager()&lt;br /&gt;
layoutManager.layoutLogic().GetLayoutNode().AddLayoutDescription(customLayoutId, customLayout)                                         &lt;br /&gt;
layoutManager.setLayout(customLayoutId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See description of standard layouts (that can be used as examples) here:&lt;br /&gt;
https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Logic/vtkMRMLLayoutLogic.cxx&lt;br /&gt;
&lt;br /&gt;
== Running an ITK filter in Python using SimpleITK ==&lt;br /&gt;
Open the &amp;quot;Sample Data&amp;quot; module and download &amp;quot;MR Head&amp;quot;, then paste the following snippet in Python interactor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inputImage = sitkUtils.PullFromSlicer('MRHead')&lt;br /&gt;
filter = sitk.SignedMaurerDistanceMapImageFilter()&lt;br /&gt;
outputImage = filter.Execute(inputImage)&lt;br /&gt;
sitkUtils.PushToSlicer(outputImage,'outputImage')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* See the SimpleITK documentation for SimpleITK examples: http://www.itk.org/SimpleITKDoxygen/html/examples.html&lt;br /&gt;
* sitkUtils in Slicer is used for pushing and pulling images from Slicer to SimpleITK: https://github.com/Slicer/Slicer/blob/master/Base/Python/sitkUtils.py&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/FAQ/Python_Scripting&amp;diff=41600</id>
		<title>Documentation/Nightly/Developers/FAQ/Python Scripting</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/FAQ/Python_Scripting&amp;diff=41600"/>
		<updated>2015-05-26T01:13:26Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: How to center the 3D view on the scene?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;__TOC__&lt;br /&gt;
={{#titleparts: {{PAGENAME}} | | -1 }}=&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
='''Developer FAQ: {{{1}}}'''=&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to systematically execute custom python code at startup ? ==&lt;br /&gt;
&lt;br /&gt;
Each time Slicer starts, it will look up for a file named &amp;lt;code&amp;gt;.slicerrc.py&amp;lt;/code&amp;gt; into your HOME folder.&lt;br /&gt;
&lt;br /&gt;
See [[Documentation/{{documentation/version}}/FAQ/General#What_is_my_HOME_folder_.3F|What is my HOME folder ?]]&lt;br /&gt;
&lt;br /&gt;
== How to save an image/volume using python ? ==&lt;br /&gt;
&lt;br /&gt;
The module &amp;lt;code&amp;gt;slicer.util&amp;lt;/code&amp;gt; provides methods allowing to save either a node or an entire scene:&lt;br /&gt;
* saveNode&lt;br /&gt;
* saveScene&lt;br /&gt;
&lt;br /&gt;
For more details see:&lt;br /&gt;
* https://github.com/Slicer/Slicer/blob/master/Base/Python/slicer/util.py#L229-267&lt;br /&gt;
* https://github.com/Slicer/Slicer/blob/master/Base/Python/slicer/tests/test_slicer_util_save.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to assign a volume to a Slice view ? ==&lt;br /&gt;
&lt;br /&gt;
Assuming the &amp;lt;code&amp;gt;MRHead&amp;lt;/code&amp;gt; sample data has been loaded, you could do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
red_logic = slicer.app.layoutManager().sliceWidget(&amp;quot;Red&amp;quot;).sliceLogic()&lt;br /&gt;
red_cn = red_logic.GetSliceCompositeNode()&lt;br /&gt;
red_logic.GetSliceCompositeNode().SetBackgroundVolumeID(slicer.util.getNode('MRHead').GetID())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discussion: http://slicer-devel.65872.n3.nabble.com/Assign-volumes-to-views-tt4028694.html&lt;br /&gt;
&lt;br /&gt;
== How to access vtkRenderer in Slicer 3D view ? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
renderer = slicer.app.layoutManager().threeDWidget(0).threeDView().renderWindow().GetRenderers().GetFirstRenderer()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to center the 3D view on the scene ? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
layoutManager = slicer.app.layoutManager()&lt;br /&gt;
threeDWidget = layoutManager.threeDWidget(0)&lt;br /&gt;
threeDView = threeDWidget.threeDView()&lt;br /&gt;
threeDView.resetFocalPoint()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Should I use 'old style' or 'new style' python classes in my scripted module ? ==&lt;br /&gt;
&lt;br /&gt;
When python classes have no superclass specified they are 'old style' as described here [http://docs.python.org/2/reference/datamodel.html#new-style-and-classic-classes].&lt;br /&gt;
&lt;br /&gt;
In general it doesn't matter for the classes in a scripted module, since they won't be subclassed either old or new style should be the same.&lt;br /&gt;
&lt;br /&gt;
For other python code in slicer where you might be subclassing, it's better to use new style classes.  See the class hierarchies in the [https://github.com/Slicer/Slicer/tree/master/Modules/Scripted/EditorLib EditorLib] and the [https://github.com/Slicer/Slicer/tree/master/Modules/Scripted/DICOM/DICOMLib DICOMLib] for examples.&lt;br /&gt;
&lt;br /&gt;
== How to harden a transform ? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; n = getNode('Bone')&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; logic = slicer.vtkSlicerTransformLogic()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; logic.hardenTransform(n)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Discussion: http://slicer-devel.65872.n3.nabble.com/Scripting-hardened-transforms-tt4029456.html&lt;br /&gt;
&lt;br /&gt;
== Where can I find example scripts? ==&lt;br /&gt;
&lt;br /&gt;
Have a look at [[Documentation/{{documentation/version}}/ScriptRepository]].&lt;br /&gt;
&lt;br /&gt;
== How can I use a visual debugger for step-by-step debugging ==&lt;br /&gt;
Visual debugging (setting breakpoints, execute code step-by-step, view variables, stack, etc.) of Python scripted module is possible by using [http://pydev.org/ PyDev] by using the [[Documentation/{{documentation/version}}/Extensions/PyDevRemoteDebug|Python debugger]] extension.&lt;br /&gt;
&lt;br /&gt;
'''See detailed instructions at the [[Documentation/{{documentation/version}}/Extensions/PyDevRemoteDebug|Python debugger's extension page]].'''&lt;br /&gt;
[[File:PyDevRemoteDebugSlicer.png|800px|thumb|center|Visual debugging of Python modules in Slicer]]&lt;br /&gt;
&lt;br /&gt;
== Why can't I access my C++ Qt class from python ==&lt;br /&gt;
* Python wrapping of a Qt class requires a Qt style constructor with QObject as argument (it can be defaulted to null though), which is public. If one of these are missing, python wrapping will fail for that class&lt;br /&gt;
* [Other reasons go here]&lt;br /&gt;
&lt;br /&gt;
== How can I access callData argument in a VTK object observer callback function ==&lt;br /&gt;
&lt;br /&gt;
To get notification about an event emitted by a VTK object you can simply use the AddObserver method, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def sceneModifiedCallback(caller, eventId):&lt;br /&gt;
  print &amp;quot;Scene modified&amp;quot;&lt;br /&gt;
  print &amp;quot;There are {0} nodes in the scene&amp;quot;. format(slicer.mrmlScene.GetNumberOfNodes())&lt;br /&gt;
&lt;br /&gt;
sceneModifiedObserverTag = slicer.mrmlScene.AddObserver(vtk.vtkCommand.ModifiedEvent, sceneModifiedCallback)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If an event also contains additional information as CallData then the type of this argument has to be specified as well, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@vtk.calldata_type(vtk.VTK_OBJECT)&lt;br /&gt;
def nodeAddedCallback(caller, eventId, callData):&lt;br /&gt;
  print &amp;quot;Node added&amp;quot;&lt;br /&gt;
  print &amp;quot;New node: {0}&amp;quot;.format(callData.GetName())&lt;br /&gt;
&lt;br /&gt;
nodeAddedModifiedObserverTag = slicer.mrmlScene.AddObserver(slicer.vtkMRMLScene.NodeAddedEvent, nodeAddedCallback)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: @vtk.calldata_type is a Python decorator, which modifies properties of a function that is declared right after the decorator. The decorator is defined in VTK (in Wrapping\Python\vtk\util\misc.py).&lt;br /&gt;
&lt;br /&gt;
Usage from a class requires an extra step of creating the callback in the class __init__ function, as Python2 by default does some extra wrapping (http://stackoverflow.com/questions/9523370/adding-attributes-to-instance-methods-in-python):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class MyClass:&lt;br /&gt;
  def __init__(self):&lt;br /&gt;
    from functools import partial&lt;br /&gt;
    def nodeAddedCallback(self, caller, eventId, callData):&lt;br /&gt;
      print &amp;quot;Node added&amp;quot;&lt;br /&gt;
      print &amp;quot;New node: {0}&amp;quot;.format(callData.GetName())&lt;br /&gt;
    self.nodeAddedCallback = partial(nodeAddedCallback, self)&lt;br /&gt;
    self.nodeAddedCallback.CallDataType = vtk.VTK_OBJECT&lt;br /&gt;
  def registerCallbacks(self):&lt;br /&gt;
    self.nodeAddedModifiedObserverTag = slicer.mrmlScene.AddObserver(slicer.vtkMRMLScene.NodeAddedEvent, self.nodeAddedCallback)&lt;br /&gt;
  def unregisterCallbacks(self):&lt;br /&gt;
    slicer.mrmlScene.RemoveObserver(self.nodeAddedModifiedObserverTag)&lt;br /&gt;
        &lt;br /&gt;
myObject = MyClass()&lt;br /&gt;
myObject.registerCallbacks()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allowed CallDataType values:  VTK_STRING, VTK_OBJECT, VTK_INT, VTK_LONG, VTK_DOUBLE, VTK_FLOAT, &amp;quot;string0&amp;quot;. See more information here:&lt;br /&gt;
https://github.com/Kitware/VTK/blob/master/Wrapping/PythonCore/vtkPythonCommand.cxx&lt;br /&gt;
&lt;br /&gt;
A simplified syntax is available by using a mix-in (but currently this is not usable for scripted loadable module classes, only for simple helper classes, see [[Documentation/Labs/PythonObserverCallbacks]] page for details):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from slicer.util import VTKObservationMixin&lt;br /&gt;
&lt;br /&gt;
class MyClass(VTKObservationMixin):&lt;br /&gt;
  def __init__(self):&lt;br /&gt;
    VTKObservationMixin.__init__(self)&lt;br /&gt;
    self.addObserver(slicer.mrmlScene, slicer.vtkMRMLScene.NodeAddedEvent, self.nodeAddedCallback)&lt;br /&gt;
  &lt;br /&gt;
  @vtk.calldata_type(vtk.VTK_OBJECT)&lt;br /&gt;
  def nodeAddedCallback(self, caller, eventId, callData):&lt;br /&gt;
    print &amp;quot;Node added&amp;quot;&lt;br /&gt;
    print &amp;quot;New node: {0}&amp;quot;.format(callData.GetName())&lt;br /&gt;
&lt;br /&gt;
myObject = MyClass()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: VTKObservationMixin is a Python mix-in that allows adding a set of methods to a class by inheritance. VTKObservationMixin includes addObserver, hasObserver, observer, removeObserver, removeObservers methods, defined in Slicer (in Base\Python\slicer\util.py).&lt;br /&gt;
&lt;br /&gt;
== How to run CLI module from Python? ==&lt;br /&gt;
&lt;br /&gt;
See [[Documentation/{{documentation/version}}/Developers/Python_scripting#Running_a_CLI_from_Python|here]].&lt;br /&gt;
&lt;br /&gt;
== How can I run slicer operations from a batch script? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Slicer --no-main-window --python-script /tmp/test.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contents of /tmp/test.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# use a slicer scripted module logic&lt;br /&gt;
from SampleData import SampleDataLogic&lt;br /&gt;
SampleDataLogic().downloadMRHead()&lt;br /&gt;
head = slicer.util.getNode('MRHead')&lt;br /&gt;
&lt;br /&gt;
# use a vtk class&lt;br /&gt;
threshold = vtk.vtkImageThreshold()&lt;br /&gt;
threshold.SetInputData(head.GetImageData())&lt;br /&gt;
threshold.ThresholdBetween(100, 200)&lt;br /&gt;
threshold.SetInValue(255)&lt;br /&gt;
threshold.SetOutValue(0)&lt;br /&gt;
&lt;br /&gt;
#  use a slicer-specific C++ class&lt;br /&gt;
erode = slicer.vtkImageErode()&lt;br /&gt;
erode.SetInputConnection(threshold.GetOutputPort())&lt;br /&gt;
erode.SetNeighborTo4()  &lt;br /&gt;
erode.Update()          &lt;br /&gt;
&lt;br /&gt;
head.SetAndObserveImageData(erode.GetOutputDataObject(0))&lt;br /&gt;
&lt;br /&gt;
slicer.util.saveNode(head, &amp;quot;/tmp/eroded.nrrd&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
exit()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I run Slicer on a headless compute node? ==&lt;br /&gt;
&lt;br /&gt;
Many cluster nodes are installed with minimal linux systems that don't include X servers.  X servers, particularly those with hardware acceleration traditionally needed to be installed with root privileges, making it impossible to run applications that rendered using X or OpenGL.&lt;br /&gt;
&lt;br /&gt;
But there is a workaround which allows everything in slicer to work normally so you could even do headless rendering.&lt;br /&gt;
&lt;br /&gt;
You can use a modern version of X that supports running a dummy framebuffer.  This can be installed in user mode so you don't even need to have root on the system.&lt;br /&gt;
&lt;br /&gt;
See [https://www.xpra.org/trac/wiki/Xdummy] for details.&lt;br /&gt;
&lt;br /&gt;
There's a thread here with more discussion: [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2015/017317.html]&lt;br /&gt;
&lt;br /&gt;
Here is a working example of the approach running on a headless compute node running CTK tests (which also use Qt and VTK)&lt;br /&gt;
&lt;br /&gt;
[https://github.com/pieper/CTK/blob/master/.travis.yml]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/ScriptRepository&amp;diff=41512</id>
		<title>Documentation/Nightly/ScriptRepository</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/ScriptRepository&amp;diff=41512"/>
		<updated>2015-05-06T19:07:54Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Add methods to show a volume in the slice viewer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Community-contributed modules=&lt;br /&gt;
&lt;br /&gt;
Usage: save the .py file to a directory, add the directory to the additional module paths in the Slicer application settings (choose in the menu: Edit / Application settings, click Modules, click &amp;gt;&amp;gt; next to Additional module paths, click Add, and choose the .py file's location).&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
* [https://raw.github.com/pieper/VolumeMasker/master/VolumeMasker.py VolumeMasker.py]: Update a target volume with the results of setting all input volume voxels to 0 except for those that correspond to a selected label value in an input label map (Used for example in the volume rendering in [https://www.youtube.com/watch?v=dfu2gugHLHs this video).&lt;br /&gt;
&lt;br /&gt;
==DICOM==&lt;br /&gt;
* [https://gist.github.com/pieper/6186477 dicom header browser] to easily scroll through dicom files using dcmdump.&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/src/BatchProcessing SlicerRT batch processing] to batch convert RT structure sets to labelmap NRRD files.&lt;br /&gt;
&lt;br /&gt;
==Informatics==&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/MarkupsInfoModule/MarkupsInfo.py MarkupsInfo.py]: Compute the total length between all the points of a markup list.&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/LineProfile/LineProfile.py LineProfile.py]: Compute intensity profile in a volume along a line.&lt;br /&gt;
&lt;br /&gt;
=Community-contributed examples=&lt;br /&gt;
&lt;br /&gt;
Usage: Copy-paste the shown code lines or linked .py file contents into Python console in Slicer.&lt;br /&gt;
&lt;br /&gt;
==Capture==&lt;br /&gt;
* Get a MRML node in the scene based on the node name and call methods of that object. For the MRHead sample data:&lt;br /&gt;
  vol=slicer.util.getNode('MR*')&lt;br /&gt;
  vol.GetImageData().GetDimensions()&lt;br /&gt;
* Capture the full Slicer screen and save it into a file&lt;br /&gt;
  img = qt.QPixmap.grabWidget(slicer.util.mainWindow()).toImage()&lt;br /&gt;
  img.save('c:/tmp/test.png')&lt;br /&gt;
* [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/CaptureRotationVideo/CaptureRotationVideo.py CaptureRotationVideo.py]: Capture a video of the scene rotating in the 3D view&lt;br /&gt;
&lt;br /&gt;
==Launching Slicer==&lt;br /&gt;
* How to open an .mrb file with Slicer at the command line?&lt;br /&gt;
  Slicer.exe --python-code &amp;quot;slicer.util.loadScene( 'f:/2013-08-23-Scene.mrb' )&amp;quot;&lt;br /&gt;
* How to run a script in the Slicer environment in batch mode (without showing any graphical user interface)?&lt;br /&gt;
  Slicer.exe --python-code &amp;quot;doSomething; doSomethingElse; etc.&amp;quot; --testing --no-splash --no-main-window&lt;br /&gt;
&lt;br /&gt;
==DICOM==&lt;br /&gt;
* How to access tags of DICOM images imported into Slicer? For example, to print the first patient's first study's first series' &amp;quot;0020,0032&amp;quot; field:&lt;br /&gt;
  db=slicer.dicomDatabase&lt;br /&gt;
  patientList=db.patients()&lt;br /&gt;
  studyList=db.studiesForPatient(patientList[0])&lt;br /&gt;
  seriesList=db.seriesForStudy(studyList[0])&lt;br /&gt;
  fileList=db.filesForSeries(seriesList[0])&lt;br /&gt;
  print db.fileValue(fileList[0],'0020,0032')&lt;br /&gt;
&lt;br /&gt;
* How to access tag of a volume loaded from DICOM? For example, get the patient position stored in a volume:&lt;br /&gt;
  volumeName='2: ENT IMRT'&lt;br /&gt;
  n=slicer.util.getNode(volumeName)&lt;br /&gt;
  instUids=n.GetAttribute('DICOM.instanceUIDs').split()&lt;br /&gt;
  filename=slicer.dicomDatabase.fileForInstance(instUids[0])&lt;br /&gt;
  print slicer.dicomDatabase.fileValue(filename,'0018,5100')&lt;br /&gt;
&lt;br /&gt;
==Toolbar functions==&lt;br /&gt;
* How to turn on slice intersections in the crosshair menu on the toolbar:&lt;br /&gt;
  viewNodes = slicer.mrmlScene.GetNodesByClass('vtkMRMLSliceCompositeNode')&lt;br /&gt;
  viewNodes.UnRegister(slicer.mrmlScene)&lt;br /&gt;
  viewNodes.InitTraversal()&lt;br /&gt;
  viewNode = viewNodes.GetNextItemAsObject()&lt;br /&gt;
  while viewNode:&lt;br /&gt;
    viewNode.SetSliceIntersectionVisibility(1)&lt;br /&gt;
    viewNode = viewNodes.GetNextItemAsObject()&lt;br /&gt;
&lt;br /&gt;
How to find similar functions? For this one I searched for &amp;quot;slice intersections&amp;quot; text in the whole slicer source code, found that the function is implemented in Base\QTGUI\qSlicerViewersToolBar.cxx, then translated the qSlicerViewersToolBarPrivate::setSliceIntersectionVisible(bool visible) method to Python.&lt;br /&gt;
&lt;br /&gt;
==Manipulating objects in the slice viewer==&lt;br /&gt;
* How to define/edit a circular region of interest in a slice viewer?&lt;br /&gt;
&lt;br /&gt;
Drop two markup points on a slice view and copy-paste the code below into the Python console. After this, as you move the markups you’ll see a circle following the markups.&lt;br /&gt;
&lt;br /&gt;
  # Update the sphere from the fiducial points&lt;br /&gt;
  def UpdateSphere(param1, param2):  &lt;br /&gt;
    centerPointCoord = [0.0, 0.0, 0.0]&lt;br /&gt;
    markups.GetNthFiducialPosition(0,centerPointCoord)&lt;br /&gt;
    circumferencePointCoord = [0.0, 0.0, 0.0]&lt;br /&gt;
    markups.GetNthFiducialPosition(1,circumferencePointCoord)&lt;br /&gt;
    sphere.SetCenter(centerPointCoord)&lt;br /&gt;
    radius=math.sqrt((centerPointCoord[0]-circumferencePointCoord[0])**2+(centerPointCoord[1]-circumferencePointCoord[1])**2+(centerPointCoord[2]-circumferencePointCoord[2])**2)&lt;br /&gt;
    sphere.SetRadius(radius)&lt;br /&gt;
    sphere.SetPhiResolution(30)&lt;br /&gt;
    sphere.SetThetaResolution(30)&lt;br /&gt;
    sphere.Update()&lt;br /&gt;
  &lt;br /&gt;
  # Get a reference to the markup&lt;br /&gt;
  markups=slicer.util.getNode('F')&lt;br /&gt;
  # Create the sphere that will intersect the slice viewer&lt;br /&gt;
  sphere = vtk.vtkSphereSource()&lt;br /&gt;
  # Initial positioning of the sphere&lt;br /&gt;
  UpdateSphere(0,0)&lt;br /&gt;
  # Create model node and add to scene&lt;br /&gt;
  model = slicer.vtkMRMLModelNode()&lt;br /&gt;
  model.SetAndObservePolyData(sphere.GetOutput())&lt;br /&gt;
  modelDisplay = slicer.vtkMRMLModelDisplayNode()&lt;br /&gt;
  modelDisplay.SetSliceIntersectionVisibility(True) # Show in slice view&lt;br /&gt;
  modelDisplay.SetVisibility(False) # Hide in 3D view&lt;br /&gt;
  slicer.mrmlScene.AddNode(modelDisplay)&lt;br /&gt;
  model.SetAndObserveDisplayNodeID(modelDisplay.GetID())&lt;br /&gt;
  modelDisplay.SetInputPolyData(model.GetPolyData())&lt;br /&gt;
  slicer.mrmlScene.AddNode(model) &lt;br /&gt;
  # Call UpdateSphere whenever the fiducials are changed&lt;br /&gt;
  markups.AddObserver(&amp;quot;ModifiedEvent&amp;quot;, UpdateSphere, 2)&lt;br /&gt;
&lt;br /&gt;
== Add a texture mapped plane to the scene as a model ==&lt;br /&gt;
Note that model textures are not exposed in the GUI and are not saved in the scene&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# use dummy image data here&lt;br /&gt;
e = vtk.vtkImageEllipsoidSource()&lt;br /&gt;
&lt;br /&gt;
scene = slicer.mrmlScene&lt;br /&gt;
&lt;br /&gt;
# Create model node&lt;br /&gt;
model = slicer.vtkMRMLModelNode()&lt;br /&gt;
model.SetScene(scene)&lt;br /&gt;
model.SetName(scene.GenerateUniqueName(&amp;quot;2DImageModel&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
planeSource = vtk.vtkPlaneSource()&lt;br /&gt;
model.SetAndObservePolyData(planeSource.GetOutput())&lt;br /&gt;
&lt;br /&gt;
# Create display node&lt;br /&gt;
modelDisplay = slicer.vtkMRMLModelDisplayNode()&lt;br /&gt;
modelDisplay.SetColor(1,1,0) # yellow&lt;br /&gt;
modelDisplay.SetBackfaceCulling(0)&lt;br /&gt;
modelDisplay.SetScene(scene)&lt;br /&gt;
scene.AddNode(modelDisplay)&lt;br /&gt;
model.SetAndObserveDisplayNodeID(modelDisplay.GetID())&lt;br /&gt;
&lt;br /&gt;
# Add to scene&lt;br /&gt;
modelDisplay.SetAndObserveTextureImageData(e.GetOutput())&lt;br /&gt;
scene.AddNode(model) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
transform = slicer.vtkMRMLLinearTransformNode()&lt;br /&gt;
scene.AddNode(transform) &lt;br /&gt;
model.SetAndObserveTransformNodeID(transform.GetID())&lt;br /&gt;
&lt;br /&gt;
vTransform = vtk.vtkTransform()&lt;br /&gt;
vTransform.Scale(50,50,50)&lt;br /&gt;
vTransform.RotateX(30)&lt;br /&gt;
transform.SetAndObserveMatrixTransformToParent(vTransform.GetMatrix())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Export a model to Blender, including color ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plyFilePath = &amp;quot;/tmp/fibers.ply&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lineDisplayNode = getNode(&amp;quot;*LineDisplay*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
tuber = vtk.vtkTubeFilter()&lt;br /&gt;
tuber.SetInput(lineDisplayNode.GetOutputPolyData())&lt;br /&gt;
&lt;br /&gt;
tubes = tuber.GetOutput()&lt;br /&gt;
tubes.Update()&lt;br /&gt;
scalars = tubes.GetPointData().GetArray(0)&lt;br /&gt;
scalars.SetName(&amp;quot;scalars&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
triangles = vtk.vtkTriangleFilter()&lt;br /&gt;
triangles.SetInput(tubes)&lt;br /&gt;
&lt;br /&gt;
colorNode = lineDisplayNode.GetColorNode()&lt;br /&gt;
lookupTable = vtk.vtkLookupTable()&lt;br /&gt;
lookupTable.DeepCopy(colorNode.GetLookupTable())&lt;br /&gt;
lookupTable.SetTableRange(0,1)&lt;br /&gt;
&lt;br /&gt;
plyWriter = vtk.vtkPLYWriter()&lt;br /&gt;
plyWriter.SetInput(triangles.GetOutput())&lt;br /&gt;
plyWriter.SetLookupTable(lookupTable)&lt;br /&gt;
plyWriter.SetArrayName(&amp;quot;scalars&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plyWriter.SetFileName(plyFilePath)&lt;br /&gt;
plyWriter.Write()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clone a volume ==&lt;br /&gt;
This example shows how to clone the MRHead sample volume, including its pixel data and display settings.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sourceVolumeNode = slicer.util.getNode('MRHead')&lt;br /&gt;
volumesLogic = slicer.modules.volumes.logic()&lt;br /&gt;
clonedVolumeNode = volumesLogic.CloneVolume(slicer.mrmlScene, sourceVolumeNode, 'Cloned volume')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create a new volume ==&lt;br /&gt;
This example shows how to create a new empty volume.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
imageSize=[512, 512, 512]&lt;br /&gt;
imageSpacing=[1.0, 1.0, 1.0]&lt;br /&gt;
voxelType=vtk.VTK_UNSIGNED_CHAR&lt;br /&gt;
# Create an empty image volume&lt;br /&gt;
imageData=vtk.vtkImageData()&lt;br /&gt;
imageData.SetDimensions(imageSize)&lt;br /&gt;
imageData.AllocateScalars(voxelType, 1)&lt;br /&gt;
thresholder=vtk.vtkImageThreshold()&lt;br /&gt;
thresholder.SetInputData(imageData)&lt;br /&gt;
thresholder.SetInValue(0)&lt;br /&gt;
thresholder.SetOutValue(0)&lt;br /&gt;
# Create volume node&lt;br /&gt;
volumeNode=slicer.vtkMRMLScalarVolumeNode()&lt;br /&gt;
volumeNode.SetSpacing(imageSpacing)&lt;br /&gt;
volumeNode.SetImageDataConnection(thresholder.GetOutputPort())&lt;br /&gt;
# Add volume to scene&lt;br /&gt;
slicer.mrmlScene.AddNode(volumeNode)&lt;br /&gt;
displayNode=slicer.vtkMRMLScalarVolumeDisplayNode()&lt;br /&gt;
slicer.mrmlScene.AddNode(displayNode)&lt;br /&gt;
colorNode = slicer.util.getNode('Grey')&lt;br /&gt;
displayNode.SetAndObserveColorNodeID(colorNode.GetID())&lt;br /&gt;
volumeNode.SetAndObserveDisplayNodeID(displayNode.GetID())&lt;br /&gt;
volumeNode.CreateDefaultStorageNode()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modify voxels in a volume ==&lt;br /&gt;
This example shows how to change voxels values of the MRHead sample volume.&lt;br /&gt;
The values will be computed by function f(r,a,s,) = (r-10)*(r-10)+(a+15)*(a+15)+s*s.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volumeNode=slicer.util.getNode('MRHead')&lt;br /&gt;
ijkToRas = vtk.vtkMatrix4x4()&lt;br /&gt;
volumeNode.GetIJKToRASMatrix(ijkToRas)&lt;br /&gt;
imageData=volumeNode.GetImageData()&lt;br /&gt;
extent = imageData.GetExtent()&lt;br /&gt;
for k in xrange(extent[4], extent[5]+1):&lt;br /&gt;
  for j in xrange(extent[2], extent[3]+1):&lt;br /&gt;
    for i in xrange(extent[0], extent[1]+1):&lt;br /&gt;
      position_Ijk=[i, j, k, 1]&lt;br /&gt;
      position_Ras=ijkToRas.MultiplyPoint(position_Ijk)&lt;br /&gt;
      r=position_Ras[0]&lt;br /&gt;
      a=position_Ras[1]&lt;br /&gt;
      s=position_Ras[2]      &lt;br /&gt;
      functionValue=(r-10)*(r-10)+(a+15)*(a+15)+s*s&lt;br /&gt;
      imageData.SetScalarComponentFromDouble(i,j,k,0,functionValue)&lt;br /&gt;
imageData.SetScalarComponentFromFloat(distortionVectorPosition_Ijk[0], distortionVectorPosition_Ijk[1], distortionVectorPosition_Ijk[2], 0, fillValue)&lt;br /&gt;
imageData.Modified()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manipulate a Slice View ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lm = slicer.app.layoutManager()&lt;br /&gt;
red = lm.sliceWidget('Red')&lt;br /&gt;
redLogic = red.sliceLogic()&lt;br /&gt;
# Print current slice offset position&lt;br /&gt;
print redLogic.GetSliceOffset()&lt;br /&gt;
# Change slice position&lt;br /&gt;
redLogic.SetSliceOffset(20)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Show a volume in the Slice Views ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volumeNode = slicer.util.getNode('YourVolumeNode')&lt;br /&gt;
applicationLogic = slicer.app.applicationLogic()&lt;br /&gt;
selectionNode = applicationLogic.GetSelectionNode()&lt;br /&gt;
selectionNode.SetSecondaryVolumeID(volumeNode.GetID())&lt;br /&gt;
applicationLogic.PropagateForegroundVolumeSelection(0) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
n =  slicer.util.getNode('YourVolumeNode')&lt;br /&gt;
for color in ['Red', 'Yellow', 'Green']:&lt;br /&gt;
    slicer.app.layoutManager().sliceWidget(color).sliceLogic().GetSliceCompositeNode().SetForegroundVolumeID(n.GetID())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Display text in a 3D view or slice view ==&lt;br /&gt;
&lt;br /&gt;
The easiest way to show information overlaid on a viewer is to use corner annotations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
view=slicer.app.layoutManager().threeDWidget(0).threeDView()&lt;br /&gt;
# Set text to &amp;quot;Something&amp;quot;&lt;br /&gt;
view.cornerAnnotation().SetText(vtk.vtkCornerAnnotation.UpperRight,&amp;quot;Something&amp;quot;)&lt;br /&gt;
# Set color to red&lt;br /&gt;
view.cornerAnnotation().GetTextProperty().SetColor(1,0,0)&lt;br /&gt;
# Update the view&lt;br /&gt;
view.forceRender()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customize viewer layout ==&lt;br /&gt;
&lt;br /&gt;
Show a custom layout of a 3D view on top of the red slice view:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
customLayout = (&amp;quot;&amp;lt;layout type=\&amp;quot;vertical\&amp;quot; split=\&amp;quot;true\&amp;quot; &amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;view class=\&amp;quot;vtkMRMLViewNode\&amp;quot; singletontag=\&amp;quot;1\&amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;    &amp;lt;property name=\&amp;quot;viewlabel\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;1&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;/view&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;/item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;view class=\&amp;quot;vtkMRMLSliceNode\&amp;quot; singletontag=\&amp;quot;Red\&amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;   &amp;lt;property name=\&amp;quot;orientation\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;Axial&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;   &amp;lt;property name=\&amp;quot;viewlabel\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;R&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;   &amp;lt;property name=\&amp;quot;viewcolor\&amp;quot; action=\&amp;quot;default\&amp;quot;&amp;gt;#F34A33&amp;lt;/property&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;  &amp;lt;/view&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot; &amp;lt;/item&amp;gt;&amp;quot;&lt;br /&gt;
  &amp;quot;&amp;lt;/layout&amp;gt;&amp;quot;)&lt;br /&gt;
  &lt;br /&gt;
customLayoutId=501&lt;br /&gt;
&lt;br /&gt;
layoutManager = slicer.app.layoutManager()&lt;br /&gt;
layoutManager.layoutLogic().GetLayoutNode().AddLayoutDescription(customLayoutId, customLayout)                                         &lt;br /&gt;
layoutManager.setLayout(customLayoutId)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See description of standard layouts (that can be used as examples) here:&lt;br /&gt;
https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Logic/vtkMRMLLayoutLogic.cxx&lt;br /&gt;
&lt;br /&gt;
== Running an ITK filter in Python using SimpleITK ==&lt;br /&gt;
Open the &amp;quot;Sample Data&amp;quot; module and download &amp;quot;MR Head&amp;quot;, then paste the following snippet in Python interactor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inputImage = sitkUtils.PullFromSlicer('MRHead')&lt;br /&gt;
filter = sitk.SignedMaurerDistanceMapImageFilter()&lt;br /&gt;
outputImage = filter.Execute(inputImage)&lt;br /&gt;
sitkUtils.PushToSlicer(outputImage,'outputImage')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* See the SimpleITK documentation for SimpleITK examples: http://www.itk.org/SimpleITKDoxygen/html/examples.html&lt;br /&gt;
* sitkUtils in Slicer is used for pushing and pulling images from Slicer to SimpleITK: https://github.com/Slicer/Slicer/blob/master/Base/Python/sitkUtils.py&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Developers/Build_Instructions/Prerequisites/Qt&amp;diff=29748</id>
		<title>Documentation/4.2/Developers/Build Instructions/Prerequisites/Qt</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Developers/Build_Instructions/Prerequisites/Qt&amp;diff=29748"/>
		<updated>2013-01-13T23:25:40Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Binary vs build-from-source ? =&lt;br /&gt;
&lt;br /&gt;
If you build Slicer on ...&lt;br /&gt;
&lt;br /&gt;
== Linux  ==&lt;br /&gt;
&lt;br /&gt;
* Using [[#Download_links|binary]] works great for both '''Debug''' and '''Release''' build of Slicer. See [[#Download_links]] and [[#Installation_instruction]]&lt;br /&gt;
&lt;br /&gt;
== Mac  ==&lt;br /&gt;
&lt;br /&gt;
* Using [[#Download_links|binary]] works great for both '''Debug''' and '''Release''' build of Slicer. See [[#Download_links]] and [[#Installation_instruction]]&lt;br /&gt;
&lt;br /&gt;
* To use QtCreator and the Slicer designer plugins, a possible option is to build QtCreator against the installed Qt libraries. See [http://slicer-devel.65872.n3.nabble.com/Using-Qt-Creator-with-Slicer4-On-Mac-OS-X-Multiple-Qt-libs-loaded-tp4026660p4026690.html discussion on the mailing list].&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
&lt;br /&gt;
=== Debug (32 and 64-bit) or Release (64-bit) ===&lt;br /&gt;
&lt;br /&gt;
* You have to build Qt from source. See [[#Download_links]] and [[#Windows_4|Build instructions]]&lt;br /&gt;
&lt;br /&gt;
{{note}} Using the Qt Designer on Windows requires that the Slicer plugins are [http://doc.trolltech.com/4.6/deployment-plugins.html#debugging-plugins|compiled in the same mode as Qt]. If Qt was compiled in Release mode (default), Slicer would have to be compiled in Release mode as well. However if Qt is compiled in Debug mode only, Slicer has to be compiled in Debug too. When Qt is in &amp;quot;Release and Debug&amp;quot; mode only the Release version of Designer.exe is generated, Slicer would have to be compiled in Release. So for developers, the &amp;lt;b&amp;gt;Debug mode is recommended&amp;lt;/b&amp;gt;, this is why we detail the compilation of Qt below.&lt;br /&gt;
&lt;br /&gt;
=== Release (32-bit) ===&lt;br /&gt;
&lt;br /&gt;
* Using [[#Download_links|binary]] works great for 32-bit Release build of Slicer. See [[#Download_links]] and [[#Installation_instruction]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Download Qt: Source and Binaries =&lt;br /&gt;
&lt;br /&gt;
== Download links ==&lt;br /&gt;
&lt;br /&gt;
The following table list the link allowing to download either the '''recommended''' source code or binary of Qt.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: 20px;&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#FFFFCC&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot;|Linux&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Mac&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;|Windows&lt;br /&gt;
|- bgcolor=&amp;quot;#FFFFCC&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|&amp;lt;del&amp;gt;Tiger&amp;lt;/del&amp;gt;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|Leopard, SnowLeopard&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|VS2008&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|VS2010&lt;br /&gt;
|- bgcolor=&amp;quot;#FFFFCC&amp;quot;&lt;br /&gt;
!|32bits&lt;br /&gt;
!|64bits&lt;br /&gt;
!|&amp;lt;del&amp;gt;32bits&amp;lt;/del&amp;gt;&lt;br /&gt;
!|64bits&lt;br /&gt;
!|32bits&lt;br /&gt;
!|64bits&lt;br /&gt;
!|32bits&lt;br /&gt;
!|64bits&lt;br /&gt;
|-&lt;br /&gt;
! bgcolor=&amp;quot;#FFFFCC&amp;quot; | [http://get.qt.nokia.com/qt/source/ Qt source link]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot;| [ftp://ftp.qt-project.org/qt/source/qt-everywhere-opensource-src-4.7.4.tar.gz 4.7.4] &lt;br /&gt;
|style=&amp;quot;background-color:#C0C0C0;&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| &amp;lt;del&amp;gt;[ftp://ftp.qt-project.org/qt/source/qt-everywhere-opensource-src-4.7.4.tar.gz 4.7.4]&amp;lt;/del&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| [ftp://ftp.qt-project.org/qt/source/qt-everywhere-opensource-src-4.7.4.tar.gz 4.7.4]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot;| [ftp://ftp.qt-project.org/qt/source/qt-everywhere-opensource-src-4.7.4.zip 4.7.4]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot;| [ftp://ftp.qt-project.org/qt/source/qt-everywhere-opensource-src-4.7.4.zip 4.7.4]&lt;br /&gt;
|-&lt;br /&gt;
! bgcolor=&amp;quot;#FFFFCC&amp;quot; | [http://get.qt.nokia.com/qt/source/  Qt binary link]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| [http://sw.nokia.com/id/8ea74da4-fec1-4277-8b26-c58cc82e204b/Qt_SDK_Lin32_offline SDK-1.2]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| [http://sw.nokia.com/id/14b2039c-0e1f-4774-a4f2-9aa60b6d5313/Qt_SDK_Lin64_offline SDK-1.2]&lt;br /&gt;
|style=&amp;quot;background-color:#C0C0C0;&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| &amp;lt;del&amp;gt;[http://get.qt.nokia.com/qt/source/qt-mac-carbon-opensource-4.7.0.dmg carbon_4.7.0]&amp;lt;/del&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| [ftp://ftp.qt-project.org/qt/source/qt-mac-opensource-4.7.4.dmg 4.7.4] &amp;lt;br&amp;gt; [ftp://ftp.qt-project.org/qt/source/qt-mac-opensource-4.7.4-debug-libs.dmg 4.7.4 (optional: debug libs)] &lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| [ftp://ftp.qt-project.org/qt/source/qt-win-opensource-4.7.4-vs2008.exe 4.7.4]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| (src build only)&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| [ftp://ftp.qt-project.org/qt/source/qt-win-opensource-4.7.4-vs2008.exe 4.7.4]&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;1&amp;quot;| (src build only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note:  You must first [https://sso.developer.nokia.com log in to your Nokia Developer account].  Otherwise these links may appear to be broken.&lt;br /&gt;
== Installation instruction ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
See [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt/Instal_QtSDK1.2_Offline_Linux_64|Qt installation guide (4.7.4, Linux, 64-bit, Offline)]]&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Qt version specific issues ==&lt;br /&gt;
&lt;br /&gt;
=== All ===&lt;br /&gt;
&lt;br /&gt;
* '''Qt 4.6.x''' on windows (and possibly in linux/mac): No image base64 support in QLabel/QTooltips (work around exists though)&lt;br /&gt;
* '''Qt 4.8''' does not work with PythonQt in slicer4 - suggested version is 4.7.4&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
* NA&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
* '''Qt 4.6''': hard to compile - TBD: Be more specific&lt;br /&gt;
* '''Qt 4.7''': click outside of popup (http://na-mic.org/Mantis/view.php?id=1241) - Is it fixed in Qt 4.8 ?&lt;br /&gt;
* '''Qt 4.7.3''': http://na-mic.org/Mantis/view.php?id=1388 - Fixed in Qt 4.7.4&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
* NA&lt;br /&gt;
&lt;br /&gt;
== How to change the minimum required version ? ==&lt;br /&gt;
&lt;br /&gt;
* It's indeed possible to use a different version, just be aware that moving forward in time, things may not work as expected. Even worse Slicer may simply fail to compile.&lt;br /&gt;
&lt;br /&gt;
* By configuring Slicer using &amp;lt;code&amp;gt;-DSlicer_REQUIRED_QT_VERSION:STRING=4.7.0&amp;lt;/code&amp;gt;, you will be able to change the minimum required version.&lt;br /&gt;
&lt;br /&gt;
* See [https://github.com/Slicer/Slicer/commit/898bb14e 898bb14e], [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;amp;revision=19698 r19698], [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008130.html Mailing list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Build instructions =&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{mbox&lt;br /&gt;
| text = Please, make sure that your IDE/compiler is '''properly installed''' and that all associated '''ServicePack''' are also installed. See [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites|Prerequisites]].&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
TODO: Add a section specific to debian based platform.&lt;br /&gt;
*Downloading the binaries of Qt works fine with Linux, you do not have to compile Qt manually. &lt;br /&gt;
** Note: You need to install the libQtWebkit-devel package too.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Consider installing the following optional packages (&amp;lt;code&amp;gt;libxt-dev libxrender-dev libxrandr-dev libxinerama-dev libxcursor-dev libfontconfig-dev libglib2.0-dev&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir qt-everywhere-opensource-build-4.7.4&lt;br /&gt;
tar xvfz qt-everywhere-opensource-src-4.7.4.tar.gz&lt;br /&gt;
cd qt-everywhere-opensource-src-4.7.4&lt;br /&gt;
./configure -prefix ../qt-everywhere-opensource-build-4.7.4 -debug-and-release -opensource -confirm-license -no-qt3support -webkit -nomake examples -nomake demos&lt;br /&gt;
make -j8&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Note: On a 64 bit system, you may have to add &amp;lt;code&amp;gt;-arch x86_64&amp;lt;/code&amp;gt; to the Qt configure command line (?) --&amp;gt;&lt;br /&gt;
Note: Adapt &amp;lt;code&amp;gt;-j8&amp;lt;/code&amp;gt; with the number of core on your machine, a dual core should probably not do more than &amp;lt;code&amp;gt;-j3&amp;lt;/code&amp;gt;, an 8 core machine can resonably go as much as &amp;lt;code&amp;gt;-j12&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Mac  ==&lt;br /&gt;
&lt;br /&gt;
Similar to Linux configuration. Note that &amp;lt;code&amp;gt;-arch x86_64&amp;lt;/code&amp;gt; has been added.&lt;br /&gt;
&lt;br /&gt;
For earlier versions of Xcode and Mac OS X&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir qt-everywhere-opensource-build-4.7.4&lt;br /&gt;
tar xvfz qt-everywhere-opensource-src-4.7.4.tar.gz&lt;br /&gt;
cd qt-everywhere-opensource-src-4.7.4&lt;br /&gt;
./configure -prefix ../qt-everywhere-opensource-build-4.7.4 -debug-and-release -opensource -confirm-license -no-qt3support -webkit -arch x86_64 -nomake examples -nomake demos -sdk /Developer/SDKs/MacOSX10.5.sdk/&lt;br /&gt;
make -j8&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the latest Xcode versions (4.3) and Lion (10.7) the Developer directories have moved.  The command is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure -prefix ../qt-everywhere-opensource-build-4.7.4 -debug-and-release -opensource -confirm-license -no-qt3support -arch x86_64 -nomake examples -nomake demos -webkit -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Consider reading: http://doc.qt.nokia.com/4.7/developing-on-mac.html)&lt;br /&gt;
&lt;br /&gt;
* Note:&lt;br /&gt;
** If building against SDK 10.6 or 10.7, you will probably get link errors similar to what's described in [https://trac.macports.org/ticket/30346] and [http://qt-project.org/forums/viewthread/15933]. The solution is probably to disable the &amp;lt;code&amp;gt;corewlan&amp;lt;/code&amp;gt; module but didn't figure out to do that properly.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
# Use a windows extracter to unzip the [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Download_links|Qt archive]], don't use cygwin unzip it.&lt;br /&gt;
# launch the msvc2008 command prompt (MSVC08-&amp;gt;Tools-&amp;gt;Visual Studio 2008 CommandPrompt) (or: launch cmd.exe and run &amp;lt;code&amp;gt;vcvars32.bat&amp;lt;/code&amp;gt;) Note: Start x64 prompt from Start menu (don't start from inside visual studio or it will be an x86 32 bit shell).  Menu item is &amp;quot;Visual Studio 2008 x64 Win64 Command Prompt&amp;quot;&lt;br /&gt;
# build with &amp;lt;code&amp;gt;configure.exe -platform win32-msvc2008 -opensource -confirm-license -debug -webkit -nomake examples -nomake demos&amp;lt;/code&amp;gt; &lt;br /&gt;
#* When asked, choose open source license type (o), then accept the license (y)&lt;br /&gt;
#* Note: the option &amp;lt;code&amp;gt;-prefix&amp;lt;/code&amp;gt; doesn't work on Windows.&lt;br /&gt;
#* Note: According to [http://qt-project.org/doc/qt-4.7/supported-platforms.html] Qt does not support msvc2008 on windows xp.  However, running &amp;lt;code&amp;gt;configure.exe&amp;lt;/code&amp;gt; with no &amp;lt;code&amp;gt;-platform&amp;lt;/code&amp;gt; argument seems to work. If you run configure with the &amp;lt;code&amp;gt;-platform&amp;lt;/code&amp;gt; argument first by mistake, and if &amp;lt;code&amp;gt;configure -clean&amp;lt;/code&amp;gt; doesn't work, then you may need to start from a fresh extraction from the .zip archive before running &amp;lt;code&amp;gt;configure.exe&amp;lt;/code&amp;gt; again with no &amp;lt;code&amp;gt;-platform&amp;lt;/code&amp;gt;, unless you can run &amp;lt;code&amp;gt;nmake&amp;lt;/code&amp;gt; with the config clean target.&lt;br /&gt;
#* Note: for Microsoft Visual Studio 2010 users, Qt 4.6.3 is hard to configure with MSVC2010, use Qt 4.7.x instead. Build with &amp;lt;code&amp;gt;set QMAKESPEC=win32-msvc2010&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;configure -platform win32-msvc2010  -debug&amp;lt;/code&amp;gt;&lt;br /&gt;
# run &amp;lt;code&amp;gt;nmake&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Note: building with webkit support requires that &amp;lt;i&amp;gt;src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared/mocinclude.tmp&amp;lt;/i&amp;gt; be removed. else you will get linker errors like &amp;lt;code&amp;gt;QNetworkReplyHandler.obj : error LNK2001: unresolved external symbol &amp;quot;public: virtual struct QMetaObject const * __thiscall WebCore::FormDataIODevice::metaObject(void)const (?metaObject@FormDataIODevice@WebCore@@UBEPBUQMetaObject@@XZ)&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Note: If you encounter the following error &amp;lt;code&amp;gt;api\qscriptextensionplugin.h(43): Error: Undefined interface,&amp;lt;/code&amp;gt;, delete the files &amp;lt;i&amp;gt;\src\script\tmp\moc\debug_shared\mocinclude.tmp&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;\src\script\tmp\moc\release_shared\mocinclude.tmp&amp;lt;/i&amp;gt; and restart nmake. For more info, please see [http://bugreports.qt.nokia.com/browse/QTBUG-6470 QTBug 6470]].&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Python_scripting&amp;diff=29747</id>
		<title>Documentation/4.1/Developers/Python scripting</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Python_scripting&amp;diff=29747"/>
		<updated>2013-01-11T21:21:29Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Background =&lt;br /&gt;
&lt;br /&gt;
This is an evolution of the [[Slicer3:Python|python implementation in slicer3]].  Slicer's APIs are now natively wrapped in python.  &lt;br /&gt;
&lt;br /&gt;
Topics like plotting are still experimental in slicer4.&lt;br /&gt;
&lt;br /&gt;
See [http://www.na-mic.org/Wiki/index.php/AHM2012-Slicer-Python this 2012 presentation on the state of python in slicer4].&lt;br /&gt;
&lt;br /&gt;
'''See [[4.0/Training#Slicer4_Programming_Tutorial|the python slicer4 tutorial for more examples]].'''&lt;br /&gt;
&lt;br /&gt;
= Usage options =&lt;br /&gt;
&lt;br /&gt;
==Python Interactor==&lt;br /&gt;
&lt;br /&gt;
Use the Window-&amp;gt;Python Interactor (Control-P on window/linux, Command-P on mac) to bring up the Qt-based console with access to the vtk, Qt, and Slicer wrapped APIs.&lt;br /&gt;
&lt;br /&gt;
Most python code can be installed and run from this window, but because it exists in the event driven Qt GUI environment, some operations like, like parallel processing or headless operation, are not easily supported.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
Start slicer4 and bring up python console.  Load a volume like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; slicer.util.loadVolume(slicer.app.slicerHome + &amp;quot;/share/MRML/Testing/TestData/fixed.nrrd&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get the volume node for that volume:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; n = getNode('fixed')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use Tab to see lists of methods for a class instance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Running a CLI from Python ====&lt;br /&gt;
&lt;br /&gt;
Here's an example to create a model from a volume using the [[Documentation/4.0/Modules/GrayscaleModelMaker|Grayscale Model Maker]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def grayModel(volumeNode):&lt;br /&gt;
  parameters = {}&lt;br /&gt;
  parameters[&amp;quot;InputVolume&amp;quot;] = volumeNode.GetID()&lt;br /&gt;
  outModel = slicer.vtkMRMLModelNode()&lt;br /&gt;
  slicer.mrmlScene.AddNode( outModel )&lt;br /&gt;
  parameters[&amp;quot;OutputGeometry&amp;quot;] = outModel.GetID()&lt;br /&gt;
  grayMaker = slicer.modules.grayscalemodelmaker&lt;br /&gt;
  return (slicer.cli.run(grayMaker, None, parameters))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To try this, download the MRHead dataset from the [[Documentation/4.0/Modules/SampleData|Sample Data]] and paste the code into the python console and then run this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
v = getNode('MRHead')&lt;br /&gt;
cliNode = grayModel(v)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the CLI module runs in a background thread, so the call to grayModel will return right away.  But the slicer.cli.run call returns a cliNode (an instance of [http://slicer.org/doc/html/classvtkMRMLCommandLineModuleNode.html vtkMRMLCommandLineModuleNode]) which can be used to monitor the progress of the module.&lt;br /&gt;
&lt;br /&gt;
In order to view the names of the parameters required by a CLI module, consider this example on the Grayscale Model Maker:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; gm = slicer.modules.grayscalemodelmaker&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; gmlogic = gm.cliModuleLogic()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; node = gmLogic.CreateNode()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print node.GetParameterName(0,0)&lt;br /&gt;
 InputVolume&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print node.GetParameterName(0,1)&lt;br /&gt;
 OutputGeometry&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example we create a simple callback that will be called whenever the cliNode is modified.  The status will tell you if the nodes is Pending, Running, or Completed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def printStatus(caller, event):&lt;br /&gt;
  print(&amp;quot;Got a %s from a %s&amp;quot; % (event, caller.GetClassName()))&lt;br /&gt;
  if caller.IsA('vtkMRMLCommandLineModuleNode'):&lt;br /&gt;
    print(&amp;quot;Status is %s&amp;quot; % caller.GetStatusString())&lt;br /&gt;
&lt;br /&gt;
cliNode.AddObserver('ModifiedEvent', printStatus)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Accessing slice vtkRenderWindows from slice views ====&lt;br /&gt;
&lt;br /&gt;
The example below shows how to get the rendered slice window.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lm = slicer.app.layoutManager()&lt;br /&gt;
redWidget = lm.sliceWidget('Red')&lt;br /&gt;
redView = redWidget.sliceView()&lt;br /&gt;
wti = vtk.vtkWindowToImageFilter()&lt;br /&gt;
wti.SetInput(redView.renderWindow())&lt;br /&gt;
wti.Update()&lt;br /&gt;
v = vtk.vtkImageViewer()&lt;br /&gt;
v.SetColorWindow(255)&lt;br /&gt;
v.SetColorLevel(128)&lt;br /&gt;
v.SetInputConnection(wti.GetOutputPort())&lt;br /&gt;
v.Render()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''TODO: some more samples of the Qt console''&lt;br /&gt;
&lt;br /&gt;
== In iPython ==&lt;br /&gt;
&lt;br /&gt;
''Important: The example below was developed for an early beta version of slicer4 and is not supported in Slicer 4.0 or 4.1''&lt;br /&gt;
&lt;br /&gt;
See [http://slicer-devel.65872.n3.nabble.com/import-slicer-problem-in-using-python-in-the-shell-launched-using-quot-slicer-xterm-amp-quot-td3968880.html this thread for information on adapting this approach to Slicer 4.1].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://ipython.scipy.org iPython] is a powerful shell and can also be used to access the vtk and slicer APIs (but not Qt at the moment).&lt;br /&gt;
&lt;br /&gt;
As of Slicer4 beta in February 2011, it is possible to use these steps for installation.  This has only been tested on a ubuntu linux system so far.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you have a Slicer4-superbuild directory created according to the [[Slicer4:Build_Instructions|Slicer4 Build Instructions]].&lt;br /&gt;
&lt;br /&gt;
See the [http://matplotlib.sourceforge.net|matplotlib] website for more example plot types.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
* Get readline - it will make iPython more useful.&lt;br /&gt;
&lt;br /&gt;
 # do this before building slicer4 - or do &amp;quot;cd Slicer4-superbuild/; rm -rf python* ; make&amp;quot;&lt;br /&gt;
 sudo apt-get install libreadline6-dev&lt;br /&gt;
&lt;br /&gt;
cd to your Slicer4-superbuild directory for the rest of these steps&lt;br /&gt;
&lt;br /&gt;
* Install the vtk package in the python tree&lt;br /&gt;
 # TODO: this should be done in superbuild script&lt;br /&gt;
 (cd ./VTK-build/Wrapping/Python;  ../../../Slicer-build/Slicer4 --launch ../../../python-build/bin/python setup.py install)&lt;br /&gt;
&lt;br /&gt;
* Install ipython:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/ipython/ipython.git&lt;br /&gt;
 (cd ./ipython; git checkout 0.10.2)&lt;br /&gt;
 (cd ./ipython;  ../Slicer-build/Slicer4 --launch ../python-build/bin/python setup.py install)&lt;br /&gt;
&lt;br /&gt;
* Install matplotlib (remove the source after installing so python import will not get confused by it.)&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/pieper/matplotlib.git&lt;br /&gt;
 (cd ./matplotlib;  ../Slicer-build/Slicer4 --launch ../python-build/bin/python setup.py install)&lt;br /&gt;
 rm -rf matplotlib&lt;br /&gt;
&lt;br /&gt;
=== Now try it! ===&lt;br /&gt;
[[image:Slicer4-matplotlib-2011-02-26.png|thumb|300px|right|python plotting from ipython using slicer libraries]]&lt;br /&gt;
&lt;br /&gt;
Launch an xterm with all the paths set correctly to find the slicer python packages&lt;br /&gt;
&lt;br /&gt;
 ./Slicer-build/Slicer4 --launch xterm &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Now, ''inside the xterm'' launch ipython&lt;br /&gt;
&lt;br /&gt;
 ./python-build/bin/ipython&lt;br /&gt;
&lt;br /&gt;
Inside ipython you can past the following script that does:&lt;br /&gt;
* create a mrml scene and add a volume&lt;br /&gt;
* make a numpy aray from the image data&lt;br /&gt;
* do calculations in numpy and vtk for comparision&lt;br /&gt;
* make a histogram plot of the data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import vtk&lt;br /&gt;
import slicer&lt;br /&gt;
mrml = slicer.vtkMRMLScene()&lt;br /&gt;
vl = slicer.vtkSlicerVolumesLogic()&lt;br /&gt;
vl.SetAndObserveMRMLScene(mrml)&lt;br /&gt;
n = vl.AddArchetypeVolume('../Slicer4/Testing/Data/Input/MRHeadResampled.nhdr', 'CTC')&lt;br /&gt;
i = n.GetImageData()&lt;br /&gt;
print (i.GetScalarRange())&lt;br /&gt;
&lt;br /&gt;
import vtk.util.numpy_support&lt;br /&gt;
a = vtk.util.numpy_support.vtk_to_numpy(i.GetPointData().GetScalars())&lt;br /&gt;
print(a.min(),a.max())&lt;br /&gt;
&lt;br /&gt;
import matplotlib&lt;br /&gt;
import matplotlib.pyplot&lt;br /&gt;
n, bins, patches = matplotlib.pyplot.hist(a, 50, facecolor='g', alpha=0.75)&lt;br /&gt;
matplotlib.pyplot.show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all goes well, you should see an image like the one shown here.&lt;br /&gt;
&lt;br /&gt;
=== Parallel Processing === &lt;br /&gt;
&lt;br /&gt;
In the shell, run this to install [http://packages.python.org/joblib/ joblib]&lt;br /&gt;
&lt;br /&gt;
 wget http://pypi.python.org/packages/source/j/joblib/joblib-0.4.6.dev.tar.gz&lt;br /&gt;
 tar xvfz joblib-0.4.6.dev.tar.gz&lt;br /&gt;
 (cd ./joblib-0.4.6.dev;  ../Slicer-build/Slicer4 --launch ../python-build/bin/python setup.py install)&lt;br /&gt;
&lt;br /&gt;
Then in ipython you can run this example: &lt;br /&gt;
&lt;br /&gt;
 from joblib import *&lt;br /&gt;
 from math import *&lt;br /&gt;
 for jobs in xrange(1,8):&lt;br /&gt;
   print (jobs, Parallel(n_jobs=jobs)(delayed(sqrt)(i**2) for i in range(10000))[-1])&lt;br /&gt;
&lt;br /&gt;
=== Packaging/Saving Scenes ===&lt;br /&gt;
&lt;br /&gt;
A basic example.  The following packages all of the scene's referenced files into one specified folder.  All images, csvs, volumes, etc. (everything except the scene .mrml) are copied into the folder &amp;quot;&amp;lt;package dir&amp;gt;/data.&amp;quot;  The scene .mrml is in the &amp;quot;&amp;lt;package dir&amp;gt;&amp;quot; directory. &lt;br /&gt;
&lt;br /&gt;
 import os &lt;br /&gt;
 # Library for OS specific routines&lt;br /&gt;
 &lt;br /&gt;
 tempDir = os.path.join(slicer.app.slicerHome, ‘testScene’) &lt;br /&gt;
 # Put our temp scene directory into the slicer directory.  os.path.join takes care of slash issues that you may encounter with UNIX-Windows compatibility.    &lt;br /&gt;
 &lt;br /&gt;
 os.mkdir(tempDir) &lt;br /&gt;
&lt;br /&gt;
 l = slicer.app.applicationLogic()&lt;br /&gt;
 l.SaveSceneToSlicerDataBundleDirectory(tempDir, None)&lt;br /&gt;
&lt;br /&gt;
=== Loading DICOM Sets ===&lt;br /&gt;
&lt;br /&gt;
The approach is to point Slicer's DICOM database to the directory of the new files.  The command appends the existing database with the files found in the inputted directory.&lt;br /&gt;
 i = ctk.ctkDICOMIndexer()&lt;br /&gt;
 i.addDirectory(slicer.dicomDatabase, '/yourDICOMdir/')&lt;br /&gt;
&lt;br /&gt;
One approach to begin the load process is to call on the DICOM module, which will automatically open the &amp;quot;DICOM Details&amp;quot; popup.  However, if the popup has been used already in the current Slicer session, a refresh may not occur and a restart may be required.&lt;br /&gt;
 m = slicer.util.mainWindow()&lt;br /&gt;
 m.moduleSelector().selectModule('DICOM')&lt;br /&gt;
&lt;br /&gt;
=Issues=&lt;br /&gt;
* matplotlib currently uses Tk to show the window on Linux and it does not handle pan/zoom events correctly.  Ideally there would be a PythonQt wrapper for the plots and this is probably required for use on windows (and maybe mac).&lt;br /&gt;
&lt;br /&gt;
* the matplotlib window is in the same thread with the ipython window so you cannot keep the plot open while working on the next one.  However you can save the plot to a file (png, pdf, etc...) and look at it with another program while working in ipython.&lt;br /&gt;
&lt;br /&gt;
* in slicer4 the PythonQt package is loaded as 'qt', however matplotlib tries running 'import qt' as a way to determine if it is running in PyQt version 3.  Because of this a patched version of matplotlib is required (see [https://github.com/pieper/matplotlib/commit/23bca600c27924450128bfe6e68196eb87cf0654 this diff])&lt;br /&gt;
&lt;br /&gt;
* Tested in Windows 7: Python 2.6.6 (used in Slicer 4.1) has errors in referencing its XML DOM parsers, such as ElementTree.  This is a Windows-specific issue -- the same code works in Linux Ubuntu.  Solution thus far is to write your own XML parser.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Tumor_final_merge_tubetk.png&amp;diff=29653</id>
		<title>File:Tumor final merge tubetk.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Tumor_final_merge_tubetk.png&amp;diff=29653"/>
		<updated>2013-01-09T01:10:51Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Using the TubeTK extension module &amp;quot;Merge (TubeTK)&amp;quot; we were able to successfully merge the tumor ultrasound images taken from the left and the right sides.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Using the TubeTK extension module &amp;quot;Merge (TubeTK)&amp;quot; we were able to successfully merge the tumor ultrasound images taken from the left and the right sides.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Aligned_tumor_image-Axial_Sagittal.png&amp;diff=29652</id>
		<title>File:Aligned tumor image-Axial Sagittal.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Aligned_tumor_image-Axial_Sagittal.png&amp;diff=29652"/>
		<updated>2013-01-09T00:19:38Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Screenshot of two tumor volumes (left and right) registered and transformed using Slicer's transforms module.  Axial and sagittal shown to illustrate the lineup from front to back.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of two tumor volumes (left and right) registered and transformed using Slicer's transforms module.  Axial and sagittal shown to illustrate the lineup from front to back.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Aligned_tumor_image_Axial-Axial.png&amp;diff=29651</id>
		<title>File:Aligned tumor image Axial-Axial.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Aligned_tumor_image_Axial-Axial.png&amp;diff=29651"/>
		<updated>2013-01-09T00:15:16Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: A left and right tumor ultrasound registered and transformed using the Slicer transforms module.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A left and right tumor ultrasound registered and transformed using the Slicer transforms module.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Transforms_module_for_tumor_merges.png&amp;diff=29650</id>
		<title>File:Transforms module for tumor merges.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Transforms_module_for_tumor_merges.png&amp;diff=29650"/>
		<updated>2013-01-09T00:11:26Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Screenshot of the transforms module for use in the UNC Prepalpable Tumor study.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of the transforms module for use in the UNC Prepalpable Tumor study.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:706_misregistration.jpg&amp;diff=29649</id>
		<title>File:706 misregistration.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:706_misregistration.jpg&amp;diff=29649"/>
		<updated>2013-01-08T23:22:58Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: This is the result of using the tubeMerge module from the TubeTK extension to merge two ultrasound images which have not been properly registered.  Notice the shadowing artifacts.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the result of using the tubeMerge module from the TubeTK extension to merge two ultrasound images which have not been properly registered.  Notice the shadowing artifacts.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Unaligned_tumor_image.png&amp;diff=29648</id>
		<title>File:Unaligned tumor image.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Unaligned_tumor_image.png&amp;diff=29648"/>
		<updated>2013-01-08T23:19:05Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: This is the result of loading two images to be registered simultaneously, before any transformation has been applied to the moving image.  The next step is to use the Transforms module to apply a transform to the moving image.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the result of loading two images to be registered simultaneously, before any transformation has been applied to the moving image.  The next step is to use the Transforms module to apply a transform to the moving image.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Developers/Tutorials/DashboardSetup&amp;diff=29549</id>
		<title>Documentation/4.2/Developers/Tutorials/DashboardSetup</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Developers/Tutorials/DashboardSetup&amp;diff=29549"/>
		<updated>2012-12-17T13:53:17Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Prerequisites=&lt;br /&gt;
&lt;br /&gt;
Use CMake version &amp;gt;= 2.8.8&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
&lt;br /&gt;
Follow the following instructions to set up dashboard: (by JC, from [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2011/006703.html])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ mkdir Dashboards&lt;br /&gt;
$ mkdir DashboardScripts&lt;br /&gt;
$ cd DashboardScripts&lt;br /&gt;
$ wget http://svn.slicer.org/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake&lt;br /&gt;
$ mv SlicerDashboardScript.TEMPLATE.cmake &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the file &amp;lt;code&amp;gt;&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake&amp;lt;/code&amp;gt; to match&lt;br /&gt;
your machine settings. You should update the following variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set(MY_OPERATING_SYSTEM   &amp;quot;&amp;lt;OperatingSystem&amp;gt;&amp;quot;) # Windows, Linux, Darwin...&lt;br /&gt;
set(MY_COMPILER           &amp;quot;g++4.4.3&amp;quot;)&lt;br /&gt;
set(MY_QT_VERSION         &amp;quot;4.7.4&amp;quot;)&lt;br /&gt;
set(QT_QMAKE_EXECUTABLE   &amp;quot;$ENV{HOME}/Projects/QtSDK-1.2/Desktop/Qt/474/gcc/bin/qmake&amp;quot;)&lt;br /&gt;
set(CTEST_SITE            &amp;quot;karakoram.kitware&amp;quot;)&lt;br /&gt;
set(CTEST_DASHBOARD_ROOT  &amp;quot;$ENV{HOME}/Dashboards/&amp;quot;)&lt;br /&gt;
...&lt;br /&gt;
set(CTEST_BUILD_CONFIGURATION &amp;quot;Release&amp;quot;)&lt;br /&gt;
...&lt;br /&gt;
set(SCRIPT_MODE &amp;quot;nightly&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If git and svn are not in the path, make sure to set the variables CTEST_SVN_COMMAND and CTEST_GIT_COMMAND.&lt;br /&gt;
&lt;br /&gt;
So that your dashboard can automatically start at 11pm daily, you could add an entry similar to the following one in your &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Cron crontab]&amp;lt;/code&amp;gt;. (On ubuntu, I am running &amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt; to edit the current user cron list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 23 * * * /path/to/cmake-2.8.7/bin/ctest -S /Users/JOE/DashboardScripts/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake -VV -O /Users/JOE/Dashboards/Logs/&amp;lt;MachineName&amp;gt;-&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use &amp;lt;code&amp;gt;CTEST_BUILD_FLAGS&amp;lt;/code&amp;gt; to set the number of CPUs to be used by ''make'' (eg, -j4), and CTEST_PARALLEL_LEVEL to set the number of tests to run in parallel (see comments in the [http://svn.slicer.org/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake configuration script]).&lt;br /&gt;
&lt;br /&gt;
==Scheduling on Mac OS X==&lt;br /&gt;
Mac OS X is deprecating the use of cron in favor of launchd.  &lt;br /&gt;
&lt;br /&gt;
Create a file $HOME/Library/LaunchAgents/org.slicer.NightlyDashboard.plist&lt;br /&gt;
&lt;br /&gt;
This is Jim's plist file which has extra EnvironmentVariables to get through his firewall.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
  &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;org.slicer.NightlyDashboard&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;array&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;/usr/local/bin/ctest&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;-S&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;/Users/millerjv/Projects/Slicer4-Dashboard/SlicerDashboardScript.cmake&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;EnvironmentVariables&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;ALL_PROXY&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;http_proxy&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;RSYNC_PROXY&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;Nice&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StartCalendarInterval&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;Hour&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;Minute&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;integer&amp;gt;03&amp;lt;/integer&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StandardErrorPath&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;/tmp/org.slicer.NightlyDashboard.err&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StandardOutPath&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;/tmp/org.slicer.NightlyDashboard.out&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can manually load this agent using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ launchctl load $HOME/Library/LaunchAgents/org.slicer.NightlyDashboard.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the agent will be reloaded automatically on a reboot.&lt;br /&gt;
&lt;br /&gt;
It seems I have to be logged onto the console for the launch agent to get installed and run.  What I do is log on, then select &amp;quot;Login Window...&amp;quot; so that other people can log onto the console. This is suboptimal as I need to do this after each reboot of the system.&lt;br /&gt;
&lt;br /&gt;
==Setting up a continuous dashboard==&lt;br /&gt;
&lt;br /&gt;
Similarly if you want to setup a continuous dashboard,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake&amp;lt;/code&amp;gt; and set&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set(SCRIPT_MODE &amp;quot;*continuous*&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add the corresponding entry in &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; so that it starts everyday at 6am:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 6 * * * /path/to/cmake-2.8.7/bin/ctest -S /Users/JOE/DashboardScripts/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake -VV -O /Users/JOE/Dashboards/Logs/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output of the build is contained in &amp;lt;code&amp;gt;ctest_package_make_package_output.txt&amp;lt;/code&amp;gt; in your slicer build directory, you can check this file if something went wrong.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scheduling on Windows==&lt;br /&gt;
&lt;br /&gt;
===Create a .bat file that performs the build===&lt;br /&gt;
&lt;br /&gt;
For example, a clean nightly build can be performed by a batch file like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rmdir /S /Q c:\SAB\Slicer-build-64bit-nightly&lt;br /&gt;
&amp;quot;c:\Program Files (x86)\CMake 2.8\bin\ctest.exe&amp;quot; -S .\Windows7-64bits_Slicer_Release_Nightly.cmake -VV c:\SAB\Logs\Windows7-64bits_Slicer_Release_Nightly.log -C Release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The general format of this command being:&lt;br /&gt;
&amp;lt;pre&amp;gt;ctest -S &amp;lt;path/to/ctestScript-nightly.cmake&amp;gt; -VV -O &amp;lt;path/to/ctestNightlyLog.log&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make sure the permissions you assign to the task allow reading and writing for the user making the build every night.&lt;br /&gt;
&lt;br /&gt;
In your dashboard script make sure to change MY_OPERATING_SYSTEM to &amp;quot;Windows&amp;quot;, MY_COMPILER to &amp;quot;VS2008&amp;quot; (or whichever you use).  Also open a shell and type cmake --help to obtain the proper spelling of your generator, and change CTEST_CMAKE_GENERATOR to the output (&amp;quot;Visual Studio 9 2008&amp;quot; for example).  &lt;br /&gt;
&lt;br /&gt;
===Create a new scheduled task that runs the .bat file===&lt;br /&gt;
* Windows XP: Create a new scheduled task at Control Panel / Scheduled Tasks / Add Scheduled&lt;br /&gt;
* Windows 7: Task scheduler can be found at Start Menu / All Programs / Accessories / System Tools / Task Scheduler.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
==Setting up a dashboard on a Windows machine==&lt;br /&gt;
If you're using an interface for version control such as TortoiseSVN, make sure in the Icon Overlay settings that the status cache is set to None.&lt;br /&gt;
[[Image:TortoiseGit.png|thumb|300px|Make sure the status cache is set to &amp;quot;None.&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
Keep the paths to your Nightly, Continuous, and Experimental directories as terse as possible.  A good standard is C:\D for dashboards, and C:\D\&amp;lt;N,C,E&amp;gt; subdirectories for Nightly, Continuous, and Experimental.  Otherwise, CMake will choke on the paths.&lt;br /&gt;
&lt;br /&gt;
==Lockhunter==&lt;br /&gt;
Often on Windows, once a dashboard build is started, it is impossible to delete anything from the source or build directory.  Windows will report that this file is currently in use by another program, or &amp;quot;locking&amp;quot; it.  For this, we recommend installing [http://www.lockhunter.com Lockhunter].&lt;br /&gt;
[[Image:LockHunderExample.png|thumb|left|300px| Lockhunter screenshot]]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Extensions/TubeTK&amp;diff=29039</id>
		<title>Documentation/Nightly/Extensions/TubeTK</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Extensions/TubeTK&amp;diff=29039"/>
		<updated>2012-11-05T23:14:07Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
Acknowledgments:&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by ... &amp;lt;br&amp;gt;&lt;br /&gt;
Author: Stephen Aylward (Kitware)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Jean-Christophe Fillion-Robin ({{collaborator|name|kitware}}), Christopher Mullins ({{collaborator|name|kitware}}), Michael Jeulin-L ({{collaborator|name|kitware}}), Matthew McCormick ({{collaborator|name|kitware}})&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Christopher Mullins, &amp;lt;email&amp;gt;christopher.mullins@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Website: http://www.tubetk.org/&amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://tubetk.org/tubetk/project/license.html TubeTK License]&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images. &lt;br /&gt;
&lt;br /&gt;
Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks.    Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in areal photographs, and nerves in confocal microscopy.&lt;br /&gt;
&lt;br /&gt;
==Longterm Goals==&lt;br /&gt;
By focusing on local geometric structure, the algorithms are able to accomplish segmentations, registrations, and other analyses that consider the physicial properties of objects and their variations, while not requiring limiting assumptions on the specific arrangement or general shape of the objects in the images. We are applying these techniques to push image understanding in new directions such as:&lt;br /&gt;
* registration of abdominal images even when organs slides against one another&lt;br /&gt;
* forming statistical atlases of intra-canrial vessel network topology even when that topology changes between subjects&lt;br /&gt;
* segmentation of arbitrary objects in images even when intensity statistics of those objects, and the objects around them, vary from image to image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Modules}}&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeAnisotropicDiffusiveDeformableRegistration |TubeTK Anisotropic Diffusive Deformable Registration]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCoherenceEnhancingAnisotropicDiffusion|TubeTK Coherence-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeBinaryImagesSimilary|TubeTK Compute Binary Image Similary]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeImageSimilarity|TubeTK Compute Image Similarity]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeConnectedComponents|TubeTK Connected Components]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeContrastImageUsingPrior|TubeTK Compute Contrast Image Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCrop|TubeTK Crop]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeDeblendImageUsingPrior|TubeTK Deblend Images Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeEdgeEnhancingAnisoptropicDiffusion|TubeTK Edge Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractCurves2D|TubeTK Extract Curves 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVessels|TubeTK Ridge Extractor]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVesselSeeds|TubeTK Extract Vessel Seeds]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHessianTubeness2D|TubeTK Hessian Tubeness 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHybridEnhancingAnisotropicDiffusion|TubeTK Hybrid-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeLDAGenerator|TubeTK LDA Generator]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMaskToStats|TubeTK Mask To Stats]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMatchImageWithPrior|TubeTK Match Image With Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMerge|TubeTK Merge]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeNJetLDAGenerator|TubeTK NJet Linear Discriminant Analysis]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeOtsuThreshold|TubeTK Otsu Threshold Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubePDFSegmenter|TubeTK PDF Region Growing]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeResample|TubeTK Resample Images]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSampleCLIApplication|TubeTK Sample CLI Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSkeletonize|TubeTK Skeletonize]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/SpatialObjectViewer|Spatial Objects Viewer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Acknowledgements}}&lt;br /&gt;
The development of TubeTK is being funded, in part, by the following grants&lt;br /&gt;
* 1. NIH/NIBIB sponsored &amp;quot;National Alliance of Medical Image Computing&amp;quot; (NA-MIC, PI: Kikinis) project&lt;br /&gt;
**1U54EB005149-01&lt;br /&gt;
**[http://www.na-mic.org NA-MIC]&lt;br /&gt;
* 2. DARPA sponsored &amp;quot;Trust in Integrated Circuits&amp;quot; (EXPOSE, PI: Bajura) program&lt;br /&gt;
** USC/ISI Team&lt;br /&gt;
** [http://www.darpa.mil DARPA]&lt;br /&gt;
* 3. NIH/NCI sponsored &amp;quot;Image Registration for Ultrasound-Based Neurosurgical Navigation&amp;quot; (NeuralNav, PI: Aylward, Wells)&lt;br /&gt;
** 1R01CA138419-01&lt;br /&gt;
** [http://public.kitware.com/Wiki/NeuralNav NeuralNav]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions&amp;diff=29038</id>
		<title>Documentation/4.2/Extensions</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions&amp;diff=29038"/>
		<updated>2012-11-05T23:10:26Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{:{{FULLPAGENAME}}/Description}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;= Extensions by Category =&lt;br /&gt;
&lt;br /&gt;
==Cat 1==&lt;br /&gt;
&lt;br /&gt;
==Cat 2==&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/SkullStripper|SkullStripper]] (Xiaodong Tao)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/CARMA|CARMA]] (Alan Morris)[[image:UnderConstruction.png|tumb|10px]]&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/PkModeling|PkModeling]] (Emma Zhu, Jim Miller)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/FacetedVisualizer|FacetedVisualizer]] (Harini Veeraraghavan, Jim Miller)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/Reporting|Reporting]] (Andrey Fedorov, Nicole Aucoin, Steve Pieper) (work in progress)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/SlicerRT|SlicerRT]] (Csaba Pinter, Andras Lasso, Kevin Wang, Steve Pieper)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/VolumeResliceDriver|VolumeResliceDriver]] (Junichi Tokuda, Laurent Chauvin)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/iGyne|IGyne]] (Xiaojun Chen and iGyne Team)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/LongitudinalPETCT|LongitudinalPETCT]] (Paul Mercea, Andrey Fedorov)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/TubeTK|TubeTK]] (Stephen Aylaward, Jean-Christophe Fillion-Robin, Christopher Mullins, Michael Jeulin-L, Matthew McCormick)&lt;br /&gt;
&lt;br /&gt;
==Cat 3==&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/LesionSegmentation|LesionSegmentation]] (Mark Scully)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Modules/TrainModel|LesionSegmentation-&amp;gt;TrainModel]] (Mark Scully)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Modules/PredictLesions|LesionSegmentation-&amp;gt;PredictLesions]] (Mark Scully)&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Extensions&amp;diff=29037</id>
		<title>Documentation/Nightly/Extensions</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Extensions&amp;diff=29037"/>
		<updated>2012-11-05T23:10:02Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{:{{FULLPAGENAME}}/Description}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;= Extensions by Category =&lt;br /&gt;
&lt;br /&gt;
==Cat 1==&lt;br /&gt;
&lt;br /&gt;
==Cat 2==&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/SkullStripper|SkullStripper]] (Xiaodong Tao)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/CARMA|CARMA]] (Alan Morris)[[image:UnderConstruction.png|tumb|10px]]&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/PkModeling|PkModeling]] (Emma Zhu, Jim Miller)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/FacetedVisualizer|FacetedVisualizer]] (Harini Veeraraghavan, Jim Miller)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/Reporting|Reporting]] (Andrey Fedorov, Nicole Aucoin, Steve Pieper) (work in progress)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/SlicerRT|SlicerRT]] (Csaba Pinter, Andras Lasso, Kevin Wang, Steve Pieper)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/VolumeResliceDriver|VolumeResliceDriver]] (Junichi Tokuda, Laurent Chauvin)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/iGyne|IGyne]] (Xiaojun Chen and iGyne Team)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/LongitudinalPETCT|LongitudinalPETCT]] (Paul Mercea, Andrey Fedorov)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/DTIProcess ToolKit|DTIProcess ToolKit]] (Francois Budin)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/TubeTK|TubeTK]] (Stephen Aylward, Jean-Christophe Fillion-Robin, Christopher Mullins, Michael Jeulin-L, Matthew McCormick)&lt;br /&gt;
&lt;br /&gt;
==Cat 3==&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/LesionSegmentation|LesionSegmentation]] (Mark Scully)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Modules/TrainModel|LesionSegmentation-&amp;gt;TrainModel]] (Mark Scully)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Modules/PredictLesions|LesionSegmentation-&amp;gt;PredictLesions]] (Mark Scully)&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions&amp;diff=29036</id>
		<title>Documentation/4.2/Extensions</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions&amp;diff=29036"/>
		<updated>2012-11-05T23:08:21Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{:{{FULLPAGENAME}}/Description}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;= Extensions by Category =&lt;br /&gt;
&lt;br /&gt;
==Cat 1==&lt;br /&gt;
&lt;br /&gt;
==Cat 2==&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/SkullStripper|SkullStripper]] (Xiaodong Tao)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/CARMA|CARMA]] (Alan Morris)[[image:UnderConstruction.png|tumb|10px]]&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/PkModeling|PkModeling]] (Emma Zhu, Jim Miller)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/FacetedVisualizer|FacetedVisualizer]] (Harini Veeraraghavan, Jim Miller)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/Reporting|Reporting]] (Andrey Fedorov, Nicole Aucoin, Steve Pieper) (work in progress)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/SlicerRT|SlicerRT]] (Csaba Pinter, Andras Lasso, Kevin Wang, Steve Pieper)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/VolumeResliceDriver|VolumeResliceDriver]] (Junichi Tokuda, Laurent Chauvin)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/iGyne|IGyne]] (Xiaojun Chen and iGyne Team)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/LongitudinalPETCT|LongitudinalPETCT]] (Paul Mercea, Andrey Fedorov)&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/TubeTK|TubeTK]] (Stephen Aylaward, Jean-Christopher Fillion-Robin, Christopher Mullins, Michael Jeulin-L, Matthew McCormick)&lt;br /&gt;
&lt;br /&gt;
==Cat 3==&lt;br /&gt;
* [[Documentation/{{documentation/version}}/Extensions/LesionSegmentation|LesionSegmentation]] (Mark Scully)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Modules/TrainModel|LesionSegmentation-&amp;gt;TrainModel]] (Mark Scully)&lt;br /&gt;
**[[Documentation/{{documentation/version}}/Modules/PredictLesions|LesionSegmentation-&amp;gt;PredictLesions]] (Mark Scully)&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Extensions/TubeTK&amp;diff=29035</id>
		<title>Documentation/Nightly/Extensions/TubeTK</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Extensions/TubeTK&amp;diff=29035"/>
		<updated>2012-11-05T23:06:05Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Created page with '&amp;lt;!-- ---------------------------- --&amp;gt; {{documentation/{{documentation/version}}/module-header}} &amp;lt;!-- ---------------------------- --&amp;gt;  &amp;lt;!-- ---------------------------- --&amp;gt; {{doc…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
Acknowledgments:&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by ... &amp;lt;br&amp;gt;&lt;br /&gt;
Author: Stephen Aylward (Kitware)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Jean-Christophe Fillion-Robin ({{collaborator|name|kitware}}), Christopher Mullins ({{collaborator|name|kitware}}), Michael Jeulin-L ({{collaborator|name|kitware}}), Matthew McCormick ({{collaborator|name|kitware}})&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Christopher Mullins, &amp;lt;email&amp;gt;christopher.mullins@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Website: http://www.tubetk.org/&amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://tubetk.org/tubetk/project/license.html TubeTK License]&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images. &lt;br /&gt;
&lt;br /&gt;
Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks.    Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in areal photographs, and nerves in confocal microscopy.&lt;br /&gt;
&lt;br /&gt;
==Longterm Goals==&lt;br /&gt;
By focusing on local geometric structure, the algorithms are able to accomplish segmentations, registrations, and other analyses that consider the physicial properties of objects and their variations, while not requiring limiting assumptions on the specific arrangement or general shape of the objects in the images. We are applying these techniques to push image understanding in new directions such as:&lt;br /&gt;
* registration of abdominal images even when organs slides against one another&lt;br /&gt;
* forming statistical atlases of intra-canrial vessel network topology even when that topology changes between subjects&lt;br /&gt;
* segmentation of arbitrary objects in images even when intensity statistics of those objects, and the objects around them, vary from image to image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Modules}}&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeAnisotropicDiffusiveDeformableRegistration |TubeTK Anisotropic Diffusive Deformable Registration]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCoherenceEnhancingAnisotropicDiffusion|TubeTK Coherence-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeBinaryImagesSimilary|TubeTK Compute Binary Image Similary]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeImageSimilarity|TubeTK Compute Image Similarity]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeConnectedComponents|TubeTK Connected Components]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeContrastImageUsingPrior|TubeTK Compute Contrast Image Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCrop|TubeTK Crop]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeDeblendImageUsingPrior|TubeTK Deblend Images Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeEdgeEnhancingAnisoptropicDiffusion|TubeTK Edge Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractCurves2D|TubeTK Extract Curves 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVessels|TubeTK Ridge Extractor]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVesselSeeds|TubeTK Extract Vessel Seeds]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHessianTubeness2D|TubeTK Hessian Tubeness 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHybridEnhancingAnisotropicDiffusion|TubeTK Hybrid-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeLDAGenerator|TubeTK LDA Generator]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMaskToStats|TubeTK Mask To Stats]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMatchImageWithPrior|TubeTK Match Image With Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMerge|TubeTK Merge]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeNJetLDAGenerator|TubeTK NJet Linear Discriminant Analysis]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeOtsuThreshold|TubeTK Otsu Threshold Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubePDFSegmenter|TubeTK PDF Region Growing]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeResample|TubeTK Resample Images]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSampleCLIApplication|TubeTK Sample CLI Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSkeletonize|TubeTK Skeletonize]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Acknowledgements}}&lt;br /&gt;
The development of TubeTK is being funded, in part, by the following grants&lt;br /&gt;
* 1. NIH/NIBIB sponsored &amp;quot;National Alliance of Medical Image Computing&amp;quot; (NA-MIC, PI: Kikinis) project&lt;br /&gt;
**1U54EB005149-01&lt;br /&gt;
**[http://www.na-mic.org NA-MIC]&lt;br /&gt;
* 2. DARPA sponsored &amp;quot;Trust in Integrated Circuits&amp;quot; (EXPOSE, PI: Bajura) program&lt;br /&gt;
** USC/ISI Team&lt;br /&gt;
** [http://www.darpa.mil DARPA]&lt;br /&gt;
* 3. NIH/NCI sponsored &amp;quot;Image Registration for Ultrasound-Based Neurosurgical Navigation&amp;quot; (NeuralNav, PI: Aylward, Wells)&lt;br /&gt;
** 1R01CA138419-01&lt;br /&gt;
** [http://public.kitware.com/Wiki/NeuralNav NeuralNav]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29034</id>
		<title>Documentation/4.2/Extensions/TubeTK</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29034"/>
		<updated>2012-11-05T21:03:34Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
Acknowledgments:&lt;br /&gt;
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by ... &amp;lt;br&amp;gt;&lt;br /&gt;
Author: Stephen Aylward (Kitware)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Jean-Christophe Fillion-Robin ({{collaborator|name|kitware}}), Christopher Mullins ({{collaborator|name|kitware}}), Michael Jeulin-L ({{collaborator|name|kitware}}), Matthew McCormick ({{collaborator|name|kitware}})&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Christopher Mullins, &amp;lt;email&amp;gt;christopher.mullins@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Website: http://www.tubetk.org/&amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://tubetk.org/tubetk/project/license.html TubeTK License]&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images. &lt;br /&gt;
&lt;br /&gt;
Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks.    Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in areal photographs, and nerves in confocal microscopy.&lt;br /&gt;
&lt;br /&gt;
==Longterm Goals==&lt;br /&gt;
By focusing on local geometric structure, the algorithms are able to accomplish segmentations, registrations, and other analyses that consider the physicial properties of objects and their variations, while not requiring limiting assumptions on the specific arrangement or general shape of the objects in the images. We are applying these techniques to push image understanding in new directions such as:&lt;br /&gt;
* registration of abdominal images even when organs slides against one another&lt;br /&gt;
* forming statistical atlases of intra-canrial vessel network topology even when that topology changes between subjects&lt;br /&gt;
* segmentation of arbitrary objects in images even when intensity statistics of those objects, and the objects around them, vary from image to image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Modules}}&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeAnisotropicDiffusiveDeformableRegistration |TubeTK Anisotropic Diffusive Deformable Registration]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCoherenceEnhancingAnisotropicDiffusion|TubeTK Coherence-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeBinaryImagesSimilary|TubeTK Compute Binary Image Similary]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeImageSimilarity|TubeTK Compute Image Similarity]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeConnectedComponents|TubeTK Connected Components]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeContrastImageUsingPrior|TubeTK Compute Contrast Image Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCrop|TubeTK Crop]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeDeblendImageUsingPrior|TubeTK Deblend Images Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeEdgeEnhancingAnisoptropicDiffusion|TubeTK Edge Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractCurves2D|TubeTK Extract Curves 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVessels|TubeTK Ridge Extractor]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVesselSeeds|TubeTK Extract Vessel Seeds]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHessianTubeness2D|TubeTK Hessian Tubeness 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHybridEnhancingAnisotropicDiffusion|TubeTK Hybrid-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeLDAGenerator|TubeTK LDA Generator]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMaskToStats|TubeTK Mask To Stats]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMatchImageWithPrior|TubeTK Match Image With Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMerge|TubeTK Merge]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeNJetLDAGenerator|TubeTK NJet Linear Discriminant Analysis]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeOtsuThreshold|TubeTK Otsu Threshold Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubePDFSegmenter|TubeTK PDF Region Growing]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeResample|TubeTK Resample Images]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSampleCLIApplication|TubeTK Sample CLI Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSkeletonize|TubeTK Skeletonize]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Acknowledgements}}&lt;br /&gt;
The development of TubeTK is being funded, in part, by the following grants&lt;br /&gt;
* 1. NIH/NIBIB sponsored &amp;quot;National Alliance of Medical Image Computing&amp;quot; (NA-MIC, PI: Kikinis) project&lt;br /&gt;
**1U54EB005149-01&lt;br /&gt;
**[http://www.na-mic.org NA-MIC]&lt;br /&gt;
* 2. DARPA sponsored &amp;quot;Trust in Integrated Circuits&amp;quot; (EXPOSE, PI: Bajura) program&lt;br /&gt;
** USC/ISI Team&lt;br /&gt;
** [http://www.darpa.mil DARPA]&lt;br /&gt;
* 3. NIH/NCI sponsored &amp;quot;Image Registration for Ultrasound-Based Neurosurgical Navigation&amp;quot; (NeuralNav, PI: Aylward, Wells)&lt;br /&gt;
** 1R01CA138419-01&lt;br /&gt;
** [http://public.kitware.com/Wiki/NeuralNav NeuralNav]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29033</id>
		<title>Documentation/4.2/Extensions/TubeTK</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29033"/>
		<updated>2012-11-05T20:42:00Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
Author: Stephen Aylward&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Stephen Aylward (Kitware), Jean-Christophe Fillion-Robin (Kitware), Christopher Mullins (Kitware), Michael Jeulin-L (Kitware), Matthew McCormick (Kitware)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Christopher Mullins, &amp;lt;email&amp;gt;christopher.mullins@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Website: http://www.tubetk.org/&amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://tubetk.org/tubetk/project/license.html TubeTK License]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images. &lt;br /&gt;
&lt;br /&gt;
Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks.    Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in areal photographs, and nerves in confocal microscopy.&lt;br /&gt;
&lt;br /&gt;
==Longterm Goals==&lt;br /&gt;
By focusing on local geometric structure, the algorithms are able to accomplish segmentations, registrations, and other analyses that consider the physicial properties of objects and their variations, while not requiring limiting assumptions on the specific arrangement or general shape of the objects in the images. We are applying these techniques to push image understanding in new directions such as:&lt;br /&gt;
* registration of abdominal images even when organs slides against one another&lt;br /&gt;
* forming statistical atlases of intra-canrial vessel network topology even when that topology changes between subjects&lt;br /&gt;
* segmentation of arbitrary objects in images even when intensity statistics of those objects, and the objects around them, vary from image to image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Modules}}&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeAnisotropicDiffusiveDeformableRegistration |TubeTK Anisotropic Diffusive Deformable Registration]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCoherenceEnhancingAnisotropicDiffusion|TubeTK Coherence-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeBinaryImagesSimilary|TubeTK Compute Binary Image Similary]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeImageSimilarity|TubeTK Compute Image Similarity]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeConnectedComponents|TubeTK Connected Components]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeContrastImageUsingPrior|TubeTK Compute Contrast Image Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCrop|TubeTK Crop]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeDeblendImageUsingPrior|TubeTK Deblend Images Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeEdgeEnhancingAnisoptropicDiffusion|TubeTK Edge Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractCurves2D|TubeTK Extract Curves 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVessels|TubeTK Ridge Extractor]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVesselSeeds|TubeTK Extract Vessel Seeds]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHessianTubeness2D|TubeTK Hessian Tubeness 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHybridEnhancingAnisotropicDiffusion|TubeTK Hybrid-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeLDAGenerator|TubeTK LDA Generator]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMaskToStats|TubeTK Mask To Stats]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMatchImageWithPrior|TubeTK Match Image With Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMerge|TubeTK Merge]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeNJetLDAGenerator|TubeTK NJet Linear Discriminant Analysis]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeOtsuThreshold|TubeTK Otsu Threshold Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubePDFSegmenter|TubeTK PDF Region Growing]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeResample|TubeTK Resample Images]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSampleCLIApplication|TubeTK Sample CLI Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSkeletonize|TubeTK Skeletonize]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Acknowledgements}}&lt;br /&gt;
The development of TubeTK is being funded, in part, by the following grants&lt;br /&gt;
* 1. NIH/NIBIB sponsored &amp;quot;National Alliance of Medical Image Computing&amp;quot; (NA-MIC, PI: Kikinis) project&lt;br /&gt;
**1U54EB005149-01&lt;br /&gt;
**[http://www.na-mic.org NA-MIC]&lt;br /&gt;
* 2. DARPA sponsored &amp;quot;Trust in Integrated Circuits&amp;quot; (EXPOSE, PI: Bajura) program&lt;br /&gt;
** USC/ISI Team&lt;br /&gt;
** [http://www.darpa.mil DARPA]&lt;br /&gt;
* 3. NIH/NCI sponsored &amp;quot;Image Registration for Ultrasound-Based Neurosurgical Navigation&amp;quot; (NeuralNav, PI: Aylward, Wells)&lt;br /&gt;
** 1R01CA138419-01&lt;br /&gt;
** [http://public.kitware.com/Wiki/NeuralNav NeuralNav]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29032</id>
		<title>Documentation/4.2/Extensions/TubeTK</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29032"/>
		<updated>2012-11-05T20:34:32Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
Author: Stephen Aylward&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Stephen Aylward (Kitware), Jean-Christophe Fillion-Robin (Kitware), Christopher Mullins (Kitware), Michael Jeulin-L (Kitware), Matthew McCormick (Kitware)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Christopher Mullins, &amp;lt;email&amp;gt;christopher.mullins@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Website: http://www.tubetk.org/&amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://tubetk.org/tubetk/project/license.html TubeTK License]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images. &lt;br /&gt;
&lt;br /&gt;
Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks.    Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in areal photographs, and nerves in confocal microscopy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Modules}}&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeAnisotropicDiffusiveDeformableRegistration |TubeTK Anisotropic Diffusive Deformable Registration]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCoherenceEnhancingAnisotropicDiffusion|TubeTK Coherence-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeBinaryImagesSimilary|TubeTK Compute Binary Image Similary]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeImageSimilarity|TubeTK Compute Image Similarity]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeConnectedComponents|TubeTK Connected Components]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeContrastImageUsingPrior|TubeTK Compute Contrast Image Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCrop|TubeTK Crop]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeDeblendImageUsingPrior|TubeTK Deblend Images Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeEdgeEnhancingAnisoptropicDiffusion|TubeTK Edge Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractCurves2D|TubeTK Extract Curves 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVessels|TubeTK Ridge Extractor]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVesselSeeds|TubeTK Extract Vessel Seeds]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHessianTubeness2D|TubeTK Hessian Tubeness 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHybridEnhancingAnisotropicDiffusion|TubeTK Hybrid-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeLDAGenerator|TubeTK LDA Generator]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMaskToStats|TubeTK Mask To Stats]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMatchImageWithPrior|TubeTK Match Image With Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMerge|TubeTK Merge]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeNJetLDAGenerator|TubeTK NJet Linear Discriminant Analysis]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeOtsuThreshold|TubeTK Otsu Threshold Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubePDFSegmenter|TubeTK PDF Region Growing]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeResample|TubeTK Resample Images]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSampleCLIApplication|TubeTK Sample CLI Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSkeletonize|TubeTK Skeletonize]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Acknowledgements}}&lt;br /&gt;
The development of TubeTK is being funded, in part, by the following grants&lt;br /&gt;
* 1. NIH/NIBIB sponsored &amp;quot;National Alliance of Medical Image Computing&amp;quot; (NA-MIC, PI: Kikinis) project&lt;br /&gt;
**1U54EB005149-01&lt;br /&gt;
**[http://www.na-mic.org NA-MIC]&lt;br /&gt;
* 2. DARPA sponsored &amp;quot;Trust in Integrated Circuits&amp;quot; (EXPOSE, PI: Bajura) program&lt;br /&gt;
** USC/ISI Team&lt;br /&gt;
** [http://www.darpa.mil DARPA]&lt;br /&gt;
* 3. NIH/NCI sponsored &amp;quot;Image Registration for Ultrasound-Based Neurosurgical Navigation&amp;quot; (NeuralNav, PI: Aylward, Wells)&lt;br /&gt;
** 1R01CA138419-01&lt;br /&gt;
** [http://public.kitware.com/Wiki/NeuralNav NeuralNav]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29031</id>
		<title>Documentation/4.2/Extensions/TubeTK</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29031"/>
		<updated>2012-11-05T20:31:28Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
Author: Stephen Aylward&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Jean-Christophe Fillion-Robin (Kitware), Christopher Mullins (Kitware), Michael Jeulin-L (Kitware), Matthew McCormick (Kitware)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Christopher Mullins, &amp;lt;email&amp;gt;christopher.mullins@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Website: http://www.tubetk.org/&amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://tubetk.org/tubetk/project/license.html TubeTK License]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images. &lt;br /&gt;
&lt;br /&gt;
Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks.    Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in areal photographs, and nerves in confocal microscopy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Modules}}&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeAnisotropicDiffusiveDeformableRegistration |TubeTK Anisotropic Diffusive Deformable Registration]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCoherenceEnhancingAnisotropicDiffusion|TubeTK Coherence-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeBinaryImagesSimilary|TubeTK Compute Binary Image Similary]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeImageSimilarity|TubeTK Compute Image Similarity]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeConnectedComponents|TubeTK Connected Components]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeContrastImageUsingPrior|TubeTK Compute Contrast Image Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCrop|TubeTK Crop]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeDeblendImageUsingPrior|TubeTK Deblend Images Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeEdgeEnhancingAnisoptropicDiffusion|TubeTK Edge Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractCurves2D|TubeTK Extract Curves 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVessels|TubeTK Ridge Extractor]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVesselSeeds|TubeTK Extract Vessel Seeds]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHessianTubeness2D|TubeTK Hessian Tubeness 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHybridEnhancingAnisotropicDiffusion|TubeTK Hybrid-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeLDAGenerator|TubeTK LDA Generator]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMaskToStats|TubeTK Mask To Stats]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMatchImageWithPrior|TubeTK Match Image With Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMerge|TubeTK Merge]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeNJetLDAGenerator|TubeTK NJet Linear Discriminant Analysis]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeOtsuThreshold|TubeTK Otsu Threshold Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubePDFSegmenter|TubeTK PDF Region Growing]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeResample|TubeTK Resample Images]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSampleCLIApplication|TubeTK Sample CLI Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSkeletonize|TubeTK Skeletonize]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Acknowledgements}}&lt;br /&gt;
The development of TubeTK is being funded, in part, by the following grants&lt;br /&gt;
* 1. NIH/NIBIB sponsored &amp;quot;National Alliance of Medical Image Computing&amp;quot; (NA-MIC, PI: Kikinis) project&lt;br /&gt;
**1U54EB005149-01&lt;br /&gt;
**[http://www.na-mic.org NA-MIC]&lt;br /&gt;
* 2. DARPA sponsored &amp;quot;Trust in Integrated Circuits&amp;quot; (EXPOSE, PI: Bajura) program&lt;br /&gt;
** USC/ISI Team&lt;br /&gt;
** [http://www.darpa.mil DARPA]&lt;br /&gt;
* 3. NIH/NCI sponsored &amp;quot;Image Registration for Ultrasound-Based Neurosurgical Navigation&amp;quot; (NeuralNav, PI: Aylward, Wells)&lt;br /&gt;
** 1R01CA138419-01&lt;br /&gt;
** [http://public.kitware.com/Wiki/NeuralNav NeuralNav]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29030</id>
		<title>Documentation/4.2/Extensions/TubeTK</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.2/Extensions/TubeTK&amp;diff=29030"/>
		<updated>2012-11-05T20:19:13Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Created page with '&amp;lt;!-- ---------------------------- --&amp;gt; {{documentation/{{documentation/version}}/module-header}} &amp;lt;!-- ---------------------------- --&amp;gt;  &amp;lt;!-- ---------------------------- --&amp;gt; {{doc…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
Author: Stephen Aylward&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Jean-Christophe Fillion-Robin (Kitware), Christopher Mullins (Kitware), Michael Jeulin-L (Kitware), Matthew McCormick (Kitware)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Christopher Mullins, &amp;lt;email&amp;gt;christopher.mullins@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Website: http://www.tubetk.org/&amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://tubetk.org/tubetk/project/license.html TubeTK License]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images. &lt;br /&gt;
&lt;br /&gt;
Tubes and surfaces, as generalized 1D and 2D manifolds in N-dimensional images, are essential components in a variety of image analysis tasks.    Instances of tubular structures in images include blood vessels in magnetic resonance angiograms and b-mode ultrasound images, wires in microscopy images of integrated circuits, roads in areal photographs, and nerves in confocal microscopy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Modules}}&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeAnisotropicDiffusiveDeformableRegistration |TubeTK Anisotropic Diffusive Deformable Registration]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCoherenceEnhancingAnisotropicDiffusion|TubeTK Coherence-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeBinaryImagesSimilary|TubeTK Compute Binary Image Similary]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeComputeImageSimilarity|TubeTK Compute Image Similarity]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeConnectedComponents|TubeTK Connected Components]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeContrastImageUsingPrior|TubeTK Compute Contrast Image Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeCrop|TubeTK Crop]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeDeblendImageUsingPrior|TubeTK Deblend Images Using Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeEdgeEnhancingAnisoptropicDiffusion|TubeTK Edge Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractCurves2D|TubeTK Extract Curves 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVessels|TubeTK Ridge Extractor]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeExtractVesselSeeds|TubeTK Extract Vessel Seeds]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHessianTubeness2D|TubeTK Hessian Tubeness 2D]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeHybridEnhancingAnisotropicDiffusion|TubeTK Hybrid-Enhancing Anisotropic Diffusion]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeLDAGenerator|TubeTK LDA Generator]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMaskToStats|TubeTK Mask To Stats]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMatchImageWithPrior|TubeTK Match Image With Prior]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeMerge|TubeTK Merge]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeNJetLDAGenerator|TubeTK NJet Linear Discriminant Analysis]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeOtsuThreshold|TubeTK Otsu Threshold Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubePDFSegmenter|TubeTK PDF Region Growing]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeResample|TubeTK Resample Images]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSampleCLIApplication|TubeTK Sample CLI Application]]&lt;br /&gt;
*[[Documentation/{{documentation/version}}/Modules/tubeSkeletonize|TubeTK Skeletonize]]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:TubeTK-scaled.png&amp;diff=28465</id>
		<title>File:TubeTK-scaled.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:TubeTK-scaled.png&amp;diff=28465"/>
		<updated>2012-10-12T13:45:41Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: TubeTK logo - taken from CDash, scaled.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TubeTK logo - taken from CDash, scaled.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:SOV_Icon_128.png&amp;diff=28314</id>
		<title>File:SOV Icon 128.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:SOV_Icon_128.png&amp;diff=28314"/>
		<updated>2012-09-14T16:56:35Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Icon for SpatialObjectsViewer extension.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Icon for SpatialObjectsViewer extension.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27819</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27819"/>
		<updated>2012-08-16T19:39:43Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
===Processor===&lt;br /&gt;
* 2 x 2.93 GHz 6-Core Intel Xeon&lt;br /&gt;
&lt;br /&gt;
===Graphics Card===&lt;br /&gt;
* Chipset Model: ATI Radeon HD 5770&lt;br /&gt;
* Type: GPU&lt;br /&gt;
* Bus PCIe&lt;br /&gt;
* VRAM (total): 1024MB&lt;br /&gt;
* EFI Driver Version: 01.00.436&lt;br /&gt;
&lt;br /&gt;
===Memory===&lt;br /&gt;
* 8 x 4GB = 32GB Memory&lt;br /&gt;
* Type: DDR3 ECC&lt;br /&gt;
* Speed: 1333 MHz&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
This VM is run using Parallel.  The &amp;quot;Parallel Tools&amp;quot; have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Xlib:  extension &amp;quot;GLX&amp;quot; missing on display &amp;quot;:0.0&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These errors occasionally cause tests to fail on the dashboards.&lt;br /&gt;
&lt;br /&gt;
This machine is accessible through SSH and remote VNC.  It has been configured with its own static IP, and should be accessed by VNC through this IP instead of through a VNC connection on the Mac Host.  Do not try to connect through VNC to this machine on the Host.&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;br /&gt;
&lt;br /&gt;
This machine may be accessed via VNC through its static IP or through the Host.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27818</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27818"/>
		<updated>2012-08-16T19:37:34Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
===Graphics Card===&lt;br /&gt;
* Chipset Model: ATI Radeon HD 5770&lt;br /&gt;
* Type: GPU&lt;br /&gt;
* Bus PCIe&lt;br /&gt;
* VRAM (total): 1024MB&lt;br /&gt;
* EFI Driver Version: 01.00.436&lt;br /&gt;
&lt;br /&gt;
===Memory===&lt;br /&gt;
* 8 x 4GB = 32GB Memory&lt;br /&gt;
* Type: DDR3 ECC&lt;br /&gt;
* Speed: 1333 MHz&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
This VM is run using Parallel.  The &amp;quot;Parallel Tools&amp;quot; have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Xlib:  extension &amp;quot;GLX&amp;quot; missing on display &amp;quot;:0.0&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These errors occasionally cause tests to fail on the dashboards.&lt;br /&gt;
&lt;br /&gt;
This machine is accessible through SSH and remote VNC.  It has been configured with its own static IP, and should be accessed by VNC through this IP instead of through a VNC connection on the Mac Host.  Do not try to connect through VNC to this machine on the Host.&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;br /&gt;
&lt;br /&gt;
This machine may be accessed via VNC through its static IP or through the Host.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27817</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27817"/>
		<updated>2012-08-16T19:33:54Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: /* Host */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
This VM is run using Parallel.  The &amp;quot;Parallel Tools&amp;quot; have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Xlib:  extension &amp;quot;GLX&amp;quot; missing on display &amp;quot;:0.0&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These errors occasionally cause tests to fail on the dashboards.&lt;br /&gt;
&lt;br /&gt;
This machine is accessible through SSH and remote VNC.  It has been configured with its own static IP, and should be accessed by VNC through this IP instead of through a VNC connection on the Mac Host.  Do not try to connect through VNC to this machine on the Host.&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;br /&gt;
&lt;br /&gt;
This machine may be accessed via VNC through its static IP or through the Host.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/DashboardSetup&amp;diff=27816</id>
		<title>Documentation/4.1/Developers/Tutorials/DashboardSetup</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/DashboardSetup&amp;diff=27816"/>
		<updated>2012-08-16T19:30:32Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: /* Setting up a dashboard on a Windows machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Prerequisites=&lt;br /&gt;
&lt;br /&gt;
Use CMake version &amp;gt;= 2.8.8&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
&lt;br /&gt;
Follow the following instructions to set up dashboard: (by JC, from [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2011/006703.html])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ mkdir Dashboards&lt;br /&gt;
$ mkdir DashboardScripts&lt;br /&gt;
$ cd DashboardScripts&lt;br /&gt;
$ wget http://svn.slicer.org/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake&lt;br /&gt;
$ mv SlicerDashboardScript.TEMPLATE.cmake &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the file &amp;lt;code&amp;gt;&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake&amp;lt;/code&amp;gt; to match&lt;br /&gt;
your machine settings. You should update the following variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set(MY_OPERATING_SYSTEM   &amp;quot;&amp;lt;OperatingSystem&amp;gt;&amp;quot;) # Windows, Linux, Darwin...&lt;br /&gt;
set(MY_COMPILER           &amp;quot;g++4.4.3&amp;quot;)&lt;br /&gt;
set(MY_QT_VERSION         &amp;quot;4.7.4&amp;quot;)&lt;br /&gt;
set(QT_QMAKE_EXECUTABLE   &amp;quot;$ENV{HOME}/Projects/QtSDK-1.2/Desktop/Qt/474/gcc/bin/qmake&amp;quot;)&lt;br /&gt;
set(CTEST_SITE            &amp;quot;karakoram.kitware&amp;quot;)&lt;br /&gt;
set(CTEST_DASHBOARD_ROOT  &amp;quot;$ENV{HOME}/Dashboards/&amp;quot;)&lt;br /&gt;
...&lt;br /&gt;
set(CTEST_BUILD_CONFIGURATION &amp;quot;Release&amp;quot;)&lt;br /&gt;
...&lt;br /&gt;
set(SCRIPT_MODE &amp;quot;nightly&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If git and svn are not in the path, make sure to set the variables CTEST_SVN_COMMAND and CTEST_GIT_COMMAND.&lt;br /&gt;
&lt;br /&gt;
So that your dashboard can automatically start at 11pm daily, you could add an entry similar to the following one in your &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Cron crontab]&amp;lt;/code&amp;gt;. (On ubuntu, I am running &amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt; to edit the current user cron list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 23 * * * /path/to/cmake-2.8.7/bin/ctest -S /Users/JOE/DashboardScripts/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake -VV -O /Users/JOE/Dashboards/Logs/&amp;lt;MachineName&amp;gt;-&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use &amp;lt;code&amp;gt;CTEST_BUILD_FLAGS&amp;lt;/code&amp;gt; to set the number of CPUs to be used by ''make'' (eg, -j4), and CTEST_PARALLEL_LEVEL to set the number of tests to run in parallel (see comments in the [http://svn.slicer.org/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake configuration script]).&lt;br /&gt;
&lt;br /&gt;
==Scheduling on Mac OS X==&lt;br /&gt;
Mac OS X is deprecating the use of cron in favor of launchd.  &lt;br /&gt;
&lt;br /&gt;
Create a file $HOME/Library/LaunchAgents/org.slicer.NightlyDashboard.plist&lt;br /&gt;
&lt;br /&gt;
This is Jim's plist file which has extra EnvironmentVariables to get through his firewall.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
  &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;org.slicer.NightlyDashboard&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;array&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;/usr/local/bin/ctest&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;-S&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;/Users/millerjv/Projects/Slicer4-Dashboard/SlicerDashboardScript.cmake&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;EnvironmentVariables&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;ALL_PROXY&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;http_proxy&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;RSYNC_PROXY&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;Nice&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StartCalendarInterval&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;Hour&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;Minute&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;integer&amp;gt;03&amp;lt;/integer&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StandardErrorPath&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;/tmp/org.slicer.NightlyDashboard.err&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StandardOutPath&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;/tmp/org.slicer.NightlyDashboard.out&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can manually load this agent using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ launchctl load $HOME/Library/LaunchAgents/org.slicer.NightlyDashboard.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the agent will be reloaded automatically on a reboot.&lt;br /&gt;
&lt;br /&gt;
It seems I have to be logged onto the console for the launch agent to get installed and run.  What I do is log on, then select &amp;quot;Login Window...&amp;quot; so that other people can log onto the console. This is suboptimal as I need to do this after each reboot of the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scheduling on Windows==&lt;br /&gt;
&lt;br /&gt;
===Create a .bat file that performs the build===&lt;br /&gt;
&lt;br /&gt;
For example, a clean nightly build can be performed by a batch file like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rmdir /S /Q c:\SAB\Slicer-build-64bit-nightly&lt;br /&gt;
&amp;quot;c:\Program Files (x86)\CMake 2.8\bin\ctest.exe&amp;quot; -S .\Windows7-64bits_Slicer_Release_Nightly.cmake -VV c:\SAB\Logs\Windows7-64bits_Slicer_Release_Nightly.log -C Release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create a new scheduled task that runs the .bat file===&lt;br /&gt;
* Windows XP: Create a new scheduled task at Control Panel / Scheduled Tasks / Add Scheduled&lt;br /&gt;
* Windows 7: Task scheduler can be found at Start Menu / All Programs / Accessories / System Tools / Task Scheduler.&lt;br /&gt;
&lt;br /&gt;
==Setting up a continuous dashboard==&lt;br /&gt;
&lt;br /&gt;
Similarly if you want to setup a continuous dashboard,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake&amp;lt;/code&amp;gt; and set&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set(SCRIPT_MODE &amp;quot;*continuous*&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add the corresponding entry in &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; so that it starts everyday at 6am:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 6 * * * /path/to/cmake-2.8.7/bin/ctest -S /Users/JOE/DashboardScripts/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake -VV -O /Users/JOE/Dashboards/Logs/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output of the build is contained in &amp;lt;code&amp;gt;ctest_package_make_package_output.txt&amp;lt;/code&amp;gt; in your slicer build directory, you can check this file if something went wrong.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
==Setting up a dashboard on a Windows machine==&lt;br /&gt;
If you're using an interface for version control such as TortoiseSVN, make sure in the Icon Overlay settings that the status cache is set to None.&lt;br /&gt;
[[Image:TortoiseGit.png|thumb|300px|Make sure the status cache is set to &amp;quot;None.&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
Keep the paths to your Nightly, Continuous, and Experimental directories as terse as possible.  A good standard is C:\D for dashboards, and C:\D\&amp;lt;N,C,E&amp;gt; subdirectories for Nightly, Continuous, and Experimental.  Otherwise, CMake will choke on the paths.&lt;br /&gt;
&lt;br /&gt;
==Lockhunter==&lt;br /&gt;
Often on Windows, once a dashboard build is started, it is impossible to delete anything from the source or build directory.  Windows will report that this file is currently in use by another program, or &amp;quot;locking&amp;quot; it.  For this, we recommend installing [http://www.lockhunter.com Lockhunter].&lt;br /&gt;
[[Image:LockHunderExample.png|thumb|left|300px| Lockhunter screenshot]]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27815</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27815"/>
		<updated>2012-08-16T18:47:06Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: /* VM: Windows 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
This VM is run using Parallel.  The &amp;quot;Parallel Tools&amp;quot; have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Xlib:  extension &amp;quot;GLX&amp;quot; missing on display &amp;quot;:0.0&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These errors occasionally cause tests to fail on the dashboards.&lt;br /&gt;
&lt;br /&gt;
This machine is accessible through SSH and remote VNC.  It has been configured with its own static IP, and should be accessed by VNC through this IP instead of through a VNC connection on the Mac Host.  Do not try to connect through VNC to this machine on the Host.&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;br /&gt;
&lt;br /&gt;
This machine may be accessed via VNC through its static IP or through the Host.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27814</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27814"/>
		<updated>2012-08-16T18:46:21Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: /* VM: Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
This VM is run using Parallel.  The &amp;quot;Parallel Tools&amp;quot; have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Xlib:  extension &amp;quot;GLX&amp;quot; missing on display &amp;quot;:0.0&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These errors occasionally cause tests to fail on the dashboards.&lt;br /&gt;
&lt;br /&gt;
This machine is accessible through SSH and remote VNC.  It has been configured with its own static IP, and should be accessed by VNC through this IP instead of through a VNC connection on the Mac Host.  Do not try to connect through VNC to this machine on the Host.&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27811</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27811"/>
		<updated>2012-08-16T18:32:35Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: /* Known issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
This VM is run using Parallel.  The &amp;quot;Parallel Tools&amp;quot; have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Xlib:  extension &amp;quot;GLX&amp;quot; missing on display &amp;quot;:0.0&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These errors occasionally cause tests to fail on the dashboards.&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27810</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27810"/>
		<updated>2012-08-16T18:19:35Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
This VM is run using Parallel.  The &amp;quot;Parallel Tools&amp;quot; have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Xlib:  extension &amp;quot;GLX&amp;quot; missing on display &amp;quot;:0.0&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27809</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27809"/>
		<updated>2012-08-16T17:55:11Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27806</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27806"/>
		<updated>2012-08-15T20:26:14Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Linux=&lt;br /&gt;
&lt;br /&gt;
This VM runs Ubuntu 10.04 LTS&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27805</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27805"/>
		<updated>2012-08-15T20:25:27Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27804</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27804"/>
		<updated>2012-08-15T20:22:33Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The scripts on this VM are very similar to those on the Host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27803</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27803"/>
		<updated>2012-08-15T20:18:45Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tasks are scheduled using the Windows Task Scheduler (Start-&amp;gt;All Programs-&amp;gt;Accessories-&amp;gt;System Tools-&amp;gt;Task Scheduler)&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27802</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27802"/>
		<updated>2012-08-15T20:16:26Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR.  On this machine, it is set as follows&lt;br /&gt;
&amp;lt;pre&amp;gt; set(CTEST_CMAKE_GENERATOR &amp;quot;Visual Studio 9 2008 Win64&amp;quot;) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27801</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27801"/>
		<updated>2012-08-15T20:09:43Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
#REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27800</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27800"/>
		<updated>2012-08-15T20:05:11Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;br /&gt;
&lt;br /&gt;
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27799</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27799"/>
		<updated>2012-08-15T20:02:29Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required to specify the build type.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27798</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27798"/>
		<updated>2012-08-15T19:58:42Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
*CMake version: 2.8.8&lt;br /&gt;
*GCC version: Ubuntu 4.4.3-4ubuntu5.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27797</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27797"/>
		<updated>2012-08-15T19:57:18Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VM: Windows 7=&lt;br /&gt;
&lt;br /&gt;
On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts.  factory-win7.bat looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM Nightly build of CTKAppLauncher vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt&lt;br /&gt;
&lt;br /&gt;
REM Nightly build of slicer extensions testing vs2008 32bits&lt;br /&gt;
&amp;quot;C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe&amp;quot; -S &amp;quot;C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake&amp;quot; -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that in this case, the -C option is required.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27794</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27794"/>
		<updated>2012-08-15T19:10:13Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
==Required factory components==&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27793</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27793"/>
		<updated>2012-08-15T19:07:36Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Required factory components=&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
The Slicer factory machine is maintained by [http://www.kitware.com Kitware] and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions.  See the [http://slicer.cdash.org/index.php?project=Slicer4 Slicer4 dashboard].&lt;br /&gt;
&lt;br /&gt;
These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux.  Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.&lt;br /&gt;
&lt;br /&gt;
=Host=&lt;br /&gt;
The factory machine runs Mac OS X v10.6.8, Snow Leopard.  &lt;br /&gt;
* CMake version: 2.8.8&lt;br /&gt;
* GCC version: i686-apple-darwin10-gcc-4.2.1&lt;br /&gt;
* Tasks scheduled using [http://en.wikipedia.org/wiki/Cron cron]&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;pre&amp;gt;crontab -l&amp;lt;/pre&amp;gt; on the factory machine is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
55 23 * * * cd /Users/kitware/DashboardScripts &amp;amp;&amp;amp; /usr/bin/cvs -q up -dAP&lt;br /&gt;
0 0 * * * /Users/kitware/DashboardScripts/factory.sh &amp;gt; /Users/kitware/Dashboards/Logs/factory.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake &amp;gt; /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open -a x11&lt;br /&gt;
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough&lt;br /&gt;
export PATH=:/usr/local/git/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest&lt;br /&gt;
LOG_DIR=/Users/kitware/Dashboards/Logs&lt;br /&gt;
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts&lt;br /&gt;
&lt;br /&gt;
# Nightly build of CTKAppLauncher&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
# Nightly build of slicer&lt;br /&gt;
&amp;quot;$CTEST&amp;quot; -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The virtual  machines are run using the Parallels tool.&lt;br /&gt;
&lt;br /&gt;
=VM: Ubuntu=&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27792</id>
		<title>Documentation/4.1/Developers/Factory</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Factory&amp;diff=27792"/>
		<updated>2012-08-15T17:27:33Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: Created page with '=Prerequisites=  See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Prerequisites=&lt;br /&gt;
&lt;br /&gt;
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Build_system&amp;diff=27791</id>
		<title>Documentation/4.1/Developers/Build system</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Build_system&amp;diff=27791"/>
		<updated>2012-08-15T17:20:18Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Leveraging the [http://www.cmake.org/cmake/help/v2.8.8/cmake.html#module:ExternalProject ExternalProject] module provided by [[{{tool|logo|cmake}}|x16px]] [{{tool|homepage|cmake}} CMake], Slicer SuperBuild system allows developers to quickly install and configure the multiple open-source packages and libraries it depends on.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/DirectoryStructure|Directory Structure]]&lt;br /&gt;
: Where files are located in the build tree and install tree.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/Versioning|Versioning]]&lt;br /&gt;
: Convention to name Slicer packages.&lt;br /&gt;
 &lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/QtPlugins|Qt Plugins]]&lt;br /&gt;
: How to build and load Qt plugins.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/Factory|Factory]]&lt;br /&gt;
: Current configuration of Slicer's factory machines.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Build_system&amp;diff=27744</id>
		<title>Documentation/4.1/Developers/Build system</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Build_system&amp;diff=27744"/>
		<updated>2012-08-08T15:49:30Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Leveraging the [http://www.cmake.org/cmake/help/v2.8.8/cmake.html#module:ExternalProject ExternalProject] module provided by [[{{tool|logo|cmake}}|x16px]] [{{tool|homepage|cmake}} CMake], Slicer SuperBuild system allows developers to quickly install and configure the multiple open-source packages and libraries it depends on.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/DirectoryStructure|Directory Structure]]&lt;br /&gt;
: Where files are located in the build tree and install tree.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/Versioning|Versioning]]&lt;br /&gt;
: Convention to name Slicer packages.&lt;br /&gt;
 &lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/QtPlugins|Qt Plugins]]&lt;br /&gt;
: How to build and load Qt plugins.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/Dashboards|Dashboards]]&lt;br /&gt;
: Check the status of Slicer's Factory build.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Build_system&amp;diff=27743</id>
		<title>Documentation/4.1/Developers/Build system</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Build_system&amp;diff=27743"/>
		<updated>2012-08-08T15:44:41Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Leveraging the [http://www.cmake.org/cmake/help/v2.8.8/cmake.html#module:ExternalProject ExternalProject] module provided by [[{{tool|logo|cmake}}|x16px]] [{{tool|homepage|cmake}} CMake], Slicer SuperBuild system allows developers to quickly install and configure the multiple open-source packages and libraries it depends on.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/DirectoryStructure|Directory Structure]]&lt;br /&gt;
: Where files are located in the build tree and install tree.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/Versioning|Versioning]]&lt;br /&gt;
: Convention to name Slicer packages.&lt;br /&gt;
 &lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/QtPlugins|Qt Plugins]]&lt;br /&gt;
: How to build and load Qt plugins.&lt;br /&gt;
&lt;br /&gt;
;[[Documentation/{{documentation/version}}/Developers/Dashboards|Dashboards]]&lt;br /&gt;
: Check the status of Slicer.&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/DashboardSetup&amp;diff=27621</id>
		<title>Documentation/4.1/Developers/Tutorials/DashboardSetup</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.1/Developers/Tutorials/DashboardSetup&amp;diff=27621"/>
		<updated>2012-07-19T21:32:25Z</updated>

		<summary type="html">&lt;p&gt;Crmullins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Prerequisites=&lt;br /&gt;
&lt;br /&gt;
Use CMake version &amp;gt;= 2.8.8&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
&lt;br /&gt;
Follow the following instructions to set up dashboard: (by JC, from [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2011/006703.html])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ mkdir Dashboards&lt;br /&gt;
$ mkdir DashboardScripts&lt;br /&gt;
$ cd DashboardScripts&lt;br /&gt;
$ wget http://svn.slicer.org/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake&lt;br /&gt;
$ mv SlicerDashboardScript.TEMPLATE.cmake &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the file &amp;lt;code&amp;gt;&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake&amp;lt;/code&amp;gt; to match&lt;br /&gt;
your machine settings. You should update the following variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set(MY_OPERATING_SYSTEM   &amp;quot;&amp;lt;OperatingSystem&amp;gt;&amp;quot;) # Windows, Linux, Darwin...&lt;br /&gt;
set(MY_COMPILER           &amp;quot;g++4.4.3&amp;quot;)&lt;br /&gt;
set(MY_QT_VERSION         &amp;quot;4.7.4&amp;quot;)&lt;br /&gt;
set(QT_QMAKE_EXECUTABLE   &amp;quot;$ENV{HOME}/Projects/QtSDK-1.2/Desktop/Qt/474/gcc/bin/qmake&amp;quot;)&lt;br /&gt;
set(CTEST_SITE            &amp;quot;karakoram.kitware&amp;quot;)&lt;br /&gt;
set(CTEST_DASHBOARD_ROOT  &amp;quot;$ENV{HOME}/Dashboards/&amp;quot;)&lt;br /&gt;
...&lt;br /&gt;
set(CTEST_BUILD_CONFIGURATION &amp;quot;Release&amp;quot;)&lt;br /&gt;
...&lt;br /&gt;
set(SCRIPT_MODE &amp;quot;nightly&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If git and svn are not in the path, make sure to set the variables CTEST_SVN_COMMAND and CTEST_GIT_COMMAND.&lt;br /&gt;
&lt;br /&gt;
So that your dashboard can automatically start at 11pm daily, you could add an entry similar to the following one in your &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Cron crontab]&amp;lt;/code&amp;gt;. (On ubuntu, I am running &amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt; to edit the current user cron list)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 11 * * * /path/to/cmake-2.8.7/bin/ctest -S /Users/JOE/DashboardScripts/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake -VV -O /Users/JOE/Dashboards/Logs/&amp;lt;MachineName&amp;gt;-&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use &amp;lt;code&amp;gt;CTEST_BUILD_FLAGS&amp;lt;/code&amp;gt; to set the number of CPUs to be used by ''make'' (eg, -j4), and CTEST_PARALLEL_LEVEL to set the number of tests to run in parallel (see comments in the [http://svn.slicer.org/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake configuration script]).&lt;br /&gt;
&lt;br /&gt;
==Scheduling on Mac OS X==&lt;br /&gt;
Mac OS X is deprecating the use of cron in favor of launchd.  &lt;br /&gt;
&lt;br /&gt;
Create a file $HOME/Library/LaunchAgents/org.slicer.NightlyDashboard.plist&lt;br /&gt;
&lt;br /&gt;
This is Jim's plist file which has extra EnvironmentVariables to get through his firewall.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
  &amp;lt;key&amp;gt;Label&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;org.slicer.NightlyDashboard&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;ProgramArguments&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;array&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;/usr/local/bin/ctest&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;-S&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string&amp;gt;/Users/millerjv/Projects/Slicer4-Dashboard/SlicerDashboardScript.cmake&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;EnvironmentVariables&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;ALL_PROXY&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;http_proxy&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;RSYNC_PROXY&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;proxy.research.ge.com:8080&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;Nice&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StartCalendarInterval&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;Hour&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
        &amp;lt;key&amp;gt;Minute&amp;lt;/key&amp;gt;&lt;br /&gt;
        &amp;lt;integer&amp;gt;03&amp;lt;/integer&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StandardErrorPath&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;/tmp/org.slicer.NightlyDashboard.err&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;key&amp;gt;StandardOutPath&amp;lt;/key&amp;gt;&lt;br /&gt;
  &amp;lt;string&amp;gt;/tmp/org.slicer.NightlyDashboard.out&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can manually load this agent using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ launchctl load $HOME/Library/LaunchAgents/org.slicer.NightlyDashboard.plist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the agent will be reloaded automatically on a reboot.&lt;br /&gt;
&lt;br /&gt;
It seems I have to be logged onto the console for the launch agent to get installed and run.  What I do is log on, then select &amp;quot;Login Window...&amp;quot; so that other people can log onto the console. This is suboptimal as I need to do this after each reboot of the system.&lt;br /&gt;
&lt;br /&gt;
==Setting up a continuous dashboard==&lt;br /&gt;
&lt;br /&gt;
Similarly if you want to setup a continuous dashboard,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.cmake &amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake&amp;lt;/code&amp;gt; and set&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set(SCRIPT_MODE &amp;quot;*continuous*&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add the corresponding entry in &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; so that it starts everyday at 6am:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 6 * * * /path/to/cmake-2.8.7/bin/ctest -S /Users/JOE/DashboardScripts/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_continuous.cmake -VV -O /Users/JOE/Dashboards/Logs/&amp;lt;MachineName&amp;gt;_&amp;lt;OperatingSystem&amp;gt;-64bits_slicer_release_nightly.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output of the build is contained in &amp;lt;code&amp;gt;ctest_package_make_package_output.txt&amp;lt;/code&amp;gt; in your slicer build directory, you can check this file if something went wrong.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
==Setting up a dashboard on a Windows machine==&lt;br /&gt;
If you're using an interface for version control such as TortoiseSVN, make sure in the Icon Overlay settings that the status cache is set to None.&lt;br /&gt;
[[Image:TortoiseGit.png|thumb|300px|Make sure the status cache is set to &amp;quot;None.&amp;quot;]]&lt;br /&gt;
==Lockhunter==&lt;br /&gt;
Often on Windows, once a dashboard build is started, it is impossible to delete anything from the source or build directory.  Windows will report that this file is currently in use by another program, or &amp;quot;locking&amp;quot; it.  For this, we recommend installing [http://www.lockhunter.com Lockhunter].&lt;br /&gt;
[[Image:LockHunderExample.png|thumb|left|300px| Lockhunter screenshot]]&lt;/div&gt;</summary>
		<author><name>Crmullins</name></author>
		
	</entry>
</feed>