|
Size: 1301
Comment: Added file format information.
|
Size: 1693
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| #pragma section-numbers on | #acl LcnGroup:read,write,delete,revert All:read |
| Line 3: | Line 3: |
| = Index = | = FreeSurfer Dev Guide = |
| Line 5: | Line 5: |
| [[Navigation(children)]] [[TableOfContents]] |
* Visit the BuildGuide for instructions on building and installing freesurfer manually. * Visit the GitHub page for an introduction to the github workflow. * Visit the GitAnnex page for detailed instructions on using git annex. |
| Line 8: | Line 9: |
| = File Format Information = | == Adding a New C Program == |
| Line 10: | Line 11: |
| == DICOM Information == [http://medical.nema.org/dicom/2003.html DICOM specification] [[BR]] [http://dclunie.com/medical-image-faq/html/part8.html DICOM informtion sources] |
If you'd like to add a new program to the tree, you should create a new subdirectory with the title of your tool. As an example, let's create a new c++ program called `mri_process`. First, we'll create a top-level subdirectory that contains our new c++ file and an empty `CMakeLists.txt` file: |
| Line 14: | Line 13: |
| == Medical Image Format FAQ == [http://www.dclunie.com/medical-image-faq/html Medical Image Format FAQ] |
{{{ freesurfer/ mri_process/ CMakeLists.txt mri_process.cpp }}} |
| Line 17: | Line 20: |
| = CVS Checkout = | In order to configure our new code, we should add the following to the empty `CMakeLists.txt` file. |
| Line 19: | Line 22: |
| There are several ways to do: pserver, ext, kserver, gserver. See, e.g. Chapter 2 of [http://cvsbook.red-bean.com/cvsbook.html Open Source Development with CVS] by K. Fogel and M. Bar (2nd Edition, Coriolis Group, 2001). | {{{ project(mri_process) |
| Line 21: | Line 25: |
| '''pserver''' | include_directories(${FS_INCLUDE_DIRS}) |
| Line 23: | Line 27: |
| `cvs -d :pserver:tosa@cvs.foobar.com:/space/repo/1/dev login` | add_executable(mri_process mri_process.cpp) target_link_libraries(mri_process utils) |
| Line 25: | Line 30: |
| where username is "`tosa`" on the server "`cvs.foobar.com`". The cvs depository is `/space/repo/1/dev`. You get asked about the password. Once you stored your authentication in `.cvspass` file, you can run other CVS commands using a similar way. | install(TARGETS mri_process DESTINATION bin) }}} |
| Line 27: | Line 33: |
| `cvs -d :pserver:tosa@cvs.foobar.com:/space/repo/1/dev co dev` which checkout the entire directory `dev` into the current directory. '''ext''' `export CVS_RSH=ssh` [[BR]] `cvs -d :ext:tosa@cvs.foobar.com:/space/repo/1/dev co dev` Note that even though CVS_RSH, we use `ssh`, which is a secure shell |
This will compile `mri_process.cpp`, link it against the `utils` freesurfer library, and copy the executable to the `$FREESURFER_HOME/bin` directory during install. To include this subdirectory in the main freesurfer build, make sure to modify the top-level `CMakeLists.txt` by adding `mri_process` to the long list of included directories at the bottom of the file. Now, after reconfiguring your build, you can run `make` in the `mri_process` directory of your build tree to successfully compile the new program. If you're having trouble configuring and building freesurfer, be sure to visit the BuildGuide for step-by-step instructions. |
FreeSurfer Dev Guide
Visit the BuildGuide for instructions on building and installing freesurfer manually.
Visit the GitHub page for an introduction to the github workflow.
Visit the GitAnnex page for detailed instructions on using git annex.
Adding a New C Program
If you'd like to add a new program to the tree, you should create a new subdirectory with the title of your tool. As an example, let's create a new c++ program called mri_process. First, we'll create a top-level subdirectory that contains our new c++ file and an empty CMakeLists.txt file:
freesurfer/
mri_process/
CMakeLists.txt
mri_process.cppIn order to configure our new code, we should add the following to the empty CMakeLists.txt file.
project(mri_process)
include_directories(${FS_INCLUDE_DIRS})
add_executable(mri_process mri_process.cpp)
target_link_libraries(mri_process utils)
install(TARGETS mri_process DESTINATION bin)This will compile mri_process.cpp, link it against the utils freesurfer library, and copy the executable to the $FREESURFER_HOME/bin directory during install. To include this subdirectory in the main freesurfer build, make sure to modify the top-level CMakeLists.txt by adding mri_process to the long list of included directories at the bottom of the file. Now, after reconfiguring your build, you can run make in the mri_process directory of your build tree to successfully compile the new program. If you're having trouble configuring and building freesurfer, be sure to visit the BuildGuide for step-by-step instructions.
