c_nifti 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +37 -0
  3. data/.rspec +2 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/COPYING +621 -0
  7. data/COPYING.lesser +166 -0
  8. data/Gemfile +4 -0
  9. data/README.md +117 -0
  10. data/Rakefile +6 -0
  11. data/c_nifti.gemspec +31 -0
  12. data/ext/nifticlib/extconf.rb +30 -0
  13. data/ext/nifticlib/include/nifti_image.h +2 -0
  14. data/ext/nifticlib/include/nifti_image_converters.h +3 -0
  15. data/ext/nifticlib/include/nifti_image_dimensions.h +1 -0
  16. data/ext/nifticlib/include/nifti_image_intents.h +1 -0
  17. data/ext/nifticlib/include/nifti_image_metadata.h +1 -0
  18. data/ext/nifticlib/include/nifti_image_quaternions.h +1 -0
  19. data/ext/nifticlib/include/nifti_image_spacings.h +1 -0
  20. data/ext/nifticlib/include/nifti_image_timings.h +1 -0
  21. data/ext/nifticlib/include/nifti_image_transforms.h +1 -0
  22. data/ext/nifticlib/nifti_image.c +169 -0
  23. data/ext/nifticlib/nifti_image_converters.c +65 -0
  24. data/ext/nifticlib/nifti_image_dimensions.c +113 -0
  25. data/ext/nifticlib/nifti_image_intents.c +45 -0
  26. data/ext/nifticlib/nifti_image_metadata.c +133 -0
  27. data/ext/nifticlib/nifti_image_quaternions.c +59 -0
  28. data/ext/nifticlib/nifti_image_spacings.c +87 -0
  29. data/ext/nifticlib/nifti_image_timings.c +66 -0
  30. data/ext/nifticlib/nifti_image_transforms.c +38 -0
  31. data/ext/nifticlib/nifticlib-2.0.0/CMakeLists.txt +140 -0
  32. data/ext/nifticlib/nifticlib-2.0.0/CTestConfig.cmake +13 -0
  33. data/ext/nifticlib/nifticlib-2.0.0/LICENSE +9 -0
  34. data/ext/nifticlib/nifticlib-2.0.0/Makefile +265 -0
  35. data/ext/nifticlib/nifticlib-2.0.0/Makefile.cross_mingw32 +94 -0
  36. data/ext/nifticlib/nifticlib-2.0.0/README +79 -0
  37. data/ext/nifticlib/nifticlib-2.0.0/Testing/CMakeLists.txt +7 -0
  38. data/ext/nifticlib/nifticlib-2.0.0/Testing/Data/ATestReferenceImageForReadingAndWriting.nii.gz +0 -0
  39. data/ext/nifticlib/nifticlib-2.0.0/Testing/Makefile +21 -0
  40. data/ext/nifticlib/nifticlib-2.0.0/Testing/README_regress +50 -0
  41. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/@show.diffs +33 -0
  42. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/@test +80 -0
  43. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/CMakeLists.txt +47 -0
  44. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/bricks_test.sh +32 -0
  45. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/comment_test.sh +65 -0
  46. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/dci_test.sh +46 -0
  47. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/dsets_test.sh +61 -0
  48. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/dts_test.sh +75 -0
  49. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/fetch_data_test.sh +45 -0
  50. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/mod_header_test.sh +60 -0
  51. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/cmake_testscripts/newfiles_test.sh +36 -0
  52. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c01.versions +10 -0
  53. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c02.nt.help +5 -0
  54. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c03.hist +5 -0
  55. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c04.disp.anat0.info +7 -0
  56. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c05.mod.hdr +9 -0
  57. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c06.add.ext +22 -0
  58. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c07.cbl.4bricks +8 -0
  59. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c08.dts.19.36.11 +4 -0
  60. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c09.dts4.compare +9 -0
  61. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c10.dci.ts4 +15 -0
  62. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c10a.dci.run.210 +16 -0
  63. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c11.add.comment +8 -0
  64. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c12.check.comments +7 -0
  65. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c13.check.hdrs +5 -0
  66. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c14.make.dsets +21 -0
  67. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c15.new.files +21 -0
  68. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c16.rand.swap +35 -0
  69. data/ext/nifticlib/nifticlib-2.0.0/Testing/nifti_regress_test/commands/c17.file.case +34 -0
  70. data/ext/nifticlib/nifticlib-2.0.0/Testing/niftilib/CMakeLists.txt +15 -0
  71. data/ext/nifticlib/nifticlib-2.0.0/Testing/niftilib/nifti_test.c +690 -0
  72. data/ext/nifticlib/nifticlib-2.0.0/Testing/niftilib/nifti_test2.c +32 -0
  73. data/ext/nifticlib/nifticlib-2.0.0/Updates.txt +110 -0
  74. data/ext/nifticlib/nifticlib-2.0.0/bin/.gitkeep +0 -0
  75. data/ext/nifticlib/nifticlib-2.0.0/docs/Doxy_nifti.txt +123 -0
  76. data/ext/nifticlib/nifticlib-2.0.0/docs/Doxyfile.ORIG +746 -0
  77. data/ext/nifticlib/nifticlib-2.0.0/examples/CMakeLists.txt +15 -0
  78. data/ext/nifticlib/nifticlib-2.0.0/examples/Makefile +48 -0
  79. data/ext/nifticlib/nifticlib-2.0.0/examples/clib_01_read_write.c +94 -0
  80. data/ext/nifticlib/nifticlib-2.0.0/examples/fsl_api_driver.c +142 -0
  81. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/CMakeLists.txt +32 -0
  82. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/Makefile +29 -0
  83. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/fslio.c +2426 -0
  84. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/fslio.tcl +83 -0
  85. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/imcp +65 -0
  86. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/imglob +59 -0
  87. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/imln +37 -0
  88. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/immv +64 -0
  89. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/imrm +29 -0
  90. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/imtest +53 -0
  91. data/ext/nifticlib/nifticlib-2.0.0/fsliolib/remove_ext +33 -0
  92. data/ext/nifticlib/nifticlib-2.0.0/include/.gitkeep +0 -0
  93. data/ext/nifticlib/nifticlib-2.0.0/nifticdf/CMakeLists.txt +28 -0
  94. data/ext/nifticlib/nifticlib-2.0.0/nifticdf/Makefile +28 -0
  95. data/ext/nifticlib/nifticlib-2.0.0/nifticdf/nifticdf.c +11107 -0
  96. data/ext/nifticlib/nifticlib-2.0.0/niftilib/CMakeLists.txt +33 -0
  97. data/ext/nifticlib/nifticlib-2.0.0/niftilib/Makefile +31 -0
  98. data/ext/nifticlib/nifticlib-2.0.0/niftilib/nifti1_io.c +7509 -0
  99. data/ext/nifticlib/nifticlib-2.0.0/packaging/DevPackage.template +18 -0
  100. data/ext/nifticlib/nifticlib-2.0.0/packaging/nifticlib.spec +62 -0
  101. data/ext/nifticlib/nifticlib-2.0.0/real_easy/nifti1_read_write.c +361 -0
  102. data/ext/nifticlib/nifticlib-2.0.0/utils/CMakeLists.txt +73 -0
  103. data/ext/nifticlib/nifticlib-2.0.0/utils/Makefile +55 -0
  104. data/ext/nifticlib/nifticlib-2.0.0/utils/nifti1_test.c +95 -0
  105. data/ext/nifticlib/nifticlib-2.0.0/utils/nifti_stats.c +95 -0
  106. data/ext/nifticlib/nifticlib-2.0.0/utils/nifti_tool.c +4193 -0
  107. data/ext/nifticlib/nifticlib-2.0.0/utils/nifti_tool.h +163 -0
  108. data/ext/nifticlib/nifticlib-2.0.0/znzlib/CMakeLists.txt +31 -0
  109. data/ext/nifticlib/nifticlib-2.0.0/znzlib/Makefile +33 -0
  110. data/ext/nifticlib/nifticlib-2.0.0/znzlib/znzlib.c +322 -0
  111. data/ext/nifticlib/nifticlib.c +107 -0
  112. data/ext/nifticlib/patches/nifticlib_fpic.patch +13 -0
  113. data/features/read_modify_write.feature +11 -0
  114. data/features/step_definitions/nifti_image_steps.rb +16 -0
  115. data/features/support/env.rb +14 -0
  116. data/features/support/fixtures/sample.nii.gz +0 -0
  117. data/lib/c_nifti.rb +9 -0
  118. data/lib/c_nifti/data.rb +70 -0
  119. data/lib/c_nifti/header.rb +16 -0
  120. data/lib/c_nifti/header_element.rb +13 -0
  121. data/lib/c_nifti/header_element/datatype.rb +49 -0
  122. data/lib/c_nifti/header_element/datatype/base.rb +9 -0
  123. data/lib/c_nifti/header_element/datatype/binary.rb +11 -0
  124. data/lib/c_nifti/header_element/datatype/double.rb +11 -0
  125. data/lib/c_nifti/header_element/datatype/float.rb +11 -0
  126. data/lib/c_nifti/header_element/datatype/long_double.rb +11 -0
  127. data/lib/c_nifti/header_element/datatype/long_long.rb +11 -0
  128. data/lib/c_nifti/header_element/datatype/signed_char.rb +11 -0
  129. data/lib/c_nifti/header_element/datatype/signed_int.rb +11 -0
  130. data/lib/c_nifti/header_element/datatype/signed_short.rb +11 -0
  131. data/lib/c_nifti/header_element/datatype/unsigned_char.rb +11 -0
  132. data/lib/c_nifti/header_element/datatype/unsigned_int.rb +11 -0
  133. data/lib/c_nifti/header_element/datatype/unsigned_long_long.rb +11 -0
  134. data/lib/c_nifti/header_element/datatype/unsigned_short.rb +11 -0
  135. data/lib/c_nifti/header_element/dimensions.rb +53 -0
  136. data/lib/c_nifti/header_element/intents.rb +25 -0
  137. data/lib/c_nifti/header_element/metadata.rb +49 -0
  138. data/lib/c_nifti/header_element/miscellaneous.rb +25 -0
  139. data/lib/c_nifti/header_element/quaternions.rb +33 -0
  140. data/lib/c_nifti/header_element/spacings.rb +45 -0
  141. data/lib/c_nifti/header_element/timings.rb +37 -0
  142. data/lib/c_nifti/header_element/transforms.rb +21 -0
  143. data/lib/c_nifti/image.rb +31 -0
  144. data/lib/c_nifti/version.rb +3 -0
  145. data/lib/nifticlib.rb +1 -0
  146. data/spec/data_spec.rb +112 -0
  147. data/spec/factories/nifti_images.rb +9 -0
  148. data/spec/header_element/datatype/base_spec.rb +9 -0
  149. data/spec/header_element/datatype/binary_spec.rb +9 -0
  150. data/spec/header_element/datatype/double_spec.rb +9 -0
  151. data/spec/header_element/datatype/float_spec.rb +9 -0
  152. data/spec/header_element/datatype/long_double_spec.rb +9 -0
  153. data/spec/header_element/datatype/long_long_spec.rb +9 -0
  154. data/spec/header_element/datatype/signed_char_spec.rb +9 -0
  155. data/spec/header_element/datatype/signed_int_spec.rb +9 -0
  156. data/spec/header_element/datatype/signed_short_spec.rb +9 -0
  157. data/spec/header_element/datatype/unsigned_char_spec.rb +9 -0
  158. data/spec/header_element/datatype/unsigned_int_spec.rb +9 -0
  159. data/spec/header_element/datatype/unsigned_long_long.rb +9 -0
  160. data/spec/header_element/datatype/unsigned_short_spec.rb +9 -0
  161. data/spec/header_element/datatype_spec.rb +109 -0
  162. data/spec/header_element/dimensions_spec.rb +105 -0
  163. data/spec/header_element/intents_spec.rb +48 -0
  164. data/spec/header_element/metadata_spec.rb +96 -0
  165. data/spec/header_element/miscellaneous_spec.rb +48 -0
  166. data/spec/header_element/quaternions_spec.rb +64 -0
  167. data/spec/header_element/spacings_spec.rb +88 -0
  168. data/spec/header_element/timings_spec.rb +72 -0
  169. data/spec/header_element/transforms_spec.rb +64 -0
  170. data/spec/image_spec.rb +39 -0
  171. data/spec/spec_helper.rb +85 -0
  172. metadata +363 -0
