PROJECT(VMTK)

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
IF(COMMAND cmake_policy)
  cmake_policy(SET CMP0003 NEW)
ENDIF(COMMAND cmake_policy)

# vmtk versions number
SET(VMTK_VERSION_MAJOR 0)
SET(VMTK_VERSION_MINOR 9)
SET(VMTK_VERSION_PATCH 0)
SET(VMTK_VERSION 
    "${VMTK_VERSION_MAJOR}.${VMTK_VERSION_MINOR}.${VMTK_VERSION_PATCH}")

# Append the library version information to the library target properties.
OPTION(VMTK_WITH_LIBRARY_VERSION "Build with library version information" OFF)
IF(VMTK_WITH_LIBRARY_VERSION)
  # This setting of SOVERSION assumes that any API change
  # will increment either the minor or major version number of vmtk.
  SET(VMTK_LIBRARY_PROPERTIES
      VERSION "${VMTK_VERSION}"
      SOVERSION "${VMTK_VERSION_MAJOR}.${VMTK_VERSION_MINOR}"
     )
ENDIF(VMTK_WITH_LIBRARY_VERSION)

SUBDIRS(
  PypeS
  vtkVmtk
  vmtkScripts
  )

OPTION(VMTK_MINIMAL_INSTALL "Do not install individual scripts, only vmtk.py" OFF)

SET(LIBRARY_OUTPUT_PATH ${VMTK_BINARY_DIR}/bin CACHE PATH
    "Single output directory for building all libraries.")
SET(EXECUTABLE_OUTPUT_PATH ${VMTK_BINARY_DIR}/bin CACHE PATH
    "Single output directory for building all executables.")
MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)

SET(VMTK_SRCS
   vmtk.py
   vmtkenv.py
   )

SET(VMTK_MODULE_SRCS
   __init__.py
   )

IF(NOT VMTK_INSTALL_BIN_DIR)
  #SET(VMTK_INSTALL_BIN_DIR ${VMTK_INSTALL_ROOT}/bin)
  SET(VMTK_INSTALL_BIN_DIR bin)
ENDIF(NOT VMTK_INSTALL_BIN_DIR)

IF(NOT VMTK_MODULE_INSTALL_LIB_DIR)
  #SET(VMTK_MODULE_INSTALL_LIB_DIR ${VMTK_SCRIPTS_INSTALL_ROOT}/lib/vmtk/vmtk)
  SET(VMTK_MODULE_INSTALL_LIB_DIR lib/vmtk/vmtk)
ENDIF(NOT VMTK_MODULE_INSTALL_LIB_DIR)

FOREACH (SCRIPT_FILE ${VMTK_SRCS} ${VMTK_MODULE_SRCS})
  CONFIGURE_FILE(${VMTK_SOURCE_DIR}/${SCRIPT_FILE} ${VMTK_BINARY_DIR}/${SCRIPT_FILE} COPYONLY)
ENDFOREACH (SCRIPT_FILE)

#INSTALL_FILES(${VMTK_MODULE_INSTALL_LIB_DIR} .py ${VMTK_MODULE_SRCS})
INSTALL(FILES ${VMTK_MODULE_SRCS} DESTINATION ${VMTK_MODULE_INSTALL_LIB_DIR})

IF (NOT WIN32)

SET (STRIPPED_SCRIPTS_SRCS )
  
  FOREACH (SCRIPT_FILE  ${VMTK_SRCS})
    CONFIGURE_FILE(${VMTK_SOURCE_DIR}/${SCRIPT_FILE} ${VMTK_BINARY_DIR}/${SCRIPT_FILE} COPYONLY)
    STRING(REGEX REPLACE ".py" "" STRIPPED_SCRIPT_FILE ${SCRIPT_FILE})
    CONFIGURE_FILE(${VMTK_SOURCE_DIR}/${SCRIPT_FILE} ${VMTK_BINARY_DIR}/${STRIPPED_SCRIPT_FILE} COPYONLY)
    SET (STRIPPED_SCRIPTS_SRCS ${STRIPPED_SCRIPTS_SRCS} ${VMTK_BINARY_DIR}/${STRIPPED_SCRIPT_FILE})
  ENDFOREACH (SCRIPT_FILE)

  #INSTALL_PROGRAMS(${VMTK_INSTALL_BIN_DIR} FILES ${STRIPPED_SCRIPTS_SRCS})
  INSTALL(PROGRAMS ${STRIPPED_SCRIPTS_SRCS} DESTINATION ${VMTK_INSTALL_BIN_DIR})

