How to hide the code of the script module?

Technically, the .py files are not replaced, there are removed.

The target CompileSlicerPythonFiles depends on the CopySlicerPythonScriptFiles one, these are defined using the ctkFunctionAddCompilePythonScriptTargets CMake function.
See Slicer/CMakeLists.txt#L1280-L1309

To properly support “compiling” source file exclusively to .pyc, the CMake function ctkFunctionAddCompilePythonScriptTargets should be improved to accept an new parameter option (e.g SKIP_SCRIPT_COPY).
See CTK/CMake/ctkMacroCompilePythonScript.cmake

The ctkMacroCompilePythonScript.cmake CMake module could also be updated to define an option for controlling the behavior globally (e.g CTK_COMPILE_PYTHON_SCRIPT_SKIP_SCRIPT_COPY).

This new option should be added to SlicerConfig.cmake.in, that way extension build against Slicer would also leverage it.

This should provide you with enough hints to move forward and create a pull request at https://github.com/commontk/CTK

We will address corner cases during the review process.

1 Like