#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[.]8[.]1$")
      SET(ITK_DIR "/home/tester/ITK-2-8-1/bin")
      INCLUDE("/usr/local/share/CMake/Modules/FindITK.cmake")
      INCLUDE(${ITK_USE_FILE})
      SET(Included TRUE)
    ENDIF(${Package} MATCHES "^ITK.*2[.]8[.]1$")
    IF(${Package} MATCHES "^ITK.*2[.]4[.]1$")
      SET(ITK_DIR "/home/tester/ITK-2-4-1/bin")
      INCLUDE("/usr/local/share/CMake/Modules/FindITK.cmake")
      INCLUDE(${ITK_USE_FILE})
      SET(Included TRUE)
    ENDIF(${Package} MATCHES "^ITK.*2[.]4[.]1$")
    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(NOT Included AND ${Package} MATCHES "KWWidgets")
      SET(KWWidgets_DIR "/home/tester/KWWidgets/bin")
      SET(Included TRUE)
    ENDIF(NOT Included AND ${Package} MATCHES "KWWidgets")
    #If we get this far and we still haven't found a match, set it up so the
    #tester will by default use the most current version of the toolkit
    IF(NOT Included AND ${Package} MATCHES "^VTK")
      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")
    IF(NOT Included AND ${Package} MATCHES "^ITK")
      SET(ITK_DIR "/home/tester/ITK2.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")
  #if we're not in the testing environment, and a specific version is being
  #specified, reset the variable to just be the name of the package
  ELSE(EXISTS "/home/tester/XMLTestParser.py")
    IF(${Package} MATCHES "^ITK[0-9]")
      SET(Package "ITK")
    ENDIF(${Package} MATCHES "^ITK[0-9]")
    IF(${Package} MATCHES "^VTK[0-9]")
      SET(Package "VTK")
    ENDIF(${Package} MATCHES "^VTK[0-9]")
  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)

