一.MITK從入門到放棄之初探

一. 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文件裏。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章