ELSE (NOT WIN32)

  FOREACH (SCRIPT_FILE  ${VMTK_SRCS})
    CONFIGURE_FILE(${VMTK_SOURCE_DIR}/${SCRIPT_FILE} ${VMTK_BINARY_DIR}/${SCRIPT_FILE} COPYONLY)
    STRING(REGEX REPLACE ".py" "-exe.py" STRIPPED_SCRIPT_FILE ${SCRIPT_FILE})
    CONFIGURE_FILE(${VMTK_SOURCE_DIR}/${SCRIPT_FILE} ${VMTK_BINARY_DIR}/${STRIPPED_SCRIPT_FILE} COPYONLY)
    SET (STRIPPED_SCRIPTS_SRCS ${STRIPPED_SCRIPTS_SRCS} ${VMTK_BINARY_DIR}/${STRIPPED_SCRIPT_FILE})
  ENDFOREACH (SCRIPT_FILE)

  #INSTALL_PROGRAMS(${VMTK_INSTALL_BIN_DIR} FILES ${STRIPPED_SCRIPTS_SRCS})
  INSTALL(PROGRAMS ${STRIPPED_SCRIPTS_SRCS} DESTINATION ${VMTK_INSTALL_BIN_DIR})

ENDIF (NOT WIN32)

INCLUDE(InstallRequiredSystemLibraries)
SET(CPACK_PACKAGE_NAME vmtk)
SET(CPACK_GENERATOR TGZ)
SET(CPACK_SOURCE_GENERATOR TGZ)
SET(CPACK_RESOURCE_FILE_LICENSE ${VMTK_SOURCE_DIR}/Copyright.txt)
SET(CPACK_PACKAGE_VERSION_MAJOR ${VMTK_VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${VMTK_VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${VMTK_VERSION_PATCH})
SET(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${VMTK_BINARY_DIR};VMTK;ALL;/")
IF(EXISTS "${VTK_DIR}/CMakeCache.txt")
  SET(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${VTK_DIR};VTK;ALL;/")
ENDIF(EXISTS "${VTK_DIR}/CMakeCache.txt")
IF(EXISTS "${ITK_DIR}/CMakeCache.txt")
  SET(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ITK_DIR};ITK;ALL;/")
ENDIF(EXISTS "${ITK_DIR}/CMakeCache.txt")
INCLUDE(CPack)

# Export Build settings and library dependencies
  INCLUDE(CMakeExportBuildSettings)
  
  CMAKE_EXPORT_BUILD_SETTINGS(
    ${VMTK_BINARY_DIR}/VMTKBuildSettings.cmake
  )
  
  EXPORT_LIBRARY_DEPENDENCIES(
    ${VMTK_BINARY_DIR}/VMTKLibraryDepends.cmake
  )

  CONFIGURE_FILE(
    ${VMTK_SOURCE_DIR}/CMakeInput/VMTKConfig.cmake.in
    ${VMTK_BINARY_DIR}/VMTKConfig.cmake
  @ONLY IMMEDIATE
  )
  
  CONFIGURE_FILE(
    ${VMTK_SOURCE_DIR}/CMakeInput/VMTKUse.cmake.in
    ${VMTK_BINARY_DIR}/VMTKUse.cmake
  @ONLY IMMEDIATE
  )
 
