[Insight-users] ITK and managed c++ 2005

Dan Mueller d.mueller at qut.edu.au
Sun Oct 1 17:15:24 EDT 2006


Skipped content of type multipart/alternative-------------- next part --------------
# Set the project name
PROJECT(ITK_CPP_CLI)

# Include some useful macros associated with the Insight Journal
INCLUDE(${CMAKE_SOURCE_DIR}/IJMacros.txt)

# Find ITK
LOADPACKAGE(ITK)

# Setup some paths
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Single output directory for building all libraries." FORCE)
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables." FORCE)

# Set dependent libraries.
SET(ITK_Libraries
    ITKIO
    ITKCommon 
    ITKNumerics 
    ITKBasicFilters
    ITKSpatialObject
    ITKMetaIO
    ITKStatistics
    itksys}
)

# Add a console application
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} )
ADD_EXECUTABLE( Test Test.cpp )
TARGET_LINK_LIBRARIES(Test ${ITK_LIBRARIES} )
-------------- next part --------------
#Macro to find a package and load it
#(you shouldn't need to modify this code)
MACRO(LOADPACKAGE Package)
  SET(Included FALSE)
  IF(EXISTS "/home/tester/XMLTestParser.py")
    #If we're in the test environment, check and see if we're being asked for
    #a specific version of some package.  If so, we'll provide a direct path
    #instead of counting on CMake to choose the right version.
    IF(${Package} MATCHES "^ITK.*2[.]2[.]1$")
      SET(ITK_DIR "/home/tester/ITK2.2.1/bin")
      INCLUDE("/usr/local/share/CMake/Modules/FindITK.cmake")
      INCLUDE(${ITK_USE_FILE})
      SET(Included TRUE)
    ENDIF(${Package} MATCHES "^ITK.*2[.]2[.]1$")
    IF(NOT Included AND ${Package} MATCHES "^ITK.*1[.]8[.]1$")
      SET(ITK_DIR "/home/tester/ITK1.8.1/bin")
      INCLUDE("/usr/local/share/CMake/Modules/FindITK.cmake")
      INCLUDE(${ITK_USE_FILE})
      SET(Included TRUE)
    ENDIF(NOT Included AND ${Package} MATCHES "^ITK.*1[.]8[.]1$")
    IF(NOT Included AND ${Package} MATCHES "^VTK.*4[.]4$")
      SET(VTK_DIR "/home/tester/VTK4.4/bin")
      INCLUDE("/usr/local/share/CMake/Modules/FindVTK.cmake")
      INCLUDE(${VTK_USE_FILE})
      SET(Included TRUE)
    ENDIF(NOT Included AND ${Package} MATCHES "^VTK.*4[.]4$")
    IF(NOT Included AND ${Package} MATCHES "^VTK.*5[.]0$")
      SET(VTK_DIR "/home/tester/VTK5.0/bin")
      INCLUDE("/usr/local/share/CMake/Modules/FindVTK.cmake")
      INCLUDE(${VTK_USE_FILE})
      SET(Included TRUE)
    ENDIF(NOT Included AND ${Package} MATCHES "^VTK.*5[.]0$")
    #If we get this far and we still haven't found a match, set it up so the
    #next block of code has a chance at finding the package.
    IF(NOT Included AND ${Package} MATCHES "^VTK")
      SET(Package "VTK")
    ENDIF(NOT Included AND ${Package} MATCHES "^VTK")
    IF(NOT Included AND ${Package} MATCHES "^ITK")
      SET(Package "ITK")
    ENDIF(NOT Included AND ${Package} MATCHES "^ITK")
  ENDIF(EXISTS "/home/tester/XMLTestParser.py")
  
  #no point in executing the code below if we already found the package we're
  #looking for.
  IF(NOT Included)
    FIND_PACKAGE(${Package})
    IF(${Package}_FOUND)
      #most packages define a Package_INCLUDE_DIR variable, so we'll check for
      #that first
      IF(${Package}_INCLUDE_DIR)
  INCLUDE(${${Package}_INCLUDE_DIR})
  SET(Included TRUE)
      ELSE(${Package}_INCLUDE_DIR)
  #VTK and ITK prefer to define a Package_USE_FILE, so we need to look for
  #that too
  IF(${Package}_USE_FILE)
    INCLUDE(${${Package}_USE_FILE})
    SET(Included TRUE)
  ENDIF(${Package}_USE_FILE)
      ENDIF(${Package}_INCLUDE_DIR)
      #then there's some other pesky packages that don't like to define standard
      #variables at all.  If you're trying to include one of those you might have
      #to do a little bit of investigating on your own.
      IF(NOT Included)
  MESSAGE(FATAL_ERROR "${Package} was found, but couldn't be included.\n
    Try including it manually out of the FOREACH in the CMakeLists file.\n
    Look at Find${Package}.cmake in the CMake module directory for clues
    on what you're supposed to include.  Good luck.")
      ENDIF(NOT Included)
    ENDIF(${Package}_FOUND)
  ENDIF(NOT Included)
ENDMACRO(LOADPACKAGE)

-------------- next part --------------
using namespace System;
#include "itkImageFileReader.h"

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
	typedef unsigned char PixelType;
	const unsigned int Dimension = 2;
	typedef itk::Image<PixelType, Dimension> ImageType;
	typedef itk::ImageFileReader<ImageType> ImageReader;
	ImageReader::Pointer reader = ImageReader::New();
	
	return 0;
}


More information about the Insight-users mailing list