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

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.

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}.

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?

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 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

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.