一. MITK是什么?


MITK是一个C++第三方库,由ITK(负责图形图像算法实现),VTK(负责2D图像,3D图像的显示),QT(用户界面,GUI实现),BlueBerry(MITK核心框架主要由CTK组成,还包括CTK之上的类
Eclipse RCP框架),CTK(OSGI
插件热插拔实现,负责plugin的加载与管理),CppMicroServices(面向服务库,负责module的加载),POCO(类Eclipse
RCP框架的线程实现,主应用程序实现)等等第三方库组成的一个医学软件框架。

二.MITK文件结构


Applications
applications文件夹里面是几个应用程序,有标准工作台应用程序,workbench , diffusion,coreapp等几个应用程序源码
大多数情况下我们都是用workbench,其他的基本不怎么用
CMake
该文件夹内存放的是一些第三方库的
findxxx.cmake文件及依赖文件,特别是PackageDepends文件夹下的cmake文件,实际上就是用于mitk本身的包管理

CMakeExternals
各种第三方库的编译,下载,安装文件,比如ANN.cmake

note:有的库有CMakeLists.txt,比如ANNCMakeLists.txt,这个文件的作用是:下载下来的ann源码可能没有cmakelists.txt文件或者CMakelists.txt文件的格式(安装位置,编译参数)不符合MITK的规范,用该CMakeLists.txt替换原有的来进行编译。
还有一些.patch文件,就是mitk可能修改了库的源码文件,使用该patch替换文件。

Plugins
MITK中的各种插件,注意下图红框标注出来的,这些插件就是Eclipse ECP的C++实现,我称之为MITK核心底层插件,查看相关eclipse文档。
剩下的是一些就是在核心插件之上构建的应用层插件。

modules
MITK模块文件夹,其中我懂的一些我大概注释下


CMakeLists.txt
定义各种外部库的使用和插件,模块的编译,安装,打包规则等等
SuperBuild.cmake
superBuild是cmake的概念,就是指生成项目构建器之前 生成项目依赖的第三方库的构建器的过程。 生成构建器是指
生成vs工程,或者GCC工程,或者mac下的xcode工程。 该文件里就是
MITK所依赖的所有第三方库的上层构建过程,包括如何知道那些第三方库要构建,构建前的patch等等工作,具体的构建过程是在CMakeExternals文件夹中的.cmake文件里。