@@ -0,0 +1,66 @@
1
+ #include <ruby.h> // Ruby C extensions
2
+ #include <nifti1_io.h> // standard NIfTI C library
3
+
4
+ #include <nifti_image_converters.h>
5
+ #include <nifti_image_timings.h>
6
+
7
+ VALUE nifti_image_freq_dim(VALUE self){
8
+ nifti_image *img = to_nifti_image(self);
9
+
10
+ return INT2NUM(img->freq_dim);
11
+ }
12
+
13
+ VALUE nifti_image_phase_dim(VALUE self){
14
+ nifti_image *img = to_nifti_image(self);
15
+
16
+ return INT2NUM(img->phase_dim);
17
+ }
18
+
19
+ VALUE nifti_image_slice_dim(VALUE self){
20
+ nifti_image *img = to_nifti_image(self);
21
+
22
+ return INT2NUM(img->slice_dim);
23
+ }
24
+
25
+ VALUE nifti_image_slice_code(VALUE self){
26
+ nifti_image *img = to_nifti_image(self);
27
+
28
+ return INT2NUM(img->slice_code);
29
+ }
30
+
31
+ VALUE nifti_image_slice_start(VALUE self){
32
+ nifti_image *img = to_nifti_image(self);
33
+
34
+ return INT2NUM(img->slice_start);
35
+ }
36
+
37
+ VALUE nifti_image_slice_end(VALUE self){
38
+ nifti_image *img = to_nifti_image(self);
39
+
40
+ return INT2NUM(img->slice_end);
41
+ }
42
+
43
+ VALUE nifti_image_slice_duration(VALUE self){
44
+ nifti_image *img = to_nifti_image(self);
45
+
46
+ return rb_float_new((double) img->slice_duration);
47
+ }
48
+
49
+ VALUE nifti_image_toffset(VALUE self){
50
+ nifti_image *img = to_nifti_image(self);
51
+
52
+ return rb_float_new((double) img->toffset);
53
+ }
54
+
55
+ VALUE nifti_image_timings_init(VALUE klass){
56
+ rb_define_method(klass, "freq_dim", nifti_image_freq_dim, 0);
57
+ rb_define_method(klass, "phase_dim", nifti_image_phase_dim, 0);
58
+ rb_define_method(klass, "slice_dim", nifti_image_slice_dim, 0);
59
+ rb_define_method(klass, "slice_code", nifti_image_slice_code, 0);
60
+ rb_define_method(klass, "slice_start", nifti_image_slice_start, 0);
61
+ rb_define_method(klass, "slice_end", nifti_image_slice_end, 0);
62
+ rb_define_method(klass, "slice_duration", nifti_image_slice_duration, 0);
63
+ rb_define_method(klass, "toffset", nifti_image_toffset, 0);
64
+
65
+ return klass;
66
+ }
@@ -0,0 +1,38 @@
1
+ #include <ruby.h> // Ruby C extensions
2
+ #include <nifti1_io.h> // standard NIfTI C library
3
+
4
+ #include <nifti_image_converters.h>
5
+ #include <nifti_image_transforms.h>
6
+
7
+ VALUE nifti_image_qto_xyz(VALUE self){
8
+ nifti_image *img = to_nifti_image(self);
9
+
10
+ return mat44_to_rb_array(img->qto_xyz);
11
+ }
12
+
13
+ VALUE nifti_image_qto_ijk(VALUE self){
14
+ nifti_image *img = to_nifti_image(self);
15
+
16
+ return mat44_to_rb_array(img->qto_ijk);
17
+ }
18
+
19
+ VALUE nifti_image_sto_xyz(VALUE self){
20
+ nifti_image *img = to_nifti_image(self);
21
+
22
+ return mat44_to_rb_array(img->sto_xyz);
23
+ }
24
+
25
+ VALUE nifti_image_sto_ijk(VALUE self){
26
+ nifti_image *img = to_nifti_image(self);
27
+
28
+ return mat44_to_rb_array(img->sto_ijk);
29
+ }
30
+
31
+ VALUE nifti_image_transforms_init(VALUE klass){
32
+ rb_define_method(klass, "qto_xyz", nifti_image_qto_xyz, 0);
33
+ rb_define_method(klass, "qto_ijk", nifti_image_qto_ijk, 0);
34
+ rb_define_method(klass, "sto_xyz", nifti_image_sto_xyz, 0);
35
+ rb_define_method(klass, "sto_ijk", nifti_image_sto_ijk, 0);
36
+
37
+ return klass;
38
+ }
@@ -0,0 +1,140 @@
1
+ #File Generated by Hans J. Johnson
2
+ #Please contact hans-johnson@uiowa.edu for making enhancments/corrections
3
+ PROJECT(NIFTI)
4
+ # Configure Dart testing support.
5
+ INCLUDE(${CMAKE_ROOT}/Modules/Dart.cmake)
6
+
7
+ SUBDIRS(znzlib niftilib)
8
+ ADD_DEFINITIONS(-DHAVE_ZLIB)
9
+
10
+ # add option to build shared libraries. The default is OFF to maintain the
11
+ # current build behavior
12
+ OPTION ( BUILD_SHARED_LIBS "Toggle building shared libraries")
13
+
14
+ # Michael Hanke 2007-04-25 Note:
15
+ # 'Utilities' is merged into the include install path to be able to easily
16
+ # install into any other path if necessary. For the same reason lib, bin and
17
+ # include dir for standalone builds are only set if not yet defined.
18
+
19
+ ### USE AS PART OF ITK
20
+ IF("${ITK_VERSION_MAJOR}" GREATER 0.0)
21
+ # MESSAGE(STATUS "---------------------ITK ZLIB ${ITK_ZLIB_LIBRARIES}")
22
+ ADD_DEFINITIONS(-DHAVE_ZLIB)
23
+ ADD_DEFINITIONS(-DITKZLIB)
24
+ SET(PACKAGE_PREFIX "ITK")
25
+ SET(NIFTI_LIBRARY_PROPERTIES ${ITK_LIBRARY_PROPERTIES})
26
+ SET(NIFTI_INSTALL_BIN_DIR "${ITK_INSTALL_BIN_DIR_CM24}")
27
+ SET(NIFTI_INSTALL_LIB_DIR "${ITK_INSTALL_LIB_DIR_CM24}")
28
+ SET(NIFTI_INSTALL_INCLUDE_DIR "${ITK_INSTALL_INCLUDE_DIR_CM24}/Utilities")
29
+ SET(NIFTI_ZLIB_LIBRARIES ${ITK_ZLIB_LIBRARIES})
30
+ SET(NIFTI_INSTALL_NO_DEVELOPMENT ${ITK_INSTALL_NO_DEVELOPMENT})
31
+ SET(NIFTI_INSTALL_NO_LIBRARIES ${ITK_INSTALL_NO_LIBRARIES})
32
+
33
+ ELSE("${ITK_VERSION_MAJOR}" GREATER 0.0)
34
+ SET(CPACK_PACKAGE_VERSION_MAJOR "2")
35
+ SET(CPACK_PACKAGE_VERSION_MINOR "0")
36
+ SET(CPACK_PACKAGE_VERSION_PATCH "0")
37
+ ### USE AS STAND ALONE PACKAGE
38
+ FIND_PACKAGE(ZLIB)
39
+ # MESSAGE(STATUS "---------------------SYSTEM ZLIB ${ZLIB_LIBRARY}")
40
+ SET(PACKAGE_PREFIX "")
41
+ # Set default shared library version
42
+ # This library version will be applied to all libraries in the package
43
+ # unless it is not explicitely for a certain lib.
44
+ SET(NIFTI_SHAREDLIB_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} )
45
+ STRING( REGEX MATCH "^[0-9]+" NIFTI_SHAREDLIB_SOVERSION ${NIFTI_SHAREDLIB_VERSION})
46
+ SET(NIFTI_LIBRARY_PROPERTIES VERSION ${NIFTI_SHAREDLIB_VERSION} SOVERSION ${NIFTI_SHAREDLIB_SOVERSION})
47
+
48
+ SET(NIFTI_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin")
49
+ SET(NIFTI_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
50
+ SET(NIFTI_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/nifti")
51
+ SET(NIFTI_ZLIB_LIBRARIES ${ZLIB_LIBRARIES})
52
+ SET(NIFTI_INSTALL_NO_DEVELOPMENT 0)
53
+ SET(NIFTI_INSTALL_NO_LIBRARIES 0)
54
+
55
+ #Needs an if clause and more work before testing can take place.
56
+ SUBDIRS(Testing)
57
+ SUBDIRS(nifticdf utils)
58
+
59
+ OPTION(USE_FSL_CODE "If OFF, The copyright of this code is questionable for inclusion with nifti." OFF)
60
+ MARK_AS_ADVANCED(USE_FSL_CODE)
61
+
62
+ # the order of subdirs is important! fsliolob has to preceed examples
63
+ # as otherwise FSLIOLIB_SOURCE_DIR is undefined and hence the examples
64
+ # will fail to compile
65
+ IF(USE_FSL_CODE)
66
+ SUBDIRS(fsliolib)
67
+ SUBDIRS(examples)
68
+ ENDIF(USE_FSL_CODE)
69
+ ENABLE_TESTING()
70
+ INCLUDE(Dart)
71
+
72
+ ####################################
73
+ ### Define information necessary for packaging with CPACK (http://www.cmake.org/Wiki/CMake:Packaging_With_CPack)
74
+ ### The last section is concerned with installing the binaries and making distributions.
75
+ INCLUDE(InstallRequiredSystemLibraries)
76
+
77
+ SET(CPACK_PACKAGE_NAME "NIFTI")
78
+
79
+ SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-dev")
80
+ SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Niftilib is a set of i/o libraries for reading and writing files in the nifti-1 data format. nifti-1 is a binary file format for storing medical image data, e.g. magnetic resonance image (MRI) and functional MRI (fMRI) brain images.")
81
+ SET(CPACK_PACKAGE_DESCRIPTION_FILE "${NIFTI_SOURCE_DIR}/README")
82
+ #SET(CPACK_RESOURCE_FILE_LICENSE "${NIFTI_SOURCE_DIR}/Copyright.txt")
83
+ SET(CPACK_RESOURCE_FILE_LICENSE "${NIFTI_SOURCE_DIR}/README")
84
+
85
+ SET(CPACK_PACKAGE_DEFAULT_LOCATION "/opt/${CPACK_PACKAGE_NAME}")
86
+ #SET(CPACK_PACKAGE_INSTALL_DIRECTORY "NIFTI ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
87
+ SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${NIFTI}")
88
+ SET(CPACK_PACKAGING_INSTALL_PREFIX "/")
89
+ SET(CPACK_SET_DESTDIR ON)
90
+
91
+ SET(CPACK_PACKAGE_VENDOR "NIFTI DFWG")
92
+
93
+ SET(CPACK_SOURCE_GENERATOR "TGZ;TZ")
94
+ #SET(CPACK_SOURCE_IGNORE_FILES "/CVS/;/\\.svn/;\\.swp$;\\.#;/#;\\.*~")
95
+ SET(CPACK_SOURCE_IGNORE_FILES "")
96
+ SET(CPACK_PACKAGE_EXECUTABLES "NIFTI";"A program for registering medical
97
+ images with mutual information.")
98
+
99
+ IF(WIN32 AND NOT UNIX)
100
+ SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
101
+ "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
102
+ # There is a bug in NSI that does not handle full unix paths properly. Make
103
+ # sure there is at least one set of four (4) backlasshes.
104
+ SET(CPACK_PACKAGE_ICON
105
+ "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp")
106
+ SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe")
107
+ SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} My Famous
108
+ Project")
109
+ SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.nitrc.org")
110
+ SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.nitrc.org")
111
+ SET(CPACK_NSIS_CONTACT "xyz@domain.edu")
112
+ SET(CPACK_NSIS_MODIFY_PATH ON)
113
+ ELSE(WIN32 AND NOT UNIX)
114
+ SET(CPACK_STRIP_FILES OFF)
115
+ SET(CPACK_SOURCE_STRIP_FILES OFF)
116
+ ENDIF(WIN32 AND NOT UNIX)
117
+
118
+ INCLUDE(CPack)
119
+
120
+
121
+ ENDIF("${ITK_VERSION_MAJOR}" GREATER 0.0)
122
+
123
+
124
+
125
+ IF(NOT DEFINED NIFTI_INSTALL_LIB_DIR)
126
+ MESSAGE(FATAL_ERROR "Must set NIFTI_INSTALL_LIB_DIR.")
127
+ ENDIF(NOT DEFINED NIFTI_INSTALL_LIB_DIR)
128
+ IF(NOT DEFINED NIFTI_INSTALL_BIN_DIR)
129
+ MESSAGE(FATAL_ERROR "Must set NIFTI_INSTALL_BIN_DIR.")
130
+ ENDIF(NOT DEFINED NIFTI_INSTALL_BIN_DIR)
131
+ IF(NOT DEFINED NIFTI_INSTALL_INCLUDE_DIR)
132
+ MESSAGE(FATAL_ERROR "Must set NIFTI_INSTALL_INCLUDE_DIR.")
133
+ ENDIF(NOT DEFINED NIFTI_INSTALL_INCLUDE_DIR)
134
+
135
+
136
+
137
+
138
+
139
+
140
+
@@ -0,0 +1,13 @@
1
+ ## This file should be placed in the root directory of your project.
2
+ ## Then modify the CMakeLists.txt file in the root directory of your
3
+ ## project to incorporate the testing dashboard.
4
+ ## # The following are required to uses Dart and the Cdash dashboard
5
+ ## ENABLE_TESTING()
6
+ ## INCLUDE(Dart)
7
+ set(CTEST_PROJECT_NAME "NIFTI")
8
+ set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
9
+
10
+ set(CTEST_DROP_METHOD "http")
11
+ set(CTEST_DROP_SITE "testing.psychiatry.uiowa.edu")
12
+ set(CTEST_DROP_LOCATION "/CDash/submit.php?project=NIFTI")
13
+ set(CTEST_DROP_SITE_CDASH TRUE)
@@ -0,0 +1,9 @@
1
+ Niftilib has been developed by members of the NIFTI DFWG and volunteers in the
2
+ neuroimaging community and serves as a reference implementation of the nifti-1
3
+ file format.
4
+
5
+ http://nifti.nimh.nih.gov/
6
+
7
+ Nifticlib code is released into the public domain, developers are encouraged to
8
+ incorporate niftilib code into their applications, and, to contribute changes
9
+ and enhancements to niftilib.
@@ -0,0 +1,265 @@
1
+
2
+ SHELL = csh
3
+
4
+ ## Projects
5
+ NIFTI = niftilib
6
+ NIFTICDF = nifticdf
7
+ ZNZ = znzlib
8
+ FSLIO = fsliolib
9
+ EXAMPLES = examples
10
+ UTILS = utils
11
+ TESTING = Testing
12
+ UTILS_PROGS = nifti_stats nifti_tool nifti1_test
13
+ THIS_DIR = `basename ${PWD}`
14
+
15
+ ## Note the TARFILE_NAME embeds the release version number
16
+ TARFILE_NAME = nifticlib-2.0.0
17
+
18
+
19
+ ## Compiler defines
20
+ cc = gcc
21
+ CC = gcc
22
+ AR = ar
23
+ RANLIB = ranlib
24
+ DEPENDFLAGS = -MM
25
+ GNU_ANSI_FLAGS = -Wall -ansi -pedantic
26
+ ANSI_FLAGS = ${GNU_ANSI_FLAGS}
27
+ CFLAGS = $(ANSI_FLAGS) -fPIC
28
+
29
+ ## Command defines
30
+ ## gmake does not work on MacOSX or some versions of linux MAKE = gmake
31
+ RM = rm
32
+ MV = mv
33
+ CP = cp
34
+ TAR = tar
35
+
36
+
37
+ ## Installation
38
+ INSTALL_BIN_DIR = bin
39
+ INSTALL_LIB_DIR = lib
40
+ INSTALL_INC_DIR = include
41
+
42
+
43
+ ## Zlib defines
44
+ ZLIB_INC = -I/usr/include
45
+ ZLIB_PATH = -L/usr/lib
46
+ ZLIB_LIBS = $(ZLIB_PATH) -lm -lz
47
+
48
+ ##############################################################
49
+ # platform specific redefines (to use, set ARCH appropriately)
50
+
51
+ ##ARCH = X86_64
52
+
53
+ ifeq ($(ARCH),SGI) ## SGI 32bit
54
+ ZLIB_INC = -I/usr/freeware/include
55
+ ZLIB_PATH = -L/usr/freeware/lib32
56
+ RANLIB = echo "ranlib not needed"
57
+ else
58
+ ifeq ($(ARCH),I386) ## 32-bit Linux
59
+ ZLIB_INC = -I/usr/include
60
+ ZLIB_PATH = -L/usr/lib
61
+ TAR = /bin/tar
62
+ else
63
+ ifeq ($(ARCH),X86_64) ## 64-bit Linux
64
+ ZLIB_INC =
65
+ ZLIB_PATH =
66
+ ZLIB_LIBS = $(ZLIB_PATH) -lm -lz
67
+ TAR = /bin/tar
68
+ endif
69
+ endif
70
+ endif
71
+
72
+
73
+ #################################################################
74
+
75
+ ## ZNZ defines
76
+ ZNZ_INC = -I../$(ZNZ)
77
+ ZNZ_PATH = -L../$(ZNZ)
78
+ ZNZ_LIBS = $(ZNZ_PATH) -lznz
79
+ USEZLIB = -DHAVE_ZLIB
80
+
81
+ ## NIFTI defines
82
+ NIFTI_INC = -I../$(NIFTI)
83
+ NIFTI_PATH = -L../$(NIFTI)
84
+ NIFTI_LIBS = $(NIFTI_PATH) -lniftiio
85
+
86
+ ## NIFTICDF defines
87
+ NIFTICDF_INC = -I../$(NIFTICDF)
88
+ NIFTICDF_PATH = -L../$(NIFTICDF)
89
+ NIFTICDF_LIBS = $(NIFTICDF_PATH) -lnifticdf
90
+
91
+ ## FSLIO defines
92
+ FSLIO_INC = -I../$(FSLIO)
93
+ FSLIO_PATH = -L../$(FSLIO)
94
+ FSLIO_LIBS = $(FSLIO_PATH) -lfslio
95
+
96
+
97
+
98
+ ## Rules
99
+
100
+ .SUFFIXES: .c .o
101
+
102
+ .c.o:
103
+ $(CC) -c $(CFLAGS) $(INCFLAGS) $<
104
+
105
+ ## Targets
106
+
107
+ all: znz nifti nifticdf fslio install
108
+
109
+ install: znz_install nifti_install nifticdf_install fslio_install utils_install
110
+
111
+ clean: znz_clean nifti_clean nifticdf_clean fslio_clean examples_clean \
112
+ utils_clean regress_clean
113
+
114
+ clean_all: clean regress_clean_all install_clean doc_clean
115
+
116
+
117
+ znz:
118
+ echo "arch is $(ARCH)"
119
+ (cd $(ZNZ); $(MAKE) depend; $(MAKE) lib;)
120
+ @echo " ----------- $(ZNZ) build completed."
121
+ @echo ""
122
+
123
+ nifti: znz
124
+ (cd $(NIFTI); $(MAKE) depend; $(MAKE) lib;)
125
+ @echo " ----------- $(NIFTI) build completed."
126
+ @echo ""
127
+
128
+ nifticdf:nifti
129
+ (cd $(NIFTICDF); $(MAKE) depend; $(MAKE) lib;)
130
+ @echo " ----------- $(NIFTICDF) build completed."
131
+ @echo ""
132
+
133
+ fslio: nifti
134
+ (cd $(FSLIO); $(MAKE) depend; $(MAKE) lib;)
135
+ @echo " ---------- $(FSLIO) build completed."
136
+ @echo ""
137
+
138
+ example:nifti
139
+ (cd $(EXAMPLES); $(MAKE) all;)
140
+ @echo Example programs built.
141
+ @echo ""
142
+
143
+
144
+ utils: nifti nifticdf
145
+ (cd $(UTILS); $(MAKE) all;)
146
+ @echo Utility programs built.
147
+ @echo ""
148
+
149
+ doc:
150
+ (cd docs; doxygen Doxy_nifti.txt;)
151
+ @echo "doxygen doc rebuilt, run netscape docs/html/index.html to view."
152
+ @echo ""
153
+
154
+ regress_data:
155
+ (cd $(TESTING); $(MAKE) regress_data 'RM=$(RM)' 'TAR=$(TAR)'; )
156
+ @echo ""
157
+ @echo Regression testing data installed.
158
+ @echo See Testing/README_regress for details.
159
+ @echo ""
160
+
161
+ $(INSTALL_BIN_DIR):
162
+ mkdir -p $@
163
+
164
+ $(INSTALL_INC_DIR):
165
+ mkdir -p $@
166
+
167
+ $(INSTALL_LIB_DIR):
168
+ mkdir -p $@
169
+
170
+ znz_install: $(INSTALL_INC_DIR) $(INSTALL_LIB_DIR)
171
+ ($(CP) $(ZNZ)/*.a $(INSTALL_LIB_DIR); $(CP) $(ZNZ)/*.h $(INSTALL_INC_DIR);)
172
+ $(RANLIB) $(INSTALL_LIB_DIR)/*.a
173
+ @echo " $(ZNZ) installed."
174
+ @echo ""
175
+
176
+ nifti_install: $(INSTALL_INC_DIR) $(INSTALL_LIB_DIR)
177
+ ($(CP) $(NIFTI)/*.a $(INSTALL_LIB_DIR); $(CP) $(NIFTI)/*.h $(INSTALL_INC_DIR);)
178
+ $(RANLIB) $(INSTALL_LIB_DIR)/*.a
179
+ @echo " $(NIFTI) installed."
180
+ @echo ""
181
+
182
+ nifticdf_install: $(INSTALL_INC_DIR) $(INSTALL_LIB_DIR)
183
+ ($(CP) $(NIFTICDF)/*.a $(INSTALL_LIB_DIR); $(CP) $(NIFTICDF)/*.h $(INSTALL_INC_DIR);)
184
+ $(RANLIB) $(INSTALL_LIB_DIR)/*.a
185
+ @echo " $(NIFTI) installed."
186
+ @echo ""
187
+
188
+ fslio_install: $(INSTALL_INC_DIR) $(INSTALL_LIB_DIR)
189
+ ($(CP) $(FSLIO)/*.a $(INSTALL_LIB_DIR); $(CP) $(FSLIO)/*.h $(INSTALL_INC_DIR);)
190
+ $(RANLIB) $(INSTALL_LIB_DIR)/*.a
191
+ @echo " $(FSLIO) installed."
192
+ @echo ""
193
+
194
+ utils_install: utils $(INSTALL_BIN_DIR)
195
+ (cd $(UTILS); $(CP) $(UTILS_PROGS) ../$(INSTALL_BIN_DIR);)
196
+ @echo " $(UTILS) installed."
197
+ @echo ""
198
+
199
+ install_clean:
200
+ ($(RM) -f $(INSTALL_INC_DIR)/* $(INSTALL_LIB_DIR)/* $(INSTALL_BIN_DIR)/*;)
201
+
202
+ znz_clean:
203
+ (cd $(ZNZ); $(RM) -f *.o *.a core; $(RM) -f depend.mk;)
204
+
205
+ nifti_clean:
206
+ (cd $(NIFTI); $(RM) -f *.o *.a core; $(RM) -f depend.mk;)
207
+
208
+ nifticdf_clean:
209
+ (cd $(NIFTICDF); $(RM) -f *.o *.a core; $(RM) -f depend.mk;)
210
+
211
+ fslio_clean:
212
+ (cd $(FSLIO); $(RM) -f *.o *.a core; $(RM) -f depend.mk;)
213
+
214
+ examples_clean:
215
+ (cd $(EXAMPLES); $(MAKE) clean;)
216
+
217
+ utils_clean:
218
+ (cd $(UTILS); $(MAKE) clean;)
219
+
220
+ doc_clean:
221
+ ($(RM) -fr docs/html;)
222
+
223
+ regress_clean:
224
+ (cd $(TESTING); $(MAKE) regress_clean; )
225
+
226
+ regress_clean_all:
227
+ (cd $(TESTING); $(MAKE) regress_clean_all; )
228
+
229
+ tar:
230
+ (cd .. ; ln -s $(THIS_DIR) ${TARFILE_NAME} ; \
231
+ $(TAR) --exclude=CVS -cf ${TARFILE_NAME}.tar ${TARFILE_NAME}/*; \
232
+ rm -f ${TARFILE_NAME});
233
+ @echo ''
234
+ @echo 'tar file ../${TARFILE_NAME}.tar has been created.'
235
+ @echo ''
236
+
237
+
238
+ help:
239
+ @echo ""
240
+ @echo "all: build and install znz, nifti1 and fslio"
241
+ @echo " libraries, and the utils programs"
242
+ @echo "install: install znz, nifti1, and fslio libraries"
243
+ @echo "doc: build the doxygen docs for this project."
244
+ @echo " (Need doxygen installed, see"
245
+ @echo " http://www.stack.nl/~dimitri/doxygen/index.html"
246
+ @echo "tar: make a tar file of all nifti_io code, put in .."
247
+ @echo ""
248
+ @echo "clean: remove .o .a etc. files from source directories,"
249
+ @echo " and remove examples and utils programs"
250
+ @echo "clean_all: make clean and delete all installed files in bin,"
251
+ @echo " include and lib, and remove any autogenerated"
252
+ @echo " docs (docs/html)"
253
+ @echo ""
254
+ @echo "znz: build the znz library"
255
+ @echo "znz_install: install the znz library"
256
+ @echo "nifti: build the nifti1 library"
257
+ @echo "nifti_install: install the nifti1 library"
258
+ @echo "nifticdf: build the nifti1 library"
259
+ @echo "nifticdf_install: install the nifti1 library"
260
+ @echo "fslio: build the fslio library"
261
+ @echo "fslio_install: install the fslio library"
262
+ @echo "example: make the example program(s)"
263
+ @echo "utils: make the utils programs"
264
+ @echo "utils_install: install the utils programs"
265
+ @echo ""