-
Notifications
You must be signed in to change notification settings - Fork 2
/
5_ForDevelopers.txt
30 lines (20 loc) · 2.13 KB
/
5_ForDevelopers.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
\page ForDevelopers For Developers
Here we will provide the technical details of the CBICA Toolkit (CBICATk). This information can be used to integrate new applications into the global framework and also optimize/improve the code. Right now, CBICATk supports <a href="https://isocpp.org/">C++</a> and <a href="https://www.python.org/">Python</a> as the programming languages using which different applications can be written.
If you want to write a class which works with the CBICA Toolkit, please make sure you follow the set guidelines of the code. A brief summary:
## For basic classes:
- As of now, there is no "default" interface (since functionality differs so wildly).
- Make sure your class is well documented and a basic usage example is provided in the documentation (see cbica::CmdParser or cbica::Logging for examples)
- Let's say your class' header file is <code>cbicaXYZ.h</code>, add it to the list of headers in <code>itk_dev/src/classes/CMakeLists.txt</code>
(also add all other applicable files under headers or sources - this process of manual addition is intentional and in line with CMake guidelines).
- Include <code>cbicaITK_XYZ.h</code> in the test executable <code>itk_dev/src/classes/testing/BasicFunctionTests.cxx</code> and write a specific test
and debug the class as required (suggested method is to hard code the path for debugging).
## For ITK classes:
- If you are writing a class which takes a file as input, make sure you inherit from the cbica::CommonHolder class, which has a lot of pre-defined
functionality and also a basic default interface.
- Let's say your class' header file is <code>cbicaITK_XYZ.h</code>, add it to the list of headers in <code>itk_dev/src/classes/itk/CMakeLists.txt</code>
(also add all other applicable files under headers or sources - this process of manual addition is intentional and in line with CMake guidelines).
- Include <code>cbicaITK_XYZ.h</code> in the test executable <code>itk_dev/src/classes/itk/testing/ItkFunctionTests.cxx</code> and write a specific test
and debug the class as required (suggested method is to hard code the path for debugging).
Please adhere to the package structure.
*/