diff --git a/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewModule.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewModule.dox index 609cdd831d..9170bdd620 100644 --- a/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewModule.dox +++ b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewModule.dox @@ -1,122 +1,122 @@ /** \page NewModulePage How to create a new MITK Module \section NewModulePageCreateFolder Create a Folder for your Module First, create a folder for your module within /Modules e.g. 'NewModule'. -You need to add the new Folder to the CMakeLists.txt in the Module directory as well as well. -Open /Modules/CMakeLists.txt, insert it into the set(module_dirs) section. +You need to add the new folder to the ModuleList.cmake file in the Module directory as well. +Open /Modules/ModuleList.cmake, append the folder to the MITK_MODULES list. \code -set(module_dirs +set(MITK_MODULES ... NewModule ) \endcode A simple example module is provided in the MITK/Examples/FirstSteps/NewModule directory, it includes a new data type (more information at \ref NewDataTypePage) and adds a MiniApp for that data type (more information at \ref MiniAppCommandLineToolHowToPage). Within the module we recommend using a Unix like directory structure. This helps others finding their way around your code. Depending on your use case you might not need every directory. \code NewModule/ autoload/ cmdapps/ doc/ include/ resource/ src/ test/ \endcode Subsequently a quick description of what each directory contains. \subsection NewModulePageCreateFolderAutoload autoload This directory should not directly contain files. Instead it contains further directories each of which is its own module. These modules provide functionality which should be available at application start, but will not be included by other modules. Examples would be a module registering readers/writers or providing an interface for specific hardware. For an example of an autoload module take a look at NewModule/autoload/IO. \subsection NewModulePageCreateFolderCmdApps cmdapps This directory contains all cmdapps (command line tools) related to your module. For more information see \ref MiniAppCommandLineToolHowToPage. \subsection NewModulePageCreateFolderDoc doc This directory contains the documentation for your module. \subsection NewModulePageCreateFolderInclude include This directory contains all header files which might be included by other modules. \subsection NewModulePageCreateFolderResource resource This directory contains resources needed by your module, such as xmls, images or similar. \subsection NewModulePageCreateFolderSrc src This directory contains source and header files which should not be included by other modules. Further subdivision can help keeping it organized. (e.g. src/DataManagement src/Algorithms) \subsection NewModulePageCreateFolderTest test This directory contains all tests for your module. \section NewModulePageCreateCMakeLists Create CMakeLists.txt Within your module create a CMakeLists.txt using the MITK_CREATE_MODULE macro: An example: \include Examples/FirstSteps/NewModule/CMakeLists.txt If you do not choose a module name, one will be generated based on the folder name (In this case the resulting name will be MitkNewModule). This name has to be unique across the entire project in order to avoid collisions. It should only contain Letters (both upper- and lowercase), no numbers, no underscores etc. An example of an autoload module that sets its own name is: \include Examples/FirstSteps/NewModule/autoload/IO/CMakeLists.txt the resulting name is MitkNewModuleIO. \note For more information about the parameters of the new module macro see mitkFunctionCreateModule.cmake \section NewModulePageCreatefilesdotcmake Create files.cmake Next, create a new file and name it files.cmake, containing the files of your module. An example: \include Examples/FirstSteps/NewModule/autoload/IO/files.cmake If you do not add a source file here it will not be compiled, unless it is included elsewhere. \section NewModulePageCreateTestingEnvironment Set up the Test environment Providing tests for your code is a very good way to save yourself a lot of debugging time and ensure consistency. An example of a small test environment is provided in the NewModule example. Again you need a CMakeLists.txt, e.g.: \include Examples/FirstSteps/NewModule/test/CMakeLists.txt a files.cmake, e.g.: \include Examples/FirstSteps/NewModule/test/files.cmake and an actual test, e.g.: \include Examples/FirstSteps/NewModule/test/mitkExampleDataStructureTest.cpp For more information regarding tests please refer to \ref AboutTestingPage. That's it! Enjoy your new module! -*/ \ No newline at end of file +*/