Build module against Nightly Slicer

Hello,

I want to build a module against Nightly Slicer at Release mode.

When I build the sln at VS I would expect to get generated the files at :
moduleName_build\lib\Slicer-4.11\cli-modules\Release
path, but they are generated under :
Slicer-build\lib\Slicer-4.11\cli-modules\Release

Can you explain me how can I change that path?
Thanks

The build location for module .dll and .exe files is correct - Slicer-build\lib\Slicer-4.11\cli-modules\Release. Do not attempt to change this path, as the build system relies on finding files in this location.

Ok, but why other modules, such as SlicerIGT, could be able to generate those files at
Modules\SlicerIGT_build\lib\Slicer-4.11\qt-loadable-modules\Release ?

I see, you mean CLI’s from your own extension. You can change the location of those to be within your build tree by adding these 3 lines of code:

@jcfr Should we add these lines to the CLI module template?

2 Likes

@siaeleni and I just ran into this again generating a new cli. I think adding the OUTPUT_DIRECTORY lines to the CLI template makes sense, but we should also add the corresponding lines to the Loadable module template too. This should also include the python directory and any others?

I do not recommend specifying output directories directly as parameter of SEMMacroBuildCLI, when building a CLI extensions, reasonable default are already expected to be set.

To address this, I suggest we update the following:

https://github.com/Slicer/Slicer/blob/57613e53bee81b1318c55f624dba46ad101c1bda/CMake/UseSlicer.cmake.in#L304-L306

It was a regression introduced in https://github.com/Slicer/Slicer/commit/e93ec804c80a532a8d59a4c945ab4b81ff9a888f

I will follow up with the best course of action

1 Like