Page MenuHomePhabricator

MITK Extension mechanism: how to change settings in required third party projects.
Closed, WontfixPublic

Description

Problem: Currently we have no means the define in a third party project settings that have implication on other required third party projects.

Example:
A third party project A that needs Boost libraries, can specify boost as a dependency. But it is currently not able to alter "MITK_USE_Boost_LIBRARIES" to set the needed libs.

Reason:
The CMake files of required third party projects (e.g.) is evaluated befor the other projects. Thus the external project boost is already configured and set if an depending project A asks for special libs.

One could think about different mechanisms to solve that. Would be good if we could discuss that topic and came up with a favored way.
Its no showstopper. It makes the build instructions currently a bit more complex.

Event Timeline

kislinsk added a subscriber: kislinsk.

I think Eric did this with Boost in his external project. I didn't check but I advised him to add a third party project to his CMakeExternal folder that does nothing but add libraries to MITK_USE_Boost_LIBRARIES.

floca renamed this task from MITK Extension mechanism: who to change settings in required third party projects. to MITK Extension mechanism: how to change settings in required third party projects..Apr 11 2018, 2:22 PM
floca updated the task description. (Show Details)

I think Eric did this with Boost in his external project. I didn't check but I advised him to add a third party project to his CMakeExternal folder that does nothing but add libraries to MITK_USE_Boost_LIBRARIES.

Using this approach (nice idea), how do you ensure that this special settings are evaluated before Boost.cmake is processed and the external project for boost is configured?

Isn't this guaranteed as all projects are generated during the "Generate" step so it doesn't really matter if Boost.cmake is processed in the configure phase before or after the other external project? - Not sure, would have to check...

Isn't this guaranteed as all projects are generated during the "Generate" step so it doesn't really matter if Boost.cmake is processed in the configure phase before or after the other external project? - Not sure, would have to check...

Yes, this has to be verified.

I always thought (but this isn't based on first hand experience/facts), that calling ExternalProjects_Add directly configures the target and copies the passed settings. If this is the case, boost will be only reflect other EP settings if these EPs are evaluated before boost in SuperBuild.cmake line 216ff.

kislinsk claimed this task.
kislinsk added a project: Auto-closed.

Hi there! ๐Ÿ™‚

This task was auto-closed according to our Task Lifecycle Management.
Please follow this link for more information and don't forget that you are encouraged to reasonable re-open tasks to revive them. ๐Ÿš‘

Best wishes,
The MITK devs

kislinsk removed kislinsk as the assignee of this task.May 26 2020, 12:05 PM
kislinsk removed a subscriber: kislinsk.
floca removed a project: Auto-closed.
kislinsk closed this task as Wontfix.Sep 9 2022, 10:22 AM
kislinsk added a project: Auto-closed.

Hi there! ๐Ÿ™‚

This task was auto-closed according to our Task Lifecycle Management.
Please follow this link for more information and don't forget that you are encouraged to reasonable re-open tasks to revive them. ๐Ÿš‘

Best wishes,
The MITK devs