Hi Matt,

good to see you on the mitk-users list!

Thomas already was so kind to answer many questions, and you can find my additional comments below.


On 04/28/2011 10:37 AM, Matt Clarkson wrote:
Hello there!

I'm just taking a look at MITK, and considering how I can use it in/for my project.

I have compiled the code, and run "make install" in the MITK-build directory, and in the installation folder, I get the CoreApp.app and ExtApp.app, with all the plugins underneath. (Im running on a Mac). I have looked at the wiki, and it mentions using the framework as a library which would be useful. For example, the way that ITK manages different data types in the data manager seems useful. In addition, in the application I am writing, the general BlueBerry based architecture could be useful in the long run, as already my code is a bit messy when plugging things together. Also, several of the available plugins would be immediately useful to me.


Please not that the way "make install" works (for now) will not enable you to use the "installed" MITK as a SDK. We use "make install" together with cpack to create deployable executables. If you want to develop with MITK, you will always need to refer to a build tree.

As you probably already know, you will only be able to reuse the existing plugins (all shared libraries starting with "org.mitk.") inside a BlueBerry application. Of course you can reuse all other shared libraries (MITK modules) in a traditional way by just linking to them.

So my questions now are how to use this in my own project. However, it's not clear to me how I should best go about this:

1. I am used to downloading and compiling libraries, such as ITK, VTK, Qt, boost etc, and our application then links against these libraries. This means I have my own subclass of QMainWindow, and we code all our application ourselves, and off we go, which is all quite simple. However, if I was to use MITK would I

a) ... create my own application like MITK/Applications/CoreApp/CoreApp.cpp and start from there? This means I would have to write my own CMake code to FindMITK, link against the right libraries, but also package all the right plugins in the right folders when I install or deploy my application

b) ... write my code from within the MITK source code tree? i.e. if I created a new plugin in the MITK directory structure, it would presumably be much easier to get all the compiled code packaged in the right place, but then my application would probably end up being called ExtApp! i.e. it would be an MITK extension, not my own application.

  c) ... just use MITK as a library.

First, I strongly discourage you from using option b). And choosing either a) or c) depends on your use case but as Thomas already said, a) and c) are not so much different.

You can have a look at http://docs.mitk.org/nightly-qt4/NewPluginPage.html which explains how to create a new plugin *and* a complete CMake - based project outside of the MITK source tree (which contains something similar like CoreApp.cpp or ExtApp.cpp). You could than look at the generated CMake files.

We are also currently working on making the deployment (make install) process used in MITK available to external projects, so you will be able to package your MITK (BlueBerry) base application.

Best regards,

Sascha
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to