Hi,

the project template (or generally speaking an "MITK extension") can be built 
just like plain MITK, there is nothing extra or separate script/code paths in 
our build scripts. That's the cool thing about the project template/MITK 
extensions. It mirrors the MITK directory structure and all the magic happens 
within the MITK build system, not the project template build system. It 
basically works by following path and filename conventions. It is virtually 
like forking the MITK repository and adding dependencies, modules, plugins, 
applications, and build configurations right to the MITK repo, but with the 
advantage that you do not have to touch the original repo but have an extra 
directory/repo for your own stuff that is "mounted" into the MITK directory.


Notice that the project template is full of examples/demos that you do not need 
for your own stuff. Their purpose is to show how things are supposed to be done 
and that it is just like you would do stuff right in the MITK directory. One of 
the examples is that even the configurations of a few MITK-dependencies like 
ITK can be modified from an extension [1]. And this is why MITK was basically 
rebuilt completely when you added the ProjectTemplate itself to 
MITK_EXTENSION_DIRS since ITK as a core dependency needed a rebuild.


Since you already have all your stuff and just want to migrate, start with an 
empty directory instead of the project template and just use the project 
template as an example-based manual/inspiration.


For example, a minimum start could be to simple create a Modules folder, put a 
ModuleList.cmake in it and reference your first module [2]. That's all you need 
to add a module to MITK. When you then add your root directory to 
MITK_EXTENSION_DIRS (you can also do this in the MITK-build, not only in the 
MITK-superbuild as long as you do not change anything on superbuild-level), 
MITK will look for a Modules/ModuleList.cmake files not only in its own root 
directory but in all extension dirs and handle it just like its own 
Modules/ModuleList.cmake file.


Best,

Stefan


[1] 
https://github.com/MITK/MITK-ProjectTemplate/blob/master/CMakeExternals/Customization/ITK.cmake

[2] https://github.com/MITK/MITK-ProjectTemplate/tree/master/Modules


________________________________
Von: Nil Goyette <nil.goye...@imeka.ca>
Gesendet: Freitag, 9. April 2021 04:19
An: Dinkelacker, Stefan
Cc: mitk-users@lists.sourceforge.net
Betreff: Re: [mitk-users] PluginGenerator and ProjectTemplate

Hi Stefan,
I'm still unable to generate the solution, with Qt5.12 or Qt5.15, with or 
without a reference to MitkAppUtil, with or without a 
"find_package(Qt5WebEngine REQUIRED)".. I get the same error as before.
This being said, I think I need to clarify the framework/library thing before 
we go further. If I understand correctly:

  *   MITK as a framework. Should use the ProjectTemplate and link to this 
template in the MITK superbuild.
  *   MITK as a library.. Use our own cmake and link to MITK build dir.

In our case, we use the standard MITK UI and features, we pick some useful MITK 
plugins and add some of our own. This is a "framework" usage, right? I tried 
the ProjectTemplate approach once and what I really disliked is that it 
recompiled MITK in full when I told cmake the MITK_EXTENSION_DIRS to my 
project. This is not compatible with our build system where we build MITK once 
and use the build artifacts to build our own project fast. Do you have a 
solution for this?
Nil

Le mer. 7 avr. 2021, à 06 h 59, Dinkelacker, Stefan 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>> a 
écrit :

Hi,


my first guess is that your executable is infected with this dependency from 
MitkAppUtil, which has a PUBLIC package dependency to WebEngine. Usually CMake 
is right in its assumptions regarding find_package(). So a first step would be 
to do a manual find_package for WebEngine and continue from there. If it still 
cannot be found, but other components of Qt were found, double-check your 
installation and maybe manually look for the Config.cmake file in the lib/cmake 
subfolder of your Qt installation. Since you seem to use MITK as library it is 
hard to make better guesses at the moment. I also did not use Qt 5.15 yet, only 
5.12.


Best,

Stefan

________________________________
Von: Nil Goyette <nil.goye...@imeka.ca<mailto:nil.goye...@imeka.ca>>
Gesendet: Dienstag, 6. April 2021 17:21
An: Dinkelacker, Stefan
Cc: mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Betreff: Re: [mitk-users] PluginGenerator and ProjectTemplate

Hi Stefan,

My module wasn't found because I included "MitkTestingHelper" in the wrong 
place. There was no useful error message so I had to guess it.
But now I have another problem and you may be able to help me. The CMake 
Configure part is ok, but when I click on Generate, I get this error

