[Ctk-developers] org_commontk_dah_app depends on org_commontk_dah_core
Sascha Zelzer
s.zelzer at dkfz-heidelberg.de
Wed Aug 3 14:50:08 UTC 2011
On 08/03/2011 04:29 PM, Julien Finet wrote:
> On Wed, Aug 3, 2011 at 4:07 AM, Sascha Zelzer
> <s.zelzer at dkfz-heidelberg.de <mailto:s.zelzer at dkfz-heidelberg.de>> wrote:
>
> For plug-ins, dependencies to other plug-ins are encoded in the
> manifest_headers.cmake file (instead of target_libraries.cmake).
> This makes the information available at runtime. The dependencies
> are already correctly set-up but the order of the plug-ins in the
> CMakeLists.txt did not reflect their dependencies. Multiple CMake
> configure runs hid the problem and I fixed it just now.'
>
>
> Do you mean that the dependency is now handled by the order of
> add_subdirectory calls ?
Well, the dependencies are still handled via the target_libraries and
additionally for plug-ins via the manifest_headers.cmake files. However,
the order of the add_subdirectory calls is important (both for Libs and
Plug-ins) for automatically figuring out transitive include directories.
A bit simplified, the macros look for a <plugin-dependency>_SRC_DIR
variable which is automatically set by CMake due to the
project(<plugin-dependency>) call in each plug-in (or lib). If the
add_subdirectory order is wrong, those variables may not exist yet. This
was the actual problem: org_commontk_dah_app was missing a the include
directory to org_commontk_dah_core .
> If I understand correctly, org_commontk_dah_app can only be built if
> org_commontk_dah_core is built (not just configured).
> As there is no direct dependencies between org_commontk_dah_app and
> org_commontk_dah_core, Visual Studio can run them in parallel, no ?
> (and Visual Studio, by default, build projects in parallel)
> So it seems to be prone to a race condition. Is there something I
> didn't take into account ?
org_commontk_dah_app uses classes from org_commontk_dah_core (like the
ctkSimpleSoapServer). It's object files can be built in parallel to the
object files of org_commontk_dah_core, but the linking step will only
take place after the org_commontk_dah_core import library has been
created. Visual Studio takes care of that.
- Sascha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ctk-developers/attachments/20110803/5c14feca/attachment.htm>
More information about the Ctk-developers
mailing list