TubeTK/Build Instructions: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
No edit summary
Line 50: Line 50:
* Reinforce the selected CMake variables by configuring a second time (press 'c' on Linux, or the 'Configure' button on Windows)
* Reinforce the selected CMake variables by configuring a second time (press 'c' on Linux, or the 'Configure' button on Windows)
* Generate the build files by pressing 'g' on Linux, or the 'Generate' button on Windows
* Generate the build files by pressing 'g' on Linux, or the 'Generate' button on Windows
* '''Windows''': Close CMake when it reports "Generating done"


===Build TubeTK using your compiler===
===Build TubeTK using your compiler===

Revision as of 02:12, 9 January 2011

Recommended Build Procedure

Configure the build using CMake

Create the build directory

cd ~/Projects # assuming that this is where your TubeTK source directory is located
mkdir tubetk-Release

Run CMake to configure

Linux:

cd tubetk-Release
ccmake ../tubetk_source_dir
press 'c' to configure

Windows:

run CMake (cmake-gui)
Where is the source code: your TubeTK source directory
Where to build the binaries: your new TubeTK build directory
Press the 'Configure' button
  • If CMake complains that it cannot find Git:
    • Toggle the 'Advanced' checkbox to ON
    • Set the value of GIT_EXECUTABLE value to C:\Program Files (x86)\Git\cmd\git.cmd, or its equivalent on your system
    • Press the 'Configure' button twice
    • Toggle the 'Advanced' checkbox to OFF

Confirm the following CMake variables

  • BUILD_TESTING: ON
  • TubeTK_USE_CTK: ON
  • TubeTK_USE_QT: OFF
    • If you have Qt 4.6.3 or greater installed, you can turn it on.
  • TubeTK_USE_SUPERBUILD: ON
    • If "ON", then cmake will fetch and compile ITK and VTK from the Slicer git repository, and will fetch and compile TCLAP, ModuleDescriptionParser, and GenerateCLP from the Slicer3 svn repository
  • TubeTK_USE_VTK: ON
  • USE_SYSTEM_ITK: OFF
    • If "ON", then you can tell TubeTK to use an ITK build that is already present on your system (using the CMake variable ITK_DIR)
  • USE_SYSTEM_VTK: OFF
    • If "ON", then you can tell TubeTK to use a VTK build that is already present on your system (using the CMake variable VTK_DIR)

Generate the build files

  • Reinforce the selected CMake variables by configuring a second time (press 'c' on Linux, or the 'Configure' button on Windows)
  • Generate the build files by pressing 'g' on Linux, or the 'Generate' button on Windows
  • Windows: Close CMake when it reports "Generating done"

Build TubeTK using your compiler

  • Perform initial build using your compiler at the top-level of tubetk-Release (on Windows, the "ALL_BUILD" project)
  • Subsequent builds should be initiated in the subdir tubetk-Release/TubeTK-Build to save time (on Windows, the "TubeTK" project)

Recommended Compilation Options

Inside TubeTK

  • As noted above, TubeTK uses CMake's Superbuild include other libraries, as needed for the options selected.
  • Libraries that may be automatically downloaded and included by TubeTK include:
    • ITK
    • VTK
    • CTK
    • Select tools from the NA-MIC Kit:
      • TCLAP, GenerateCLP, ModuleDescriptionParser, RegisterImages
  • Libraries that must be externally installed if you want to use them with TubeTK
    • CMake (2.8.2 or greater - REQUIRED)
    • Qt (4.6.2 or greater - OPTIONAL)
  • You can manually install the above toolkits and then configure TubeTK to use those installations instead of building its own copies of those toolkits, BUT we don't recommend heading down that road.
    • Requires CMake expertise
    • Requires making sure each of the toolkits is correctly configured (via their own cmake configuration processes) for use with TubeTK.
    • If you still want to try this complex, manual, unsupported approach, then the following steps will help somewhat:
      1. Read tubetk/SuperBuild.cmake to find out the current set of cmake options required for each library.
      2. For example, at one point in tubetk history, you were required to build ITK v3.20.0, as mirrored and customized on the Slicer github account, using the following cmake vars
        • BUILD_SHARED_LIBS = OFF (or ON, but libs are VERY small in ITK because of templates)
        • ITK_USE_LIBXML2 = ON
        • ITK_USE_REVIEW = ON
        • ITK_USE_OPTIMIZED_REGISTRATION_METHODS = ON
        • ITK_USE_TRANSFORM_IO_FACTORIES = ON
        • CMAKE_CXX_FLAGS = -fPIC
        • CMAKE_C_FLAGS = -fPIC
          • adding -fPIC to both c and cxx flags can be ignored if you build with shared libs ON.
      3. You must also build non-cmake libraries, such as Qt 4.6.2 or greater
        • Tips for installing Open Source Qt to run with Visual Studio
          1. Open a visual studio command shell.
          2. Go to the Qt source directory and run "configure -platform win32-msvc2005". This will tell Qt to prepare itself for being compiled by the Visual Studio compiler. If you use another version of VS than 2005, replace win32-msvc-2005 with the appropriate one.
          3. Type "nmake" and take a break when it compiles.
          4. Add QMAKESPEC=win32-msvc2005 as a system environment variable and add QTDIR=your_dir into the system path. It is done.
        • Tips for installing Qt on Linux
          1. apt-get qt4
      4. After Qt, you must also build the Slicer customized version of VTK v5.6, from the Slicer github account, using the appropriate cmake vars, such as
        • BUILD_SHARED_LIBS = ON
        • VTK_USE_GUISupport = ON
        • VTK_USE_QVTK
      5. Again, many details are missing in the above list. We really recommend using Superbuild instead.

References

  • Superbuild and EXTERNAL_PROJECTS
    • Dave Cole's article in the October Kitware Source [1]