c_nifti 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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 ""