VtkMy development

From bone.wiki
Revision as of 18:31, 17 November 2009 by Enodwell (talk | contribs) (Added dedicated vtkMy Development page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

vtkMy Installation

Apple
1. Install the code:

grab a copy from sodor/bonelab/software directory: vtkMy-osx.tar.bz2
create an /opt directory (if not already existing):
   $ sudo mkdir /opt
copy vtkMy-osx.tar.bz to /opt
   $ sudo cp vtkMy-osx.tar.bz /opt
unpack vtkMy
   $ sudo bunzip2 vtkMy-osx.tar.bz2
   $ sudo tar -xvf vtkMy-osx.tar

2. Edit your default paths in .bash_profile

 add the following lines to your .bash_profile file
# vtkMy
if [ ! `echo $PATH | grep /opt/vtkMy-osx/bin` ] ; then
  export PATH="/opt/vtkMy-osx/bin:$PATH"
fi
if [ ! `echo $DYLD_LIBRARY_PATH | grep /opt/vtkMy-osx/lib` ] ; then
  export DYLD_LIBRARY_PATH="/opt/vtkMy-osx/lib:$DYLD_LIBRARY_PATH"
fi

3. Restart your terminal session, or type:

   $ source ~/.bash_profile

vtkMy Development - Windows Setup


Required Software:
Cmake 2.4.8
WinCVS 2.0
ITK 2.8.1
VTK 5.0.4
Qt 4.4.0 Open source

  1. Create directory C:\pack to keep all programs
  2. Download and install cmake-2.4.8.zip from: http://www.cmake.org/HTML/Download.html
  3. Download and install WinCvs 2.0.2.4 (released 2005-08-15) from:http://www.wincvs.org/download.html#WINCVS
  4. Download InsightToolkit-2.8.1.zip (hosted at SourceForge) from:http://www.itk.org/HTML/Download.htm
  5. Use WinCVS to download source files for VTK:
    • a. Open WinCVS and click menu Admin-> Preferences-> CVS Tab
      • Enter HOME: C:\pack
      • Click Ok
    • b. Open menu Admin-> Command Line
      • Enter the following:
    cvs -d :pserver:anonymous@public.kitware.com:/cvsroot/VTK login{space}{enter}
    cvs -d :pserver:anonymous@public.kitware.com:/cvsroot/VTK checkout –d VTK
      • Click Ok
      • You will be prompted for the password. Enter: vtk
      • Wait for checkout to complete
  6. Download vtkMy source using WinCVS (see SmartCVS below as option to WinCVS)
    • a. Verify home directory as set up in Step 5.a.i.
    • b. Open menu Remote-> Checkout Module
      • Enter the following settings:
    Module name and path on server: vtkMy
    Local folder to checkout to: C:\pack\
    Check box: CVSROOT
    CVSROOT: :ssh:username@m177.enme.ucalgary.ca:/localhost/cvsroot
      • Click Ok
      • You will be prompted for your password to access the machine
      • Wait for checkout to complete
  7. Install Qt 4.4.0 Open Source version
    • a. Extract all from “qt-win-opensource-4.4.0.zip” to your "C:\pack\qt-win-opensource-src-4.4.0" folder
    • b. Make changes to the Environment Variables which can be found in Control Panel -> System -> Advanced -> Environment Variables
    -In System Variables, make new variable with name "QMAKESPEC" and value "win32-msvc2008" (*Note: 2008 or whichever version of VS being used)
    -In System Variables, make new variable with name "QTDIR" and value "(your QT directory)"
    -In System Variables, in variable Path, add ";(your QT directory)\bin;(your QT directory)\qmake;" (*Note: Ensure that there are no spaces and do not remove anything from the path that was previously there)
    • c. Ensure the Visual Studio Environment Variables are set. You may have the run either of the following in the Visual Studio Command Prompt Window:
    - the "vsvars32.bat" file found in "Microsoft Visual Studio 9.0\VC\bin" folder
    - or for 64-bit, "vcvarsamd64.bat" file found in "Microsoft Visual Studio 9.0\VC\bin\amd64"
    • d.In the standard Command Prompt, go to your QT directory and type "configure". (approx 10 mins)
    • e.Once completed, type "nmake". (approx 2 hrs)
  8. Build ITK using Cmake
    • a. Open Cmake
    • b. Choose C:\pack\InsightToolkit-2.8.1 as source code
    • c. Make C:\pack\InsightToolkit-2.8.1\bin binary code location
    • d. Click ‘Configure’ and choose desired compiler
    • e. Use the following Cache values:
    BUILD_EXAMPLES: ON
    BUILD_SHARED_LIBS: ON
    BUILD_TESTING: ON
    BUILD_BACKWARDS_COMPATIBILITY: 2.4
    CMAKE_INSTALL_PREFIX: C:/Program Files/ITK
    • f. Click ‘Configure’, all red values should turn grey
    • g. Click ‘Ok’, wait as Cmake will close automatically
  9. Build ITK using Visual Studio (or desired program)
    1. Open C:\pack\InsightToolkit-2.8.1\bin\itk.sln (.dsw)
    2. Click ‘Build’
  10. Build VTK using Cmake
    • a. Open Cmake
    • b. Choose C:\pack\VTK as source code
    • c. Make C:\pack\VTK\bin binary code location
    • d. Click ‘Configure’ and choose desired compiler
    • e. Click the ‘Show Advanced Values’ checkbox and verify the following settings, all others can be left as defaults:
    BUILD_EXAMPLES: ON
    BUILD_SHARED_LIBS: ON
    BUILD_TESTING: ON
    BUILD_BACKWARDS_COMPATIBILITY: 2.4
    CMAKE_INSTALL_PREFIX: C:/Program Files/VTK
    VTK_USE_GUISUPPORT: ON
    • f. Click ‘Configure’, then new red values should appear
    VTK_USE_QVTK: ON
    VTK_USE_MFC: ON
    • g. Enter '4' when asked which version of Qt
    • h. Click ‘Configure’, then new red values should appear, leave as defaults
    • i. Click ‘Configure’, all red values should turn grey
    • j. Click ‘Ok’, wait as Cmake will close automatically
  11. Build VTK using Visual Studio (or desired program)
    1. Open C:\pack\VTK\bin\vtk.sln (note: file extension is .dsw for VS 6.0 and older)
    2. Click ‘Build’
  12. Build vtkMy using Cmake
    • a. Open Cmake
    • b. Choose C:\pack\vtkMy\src as source code
    • c. Make C:\pack\vtkMy\bin binary code location
    • d. Click ‘Configure’ and choose desired compiler
    • e. Click the ‘Show Advanced Values’ check box and verify the following settings, all others can be left as defaults:
    BUILD_APPLICATIONS: ON
    BUILD_SHARED_LIBS: ON
    BUILD_TEST_PROJECTS: ON
    BUILD_MIXED_PROJECTS: ON
    BUILD_BACKWARDS_COMPATIBILITY: 2.4
    CMAKE_INSTALL_PREFIX: C:/Program Files/VTKMY
    USE_ITK: ON
    USE_QT: ON
    USE_FLTK: OFF
    • f. Click ‘Configure’, all red values should turn grey
    • g. May have to click configure again if any red values are still present
    • h. Click ‘Ok’, wait as Cmake will close automatically
  13. Add the following environment variables:
    1. Open the Control Panel
    2. Double click and open 'System'
    3. Go to the 'Advanced tab' and click on the 'Environment Variables' button
    4. In the System Variable Section click on the 'Path' variable and click 'edit'
    5. Add the following values separated by semi-colons
    C:\pack\vtkMy\bin\Debug
    C:\pack\vtkMy\bin\Utilities\tetrapack\Debug
    C:\pack\vtkMy\bin\Utilities\aimpack64\Debug
    C:\pack\vtkMy\bin\Unsorted\Debug
  14. Build vtkMy using Visual Studio (or desired program)
    1. Open C:\pack\vtkMy\bin\vtkmy.sln (.dsw)
    2. Click ‘Build’

Setting up CVS access from Linux/Unix

  • To understand the codes for a CVS update, see page 121 of CVS users guide, section A.16.2.
  1. Valuable resource for understanding ssh:
  2. Setting up SSH access from "localbox" to "remotebox":
    Localbox:
    • ssh-keygen -t rsa [use a passphrase]
    NOTE: Put the "id_rsa" (private file) in ~/.ssh. There should only be one of these on a machine account.
    NOTE: Put the “id_rsa.pub�? (public file) in ~/.ssh as “authorized_keys�? on remote machines; see “Remotebox�? below.
    • scp identity.pub skboyd@remotebox: [don't forget the last colon]
    • in ~/.bashrc:
    • export CVS_RSH=ssh
    • export CVSROOT=:ext:skboyd@m177.enme.ucalgary.ca:/localhost/cvsroot
    • eval `ssh-agent` {use the funny back single quotes}

Remotebox:
    • cat identity.pub >> ~/.ssh/authorized_keys
  1. To avoid writing your passphrase every time you log on, run ( on the local box!):
    • ssh-add ~/.ssh/ida_rsa
    Should work if ssh-agent is already running (eval `ssh-agent` in the .bashrc file).
  2. Do the following to limit access to cvs for the users:
    • edit the public key installed in the .ssh/authorized_keys file with the following at the beginning of the public key line:
    command="/usr/bin/ssh server"
NOTES ABOUT KEYS
Remember, the "authorized_keys" file is a concatenation of public (id_rsa.pub) keys, 
and the "id_rsa" is the private key.  
Every user on every computer should only have ONE "id_rsa" file, 
but can have multiple "id_rsa.pub" files concatenated into
their "authorized_keys" file.

Using CVS from a command line

  1. To find a difference:
    • $ cvs diff mylocalfile.cxx
  2. To add a new file:
    • $ cvs add mynewfile.cxx
    • $ cvs commit mynewfile.cxx
  3. To update local file:
    • $ cvs update -dCP
    or
    • $ cvs update -dCP myfile.cxx
  4. To check if a more recent version is available:
    • $ cvs diff myfile.cxx
    or (this will change the files):
    • $ cvs update
    or (local files are unchanged):
    • $ cvs -nq update
    update outputs are:
    • U file new or newer file in repository
    • M file newer file in local directory
  5. To update CVS repository:
    • $ cvs commit mylocalfile.cxx
  6. To look at the changes made to a file:
    • $ cvs log mylocalfile.cxx

Add a project to vtkMy

  1. Add a new project directory in the vtkMy/src/Applications directory.
  2. Update the CMakeLists.txt file in /src/Applications to include the new directory in the SUBDIRS() list.
  3. Copy the CMakeLists.txt and source code files from an existing project such as AppMohr and put them into the new directory. These files can be edited for your new project.
  4. Edit the copied CMakeList.txt file and the change the name of the .cxx to the name of the new project.
  5. Run CMake, taking the source code from vtkMy/src and building the binaries in vtkMy/bin.
  6. Open the Visual C++ workspace and edit the source code (since at the moment it will be a duplicate of whatever project you copied in step 3).
  7. Compile your new code. Usually, all the development should be done in the “Debug�? mode (rather than “Release�?, etc.).
  8. If, to run your application, you need to include command line arguments, go to the menu item [Project][Settings], and on the ‘debug’ tab set the Program Arguments as shown.


File:VtkMy Project Settings.jpg


WinCVS and PuTTY for vtkMy

NOTE: An alternative CVS client has been suggested, see following section:

SmartCVS from www.syntevo.com with a foundation license. 

Setting up WinCVS to use PuTTY is fairly straightforward, but does require a few configuration settings in addition to installing the software. You can do it with the following steps.

  1. Install PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/).
  2. Install wincvs (http://www.wincvs.org/)
  3. Make a key:
    • Follow menus: Start/Programs/PuTTY/PuTTYgen From the PuTTY Manual:
    ...press the "Generate" button and PuTTYgen will begin the process of actually generating the key.
    • First, a progress bar will appear and PuTTYgen will ask you to move the mouse around to generate randomness. Wave the mouse in circles over the blank area in the PuTTYgen window, and the progress bar will gradually fill up as PuTTYgen collects enough randomness. You don't need to wave the mouse in particularly imaginative patterns (although it can't hurt); PuTTYgen will collect enough randomness just from the fine detail of exactly how far the mouse has moved each time Windows samples its position.
    • When the progress bar reaches the end, PuTTYgen will begin creating the key. The progress bar will reset to the start, and gradually move up again to track the progress of the key generation. It will not move evenly, and may occasionally slow down to a stop; this is unfortunately unavoidable, because key generation is a random process and it is impossible to reliably predict how long it will take.
    • When the key generation is complete, a new set of controls will appear in the window to indicate this.

File:Putty key generator.jpg

  1. Set the key comment and password. Set the key comment to your email address by typing it into the "Key Comment" box. Set the password by entering it twice, once in the "Key passphrase" box and once in the "Confirm Passphrase" box.
  2. Save the keys:
    save the public key on your desktop as identity.pub and the private one as identity.ppk
  3. Email the identity.pub file as an attachment to skboyd@ucalgary.ca and ask for it to be added to the .ssh/authorized_keys file for your cvs repository. Please specify which repository you are requesting access to in the e-mail (i.e., vtkMy).
  4. Setup environment variables
    • Choose Menus:
      Start/Settings/Control Panel
    • Double click on the "System" Control Panel
    • Pick the "Advanced" tab and pick "Environment Varibles..."
    • Add User environement variables
    - Add PLINK_PROTOCOL value "ssh"
    - Add CVS_RSH value "plink"
    - Edit or Add PATH appending value ";C:\Program Files\PuTTY"
  5. In WinCVS, bring up the "Preferences" dialogue box from the Admin menu
    • In the "General" tab put in your CVSROOT value, (i.e. :ext:myusername@m177.enme.ucalgary.ca:/localhost/cvsroot)
      File:Wincvs general.jpg
    • Switch to the "Ports" tab.
    • Tick the box there labelled "Check for an alternate rsh name" and in the text entry field to the right enter "plink".
      File:Wincvs ports tab.jpg
    • Select "OK" on teh "Preferences" dialogue box.
  6. Once you've heard back from the administrator (skboyd) that your ssh keys have been added, test your putty key configuration:
    • Double click on "identity.ppk" on your desktop. If this doesn’t start pagaent.exe automatically, then manually start the program from the directory you installed putty.exe.
    • If your identity file isn't already loaded, you will be prompted for the password you entered in step 4.
    • The Pageant icon (a little PC with a hat) should appear in the bottom right menu bar.


You should now be able to use WinCVS to access the repository, with a secure connection whenever Pageant is running. You can start Pageant by double-clicking on your identity.ppk file.

SmartCVS (Windows and MacOSX)

This program is an option instead of using WinCVS. While it is easier to setup it is slower and WinCVS is preferred. It works great on MacOSX.

  1. Download program from: http://www.syntevo.com/smartcvs/download.html
  2. Run program
  3. Choose “Check out project from repository”
    1. Click Manage
    2. Click Add
    3. Click “Enter CVS-Location”
    4. Type: :ext:username@m177.enme.ucalgary.ca:/localhost/cvsroot
    5. Click “Next”
    6. Choose password or Public/Private Key
  4. Either enter password or load key file and passphrase
  5. Click ‘Finish’
  6. When back to Check out project window, click next and wait for checkout