CMake Error at 
C:/Imeka/mitk/CMake/mitkFunctionCreateBlueBerryApplication.cmake:88 
(add_executable):
Target "MI-Brain" links to target "Qt5::WebEngine" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?
Call Stack (most recent call first):
Apps/MI-Brain/CMakeLists.txt:34 (mitkFunctionCreateBlueBerryApplication)

which is surprising because I don't use or try to include WebEngine. A git grep 
WebEngine returns nothing. And I know and verified that I installed WebEngine 
along with Qt 5.15.X. Do you know what is causing this?

NIl

Le lun. 5 avr. 2021, à 19 h 19, Dinkelacker, Stefan 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>> a 
écrit :

Hi Nil,


you do *not* need to use the ProjectTemplate but it is at least the strongly 
recommended way for new MITK developers to go the framework route with MITK. 
You can still continue using MITK as plain CMake-based toolkit/library. As 
written in T27701, we just want to get rid of the ProjectGeneration part, not 
the PluginGeneration part.


We focus on the ProjectTemplate since we recognized that most of the external 
developers are not primarily developers but scientists and while they usually 
have at least a basic level of knowledge in C++ to get things done, CMake is 
already something different. Using the ProjectTemplate basically means using 
MITK as we do internally (which is a big plus for us regarding support) and 
that people just need to add modules, plugins, or dependencies to an existing 
application backed by examples/templates.


When a module is suddenly missing it is probably related to a missing implicit 
dependency that is not there anymore (we revisited the ITK dependencies of all 
MITK modules in v2021.02 for example). The CMake output / summary should print 
out why a module is missing.


Best,

Stefan





________________________________
Von: Nil Goyette <nil.goye...@imeka.ca<mailto:nil.goye...@imeka.ca>>
Gesendet: Donnerstag, 1. April 2021 21:51
An: mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Betreff: [mitk-users] PluginGenerator and ProjectTemplate

Hi all,

I tried porting my application to 2121.02 and there's plenty of cmake errors 
because one of my modules is suddenly missing. So I tried using the good old 
PluginGenerator, but  I see that there's a problem with it. It's not built when 
I build MITK. It was decided in T27701<https://phabricator.mitk.org/T27701> to 
get rid of it. I learned that there's a 
ProjectTemplate<https://phabricator.mitk.org/source/mitk-projecttemplate/>. Is 
the old method (our project linking to MITK_BUILD) not working anymore? Can you 
please confirm that we must now use this ProjectTemplate?
--
Nil Goyette
Développeur principal
www.imeka.ca<http://www.imeka.ca>

During this time of social distancing, we offer free webinars on subjects that 
matter.<https://www.imeka.ca/webinars/>
[https://www.imeka.ca/app/uploads/2021/03/logo-imeka-nom-10years-dark-fond-blanc-e1616690355918.png]
CONFIDENTIALITY NOTICE: This message, and any attachments, is intended only for 
the use of the addressee or his authorized representative. It may contain 
information that is privileged, confidential and exempt from disclosure under 
applicable law. If the reader of this message is not the intended recipient, or 
his authorized representative, you are hereby notified that any dissemination, 
distribution or copying of this message and any attachments is strictly 
prohibited. The integrity of this message cannot be guaranteed on the Internet, 
IMEKA shall not be liable for its content if altered, changed or falsified. If 
you have received this message in error, please contact immediately the sender 
and delete this message and any attachments from your system.


AVIS DE CONFIDENTIALITÉ : Ce message, ainsi que tout fichier qui y est joint, 
est destiné exclusivement aux personnes à qui il est adressé. Il peut contenir 
des informations de nature confidentielle qui ne doivent être divulguées en 
vertu des lois applicables. Si vous n'êtes pas le destinataire de ce message ou 
un mandataire autorisé de celui-ci, vous êtes avisé par la présente que toute 
impression, diffusion, distribution ou reproduction de ce message et de tout 
fichier qui y est joint est strictement interdite. L'intégrité de ce message 
n'étant pas assurée sur Internet, IMEKA ne peut être tenue responsable de son 
contenu s'il a été altéré, déformé ou falsifié. Si ce message vous a été 
transmis par erreur, veuillez en aviser sans délai l'expéditeur et l'effacer 
ainsi que tout fichier joint sans en conserver de copie.
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to