Page MenuHomePhabricator

"ExtensionPoint" support for SuperBuild
Closed, ResolvedPublic

Description

We discussed several ideas to allow different additional code (of other repositories) that adds applications, modules, plugins or external projects to build within the MITK superbuild. So a usefull solution against Super-Super-...-Builds.

  • Draft the basic idea (@floca )

Event Timeline

floca created this task.Nov 17 2017, 5:33 PM
kislinsk claimed this task.Dec 12 2017, 1:44 PM
kislinsk raised the priority of this task from Wishlist to High.
kislinsk added a subscriber: kislinsk.

I grab it because we need it now for MITK-MBI code.

kislinsk added a comment.EditedDec 17 2017, 6:35 PM

I added the advanced CMake cache variable MITK_EXTENSION_DIRS (superbuild and MITK-build), where the former passes the variable to the latter). Each directory specified in this variable will be parsed for modules, plugins, external projects, CMake scripts, and so on. The directory layout should be the same as the one of MITK, e. g.:

  • ExternalRepo
    • CMake
      • PackageDepends
        • FooConfig.cmake
      • FindFoo.cmake
    • CMakeExternals
      • Foo.cmake
      • ExternalProjectList.cmake (mitkFunctionAddExternalProject(NAME Foo OFF) ...)
    • Modules
      • Foo
      • ModuleList.cmake (set(MITK_MODULES Foo ...))
    • Plugins
      • org.mitk.gui.qt.foo
      • PluginList.cmake (set(MITK_PLUGINS org.mitk.gui.qt.foo:OFF ...))

Everything is optional. If something is found in the expected location, it is included into the MITK-(super)build.

It is currently used successfully in {T23934}.

kislinsk closed this task as Resolved.Dec 18 2017, 4:19 AM
floca added a comment.Dec 18 2017, 9:09 AM

Oh, great. We will test it as soon as possible with eMITK.

Would it also make sense to add the applications directory?

Yes the applications directory would make sense, too. Would suggest to open a new task for this when necessary. Does eMITK have such an application?

floca added a comment.Dec 19 2017, 1:03 PM

New taks is fine. In eMITK we have several applications. If we keep them is not quite sure yet. With this task, I think we could get rid of our workbench, because everything is customized bia plugins. With the other applications it is not sure if they will be depricated. Have to discuss it with Charlie.

nolden reopened this task as Open.Dec 19 2017, 7:03 PM
nolden removed kislinsk as the assignee of this task.
nolden added a subscriber: nolden.

I will add a little feature: a WARNINGS_NO_ERRORS option for the mitkFunctionCreateCommandLineApp CMake function

nolden claimed this task.Dec 19 2017, 7:03 PM
kislinsk closed this task as Resolved.Dec 19 2017, 8:35 PM
kislinsk claimed this task.

Merged into master. @nolden added a WARNINGS_NO_ERRORS option for cmdapps. New features in terms of the extension point mechanism will be implemented in new tasks.