Skip to content

Create a fcitx addon

rocka edited this page Jul 4, 2024 · 2 revisions

How to create a fcitx addon in app module.

  1. Create a new directory for the addon, under app/src/main/cpp/<addon_name>.

  2. Create <addon_name>.conf.in.in

    [Addon]
    Name=<Addon Name>
    Type=SharedLibrary
    Library=lib<addon_name>
    Category=Module
    Version=@PROJECT_VERSION@
    OnDemand=True
    Configurable=True
  3. Create CMakeLists.txt

    add_definitions(-DFCITX_GETTEXT_DOMAIN=\"fcitx5-android\")
    
    add_library(<addon_name> MODULE <addon_name>.cpp)
    target_link_libraries(<addon_name> Fcitx5::Core)
    
    configure_file(<addon_name>.conf.in.in <addon_name>.conf.in @ONLY)
    fcitx5_translate_desktop_file(${CMAKE_CURRENT_BINARY_DIR}/<addon_name>.conf.in <addon_name>.conf)
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/<addon_name>.conf"
            DESTINATION "${FCITX_INSTALL_PKGDATADIR}/addon"
            COMPONENT config)
  4. Create <addon_name>.h <addon_name>.cpp respectively.

  5. If the addon needs to export functions, <addon_name>_public.h is also needed.

  6. For every FCITX_ADDON_DECLARE_FUNCTION in <addon_name>_public.h, there MUST be a FCITX_ADDON_EXPORT_FUNCTION in <addon_name>.h.

Clone this wiki locally