AliceVision icon indicating copy to clipboard operation
AliceVision copied to clipboard

Allow using all pipeline nodes from a single executable

Open p12tic opened this issue 3 years ago • 0 comments

This will make it possible to compile the reusable parts of the executables once and then link into whatever destination needed, be it a part of user application, a standalone executable or a shared library.

Ability to not require usage of multiple executables is especially important on certain mobile platforms where this is not supported.

The idea behind the implementation is relatively simple: all aliceVision executables are compiled through a single CMake function (alicevision_add_software) and all entry points of these executables are already named as aliceVision_main. If alicevision_add_software is modified to compile the reusable code as a static library and redefine aliceVision_main to a unique symbol, then all of such static libraries can be easily combined into a single executable.

The current solution is the minimal one and the most simple one (whole PR is only around a hundred of lines). Going into the future we can expose the pipeline nodes better and provide more user-friendly API.

p12tic avatar Aug 26 '22 22:08 p12tic