project(ITKMINC)
set(ITKMINC_THIRD_PARTY 1)

# For itk_minc2.h
set(ITKMINC_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/src)
if(ITK_USE_SYSTEM_MINC)
  find_package(LIBMINC REQUIRED)

  set(ITKMINC_SYSTEM_INCLUDE_DIRS ${LIBMINC_INCLUDE_DIRS})
  set(ITKMINC_SYSTEM_LIBRARY_DIRS ${LIBMINC_LIBRARY_DIRS})
  set(ITKMINC_LIBRARIES "${LIBMINC_LIBRARIES}")
  set(ITKMINC_NO_SRC 1)
  # When this module is loaded by an app, load LIBMINC too
  set(
    ITKMINC_EXPORT_CODE_INSTALL
    "
set(LIBMINC_DIR \"${LIBMINC_DIR}\")
find_package(LIBMINC REQUIRED)
"
  )
  set(
    ITKMINC_EXPORT_CODE_BUILD
    "
if(NOT ITK_BINARY_DIR)
  set(CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/CMake\" \${CMAKE_MODULE_PATH})

  set(LIBMINC_DIR \"${LIBMINC_DIR}\")
  find_package(LIBMINC REQUIRED)
endif()
"
  )

  set(
    ITKMINC_INCLUDE_DIRS
    ${ITKMINC_BINARY_DIR}
    ${LIBMINC_INCLUDE_DIRS}
  )

  set(ITKMINC_LIBRARY_DIRS ${LIBMINC_LIBRARY_DIRS})
else()
  set(MINC_LIBRARY_PREFIX itk)
  set(MINC_LIBRARY_NAME ${MINC_LIBRARY_PREFIX}minc2)
  set(ITKMINC_LIBRARIES "${MINC_LIBRARY_NAME}")

  set(
    ITKMINC_INCLUDE_DIRS
    ${ITKMINC_BINARY_DIR}
    ${ITKMINC_SOURCE_DIR}
    ${ITKMINC_SOURCE_DIR}/src/libminc
    ${ITKMINC_SOURCE_DIR}/src/libminc/libcommon
    ${ITKMINC_SOURCE_DIR}/src/libminc/libsrc2
    ${ITKMINC_SOURCE_DIR}/src/libminc/volume_io/Include
  )

  if(NOT ITK_USE_SYSTEM_HDF5)
    set(
      ITKMINC_INCLUDE_DIRS
      ${ITKMINC_INCLUDE_DIRS}
      "${ITKHDF5_SOURCE_DIR}/src/itkhdf5"
      "${ITKHDF5_BINARY_DIR}/src/itkhdf5"
      "${ITKHDF5_SOURCE_DIR}/src/itkhdf5/src"
    )
  endif()
endif()

configure_file(src/itk_minc2.h.in ${ITKMINC_BINARY_DIR}/itk_minc2.h)

itk_module_impl()

install(
  FILES
    ${ITKMINC_BINARY_DIR}/itk_minc2.h
  DESTINATION ${ITKMINC_INSTALL_INCLUDE_DIR}
  COMPONENT Development
)
