#File Generated by Hans J. Johnson
#Please contact hans-johnson@uiowa.edu for making enhancments/corrections

include_directories(${NIFTI_SOURCE_DIR}/niftilib ${NIFTI_SOURCE_DIR}/znzlib ${NIFTI_SOURCE_DIR}/nifticdf)

add_executable(${PACKAGE_PREFIX}nifti_stats nifti_stats.c)
add_executable(${PACKAGE_PREFIX}nifti_tool nifti_tool.c)
add_executable(${PACKAGE_PREFIX}nifti1_test nifti1_test.c)
target_link_libraries( nifti_stats ${PACKAGE_PREFIX}niftiio ${PACKAGE_PREFIX}nifticdf)
target_link_libraries( nifti_tool  ${PACKAGE_PREFIX}niftiio)
target_link_libraries( nifti1_test ${PACKAGE_PREFIX}niftiio)

if(NOT NIFTI_INSTALL_NO_DEVELOPMENT)
  install(TARGETS ${PACKAGE_PREFIX}nifti_stats ${PACKAGE_PREFIX}nifti_tool ${PACKAGE_PREFIX}nifti1_test
    EXPORT ${NIFTI_INSTALL_EXPORT_NAME}
    RUNTIME DESTINATION ${NIFTI_INSTALL_RUNTIME_DIR} COMPONENT RuntimeLibraries
    LIBRARY DESTINATION ${NIFTI_INSTALL_LIBRARY_DIR} COMPONENT RuntimeLibraries
    ARCHIVE DESTINATION ${NIFTI_INSTALL_ARCHIVE_DIR} COMPONENT Development
    )
endif(NOT NIFTI_INSTALL_NO_DEVELOPMENT)

