Extending Falcon

An extension cannot be build by itself. You will need to rebuild falcon-core while adding your extension local path in the extensions.txt in dev mode. It will automatically build falcon-core as well as your extension.

enable , extension name , extension path , extension version (optional)
dev , your_extension_name , local/path/your/repository

Recap: How to package an extension

Example of an extension structure :

extension_repository :
    - processors
        - processor_name
            - doc.yaml
            - processor_name.cpp
            - processor_name.hpp
            - CMakeList.txt
    - datatypes
        (similar structure to processors)
    - lib
        - Lib1
            - code
            - CMakeList.txt
        - Lib2
        - CMakeList.txt
    - resources
        - graphs
        - filters
        - others folder (can be reach in falcon via its own uri or with resources://folder_name)
    - tools

Minimal CMakeList.txt in each extension (lib, processor, datatype) :

add_library( name "name.cpp" )
TARGET_LINK_LIBRARIES( name lib_name )

Note

lib_name could be a lib added in the extension but also already present in the falcon-core or others extensions also present in extensions.txt

Once this is pushed online in a repository, you can remove the dev mode from your build system and install the extension in falcon-core from a specific version (git tag, branch … ) in the same way as the others extensions.

enable , extension name , extension path , extension version (optional)
1 , your_extension_name , https://online/repo/path, version