Skip to content

CMake code generation over viewer's extension targets

About you

CamiTK dev

Overview

If a component or action declares a dependency to a viewer extension, CMake generates an error during generation.

CMake Error in actions/testactions/CMakeLists.txt:
   The dependency target "viewer-medicalimageviewer" of target
   "action-testactions_autogen" does not exist.

→ The viewer's extension targets are not exported properly and generate an error

Steps to Reproduce

In an action CMakeLists.txt, add the following line inside the camitk_extension parameters:

camitk_extension(ACTION_EXTENSION
                 ...
                 NEEDS_VIEWER_EXTENSION medicalimageviewer 
                 ...
)

Actual VS Expected Result

When running the CMake generation on the project, the following error is generated

CMake Error in actions/testactions/CMakeLists.txt:
  The dependency target "viewer-medicalimageviewer" of target
  "action-testactions_autogen" does not exist.

The target is not known by the CEP as it is not exported by CamiTK CE. The expected result is a error free CMake generation

I created a specific branch and MR (see !147 (merged)) with cepgenerator test files. This can be considered as fixed when the test application-cepgenerator-bash-test in MR !147 (merged) returns no error.

To run the test :

  • checkout branch bug/target-export
  • configure and build
  • run the corresponding test:
ctest -VV -R application-cepgenerator-bash-test

Interpretation & Possible fixes

Two possible fixes:

  • either fix CamiTK CMake files so that extensions are exported
  • tweak the cepgenerator to add the following lines in the generated action CMakeLists.txt AND document the manual fix in the wiki.
# Add this line in the action or component CMakeLists.txt, before the call to the camitk_extension macro
add_library(viewer-medicalimageviewer INTERFACE IMPORTED)
  • FindCamiTK.cmake includes these export lines

Note that a similar line has to be added from each added NEEDS_VIEWER_EXTENSION dependencies

CamiTK Version

CamiTK version........................... CamiTK 4.2.dev.bug-target-export.0cf6a8fa

Track Debugging

Edited by Emmanuel Promayon