if(NOT NIFTI_INSTALL_NO_DEVELOPMENT)
  file(GLOB __files "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
  install(FILES ${__files}
    DESTINATION ${NIFTI_INSTALL_INCLUDE_DIR} COMPONENT Development)
endif(NOT NIFTI_INSTALL_NO_DEVELOPMENT)

add_test(${PACKAGE_PREFIX}nifti1_test_help ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti1_test)
add_test(${PACKAGE_PREFIX}nifti1_test_n1 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti1_test  -n1  ${NIFTI_SOURCE_DIR}/Testing/Data/ATestReferenceImageForReadingAndWriting.nii.gz ${NIFTI_BINARY_DIR}/utils/n1 )
add_test(${PACKAGE_PREFIX}nifti1_test_n2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti1_test  -n2  ${NIFTI_SOURCE_DIR}/Testing/Data/ATestReferenceImageForReadingAndWriting.nii.gz ${NIFTI_BINARY_DIR}/utils/n2 )
add_test(${PACKAGE_PREFIX}nifti1_test_a2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti1_test  -a2  ${NIFTI_SOURCE_DIR}/Testing/Data/ATestReferenceImageForReadingAndWriting.nii.gz ${NIFTI_BINARY_DIR}/utils/a2 )
add_test(${PACKAGE_PREFIX}nifti1_test_zn1 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti1_test -zn1 ${NIFTI_SOURCE_DIR}/Testing/Data/ATestReferenceImageForReadingAndWriting.nii.gz ${NIFTI_BINARY_DIR}/utils/zn1 )
add_test(${PACKAGE_PREFIX}nifti1_test_zn2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti1_test -zn2 ${NIFTI_SOURCE_DIR}/Testing/Data/ATestReferenceImageForReadingAndWriting.nii.gz ${NIFTI_BINARY_DIR}/utils/zn2 )
add_test(${PACKAGE_PREFIX}nifti1_test_za2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti1_test -za2 ${NIFTI_SOURCE_DIR}/Testing/Data/ATestReferenceImageForReadingAndWriting.nii.gz ${NIFTI_BINARY_DIR}/utils/za2 )

#The help screens always return 1; add_test(${PACKAGE_PREFIX}nifti_tool_help ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool)
add_test(${PACKAGE_PREFIX}nifti_tool_n1 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool  -disp_hdr -infile ${NIFTI_BINARY_DIR}/utils/n1 )
add_test(${PACKAGE_PREFIX}nifti_tool_n2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool  -disp_hdr -infile ${NIFTI_BINARY_DIR}/utils/n2 )
add_test(${PACKAGE_PREFIX}nifti_tool_a2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool  -disp_hdr -infile ${NIFTI_BINARY_DIR}/utils/a2 )
add_test(${PACKAGE_PREFIX}nifti_tool_zn1 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -disp_hdr -infile ${NIFTI_BINARY_DIR}/utils/zn1 )
add_test(${PACKAGE_PREFIX}nifti_tool_zn2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -disp_hdr -infile ${NIFTI_BINARY_DIR}/utils/zn2 )
add_test(${PACKAGE_PREFIX}nifti_tool_za2 ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -disp_hdr -infile ${NIFTI_BINARY_DIR}/utils/za2 )
add_test(${PACKAGE_PREFIX}nifti_tool_diff_hdr ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -diff_hdr -infile ${NIFTI_BINARY_DIR}/utils/zn1 ${NIFTI_BINARY_DIR}/utils/zn1 )
add_test(${PACKAGE_PREFIX}nifti_tool_diff_nims ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -diff_nim -infile ${NIFTI_BINARY_DIR}/utils/zn1 ${NIFTI_BINARY_DIR}/utils/zn1 )

add_test(${PACKAGE_PREFIX}nifti_tool_copy_brick_list ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -cbl -prefix cbl_zn1.nii -infile ${NIFTI_BINARY_DIR}/utils/zn1.nii.gz[0,1])
#add_test(${PACKAGE_PREFIX}nifti_tool_copy_collapsed_image /bin/sh ${NIFTI_SOURCE_DIR}/utils/rmthenrun cci_zn1.nii ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -cci 2 2 2 -1 -1 -1 -1 -prefix cci_zn1.nii -infile ${NIFTI_BINARY_DIR}/utils/zn1.nii.gz )
add_test(${PACKAGE_PREFIX}nifti_tool_disp_ci ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -disp_ci 2 2 2 -1 0 0 0  -infile ${NIFTI_BINARY_DIR}/utils/zn1.nii.gz )
add_test(${PACKAGE_PREFIX}nifti_tool_disp_ts ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -disp_ts 2 2 2 -infile ${NIFTI_BINARY_DIR}/utils/zn1.nii.gz )
add_test(${PACKAGE_PREFIX}nifti_tool_strip_extras ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -strip_extras -infile ${NIFTI_BINARY_DIR}/utils/zn1.nii.gz )

# This test needs a file that has extensions to remove
#add_test(${PACKAGE_PREFIX}nifti_tool_rm_ext /bin/sh ${NIFTI_SOURCE_DIR}/utils/rmthenrun rm_ext.nii ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -rm_ext ALL -prefix rm_ext.nii -infile ${NIFTI_BINARY_DIR}/utils/zn1.nii.gz )

add_test(${PACKAGE_PREFIX}nifti_tool_check_hdr ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -check_hdr -infile ${NIFTI_BINARY_DIR}/utils/za2 )
add_test(${PACKAGE_PREFIX}nifti_tool_check_nim ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_tool -check_nim -infile ${NIFTI_BINARY_DIR}/utils/za2 )

foreach(DISTRIBUTION CORREL TTEST FTEST ZSCORE CHISQ BETA BINOM GAMMA POISSON NORMAL FTEST_NONC CHISQ_NONC LOGISTIC LAPLACE UNIFORM TTEST_NONC WEIBULL CHI INVGAUSS EXTVAL PVAL LOGPVAL LOG10PVAL )
    add_test(${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats 0:4:1 ${DISTRIBUTION})
    add_test(q${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -q 0:4:1 ${DISTRIBUTION})
    add_test(q1${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -q 0:4:1 ${DISTRIBUTION} 1 1 1)
    add_test(d${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -d 0:4:1 ${DISTRIBUTION})
    add_test(d1${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -d 0:4:1 ${DISTRIBUTION} 1 1 1)
    add_test(1${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -1 0:4:1 ${DISTRIBUTION})
    add_test(11${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -1 0:4:1 ${DISTRIBUTION} 1 1 1)
    add_test(z${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -z 0:4:1 ${DISTRIBUTION})
    add_test(z1${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -z 0:4:1 ${DISTRIBUTION} 1 1 1)
    add_test(h${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -h 0:4:1 ${DISTRIBUTION})
    add_test(h1${PACKAGE_PREFIX}nifti_stats_${DISTRIBUTION}_test ${NIFTI_BINARY_DIR}/utils/${PACKAGE_PREFIX}nifti_stats -h 0:4:1 ${DISTRIBUTION} 1 1 1)
endforeach(DISTRIBUTION)

