# This project is designed to be built outside the source tree.
# File generated by Simon K. Warfield simon.warfield@childrens.harvard.edu
# with support from NIH grant RR021885.
# Changed by wanlin zhu to work with itk.
project(gifticlib)

# install destinations
set(GIFTI_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin")
set(GIFTI_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
set(GIFTI_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/gifti")

if("${ITK_VERSION_MAJOR}" GREATER 0.0)
# ITK provides expat and zlib.
  include_directories(${ITKNIFTI_INCLUDE_DIRS})
  set(PACKAGE_PREFIX "ITK")
  set(EXPAT_LIBRARIES ${ITKExpat_LIBRARIES})
  set(ZLIB_LIBRARIES ITKznz)
  set(NIFTI_LIBRARIES ITKniftiio)
  set(ZLIB_FOUND 1)
  set(GIFTI_LIBRARY_PROPERTIES ${ITK_LIBRARY_PROPERTIES})

  set(GIFTI_INSTALL_EXPORT_NAME ${ITK3P_INSTALL_EXPORT_NAME})
  set(GIFTI_INSTALL_RUNTIME_DIR "${ITK3P_INSTALL_RUNTIME_DIR}")
  set(GIFTI_INSTALL_LIBRARY_DIR "${ITK3P_INSTALL_LIBRARY_DIR}")
  set(GIFTI_INSTALL_ARCHIVE_DIR "${ITK3P_INSTALL_ARCHIVE_DIR}")
  set(GIFTI_INSTALL_INCLUDE_DIR "${ITK3P_INSTALL_INCLUDE_DIR}")

  # Modern CMake install COMPONENTS is being considered in upstream GIFTI
  # Setting GIFTI_INSTALL_NO_DEVELOPMENT & GIFTI_INSTALL_NO_LIBRARIES to
  # FALSE to make explicit that the development and libraries
  # can not be skipped for installation.  Use the install COMPONENTS
  # features instead.
  set(GIFTI_INSTALL_NO_DEVELOPMENT FALSE)
  set(GIFTI_INSTALL_NO_LIBRARIES FALSE)

  add_definitions(-DITKZLIB)
else("${ITK_VERSION_MAJOR}" GREATER 0.0)
# Otherwise, get it from elsewhere.
  set(PACKAGE_PREFIX "")
  find_package(EXPAT)
  find_package(ZLIB)
  find_library(NIFTI_LIBRARY NAMES niftiio PATH /usr/local/nifti/lib )
  set(NIFTI_LIBRARIES ${NIFTI_LIBRARY} znz m)
  find_path(NIFTI_INCLUDE_DIR nifti1.h /usr/local/nifti/include/nifti
                                       /usr/include/nifti)
  get_filename_component(GIFTI_LINK_DIRECTORIES ${NIFTI_LIBRARY} PATH)
  link_directories(${GIFTI_LINK_DIRECTORIES})
  include_directories(${NIFTI_INCLUDE_DIR})
  # shared library API versioning -- NOT the same as the release version
  set(GIFTI_SHAREDLIB_VERSION "0.0.0")
  string( REGEX MATCH "^[0-9]+" GIFTI_SHAREDLIB_SOVERSION ${GIFTI_SHAREDLIB_VERSION})
  set(GIFTI_LIBRARY_PROPERTIES VERSION ${GIFTI_SHAREDLIB_VERSION} SOVERSION ${GIFTI_SHAREDLIB_SOVERSION})

  set(GIFTI_INSTALL_EXPORT_NAME GIFTI-targets)
  set(GIFTI_INSTALL_RUNTIME_DIR bin)
  set(GIFTI_INSTALL_LIBRARY_DIR lib)
  set(GIFTI_INSTALL_ARCHIVE_DIR lib)
  set(GIFTI_INSTALL_INCLUDE_DIR include/gifti)
  set(GIFTI_INSTALL_NO_DEVELOPMENT 0)
  set(GIFTI_INSTALL_NO_LIBRARIES 0)
endif("${ITK_VERSION_MAJOR}" GREATER 0.0)

if(ZLIB_FOUND)
  add_definitions(-DHAVE_ZLIB)
endif(ZLIB_FOUND)

set(GIFTIIO_SRC gifti_io.c gifti_xml.c)

set(GIFTICLIB_NAME ${PACKAGE_PREFIX}giftiio)
add_library(${GIFTICLIB_NAME} ${GIFTIIO_SRC})
target_link_libraries(${GIFTICLIB_NAME} ${EXPAT_LIBRARIES} ${ZLIB_LIBRARIES} ${NIFTI_LIBRARIES})
if(BUILD_SHARED_LIBS AND GIFTI_LIBRARY_PROPERTIES)
  set_target_properties(${GIFTICLIB_NAME} PROPERTIES ${GIFTI_LIBRARY_PROPERTIES})
endif(BUILD_SHARED_LIBS AND GIFTI_LIBRARY_PROPERTIES)

if(NOT GIFTI_INSTALL_NO_LIBRARIES)
  install(TARGETS ${GIFTICLIB_NAME}
  EXPORT ${GIFTI_INSTALL_EXPORT_NAME}
  RUNTIME DESTINATION ${GIFTI_INSTALL_RUNTIME_DIR} COMPONENT RuntimeLibraries
  LIBRARY DESTINATION ${GIFTI_INSTALL_LIBRARY_DIR} COMPONENT RuntimeLibraries
  ARCHIVE DESTINATION ${GIFTI_INSTALL_ARCHIVE_DIR} COMPONENT Development
  )
endif(NOT GIFTI_INSTALL_NO_LIBRARIES)

if(NOT GIFTI_INSTALL_NO_DEVELOPMENT)
  install(FILES gifti_io.h gifti_xml.h
  DESTINATION ${GIFTI_INSTALL_INCLUDE_DIR}
  COMPONENT Development)
endif(NOT GIFTI_INSTALL_NO_DEVELOPMENT)

if(CMAKE_COMPILER_IS_GNUCXX)
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing")
endif(CMAKE_COMPILER_IS_GNUCXX)
