Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow using all pipeline nodes from a single executable #1208

Closed
wants to merge 6 commits into from

Commits on Aug 30, 2022

  1. samples: Prefer aliceVision_main() to main()

    Many of the samples implement parts of the pipeline, so it makes sense
    to use the same aliceVision_main() API as for the rest of pipeline
    nodes.
    p12tic committed Aug 30, 2022
    Configuration menu
    Copy the full SHA
    bf23012 View commit details
    Browse the repository at this point in the history
  2. software: Prefer aliceVision_main() to main()

    Many of the samples implement parts of the pipeline, so it makes sense
    to use the same aliceVision_main() API as for the rest of pipeline
    nodes.
    p12tic committed Aug 30, 2022
    Configuration menu
    Copy the full SHA
    b9bd440 View commit details
    Browse the repository at this point in the history
  3. Inject main() via CMake macro instead of including a header file with it

    Currently main() of the executables defined in the project resides in
    aliceVision/system/main.hpp file which is #included into each of the
    executables. This makes it impossible to compile the executable code as
    a static library.
    
    Injecting main() exclusively via CMake avoids this problem.
    p12tic committed Aug 30, 2022
    Configuration menu
    Copy the full SHA
    590be11 View commit details
    Browse the repository at this point in the history
  4. cmake: Split reusable parts of executables into static libraries

    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.
    p12tic committed Aug 30, 2022
    Configuration menu
    Copy the full SHA
    14147db View commit details
    Browse the repository at this point in the history
  5. cmake: Redefine aliceVision_main to unique names in executables

    This will make it possible to link multiple pipeline nodes into a single
    executable.
    p12tic committed Aug 30, 2022
    Configuration menu
    Copy the full SHA
    e008b81 View commit details
    Browse the repository at this point in the history
  6. Add a check for linking all static libraries together

    This ensures that we accidentally don't create two static libraries with
    duplicate symbols. In any duplicate symbols should be hidden by using
    unnamed namespaces or `static`.
    p12tic committed Aug 30, 2022
    Configuration menu
    Copy the full SHA
    5a0350b View commit details
    Browse the repository at this point in the history