Differences between revisions 1 and 185 (spanning 184 versions)
Revision 1 as of 2004-07-30 11:50:26
Size: 892
Editor: DavidTuch
Comment: Added CVS Checkout
Revision 185 as of 2019-03-27 12:09:43
Size: 1755
Editor: AndrewHoopes
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= CVS Checkout = #acl LcnGroup:read,write,delete,revert All:read
Line 3: Line 3:
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). = FreeSurfer Dev Guide =
Line 5: Line 5:
'''pserver'''  * 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 for storing and retrieving large data files in the repository.
Line 7: Line 9:
`cvs -d :pserver:tosa@cvs.foobar.com:/space/repo/1/dev login` == Adding a New C Program ==
Line 9: Line 11:
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. 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 11: Line 13:
`cvs -d :pserver:tosa@cvs.foobar.com:/space/repo/1/dev co dev` {{{
freesurfer/
    mri_process/
        CMakeLists.txt
        mri_process.cpp
}}}
Line 13: Line 20:
which checkout the entire directory `dev` into the current directory. In order to configure our new code, we should add the following to the empty `CMakeLists.txt` file.
Line 15: Line 22:
'''ext''' {{{
project(mri_process)
Line 17: Line 25:
`export CVS_RSH=ssh` [[BR]]
`cvs -d :ext:tosa@cvs.foobar.com:/space/repo/1/dev co dev`
include_directories(${FS_INCLUDE_DIRS})
Line 20: Line 27:
Note that even though CVS_RSH, we use `ssh`, which is a secure shell 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.

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 for storing and retrieving large data files in the repository.

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.cpp

In 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.

DevelopersGuide (last edited 2023-09-13 15:46:41 by JacksonNolan)