Olá pessoal, tudo bem?
Estou desenvolvendo uma API RESTful usando o framework Horse no Lazarus, com o objetivo de centralizar a emissão de DC-e (Declaração de Conteúdo Eletrônica). Essa API vai rodar como um serviço de background em um servidor Linux (Debian) em modo console, sem ambiente gráfico.
A motivação para essa arquitetura é que nosso ERP principal é legado (Delphi 2009) e não consegue mais lidar nativamente com as exigências atuais de TLS 1.2 da SEFAZ. Portanto, o microserviço em Lazarus receberá uma requisição do ERP, fará a montagem, assinatura com certificado A1 e o envio.
O Problema: O obstáculo que estou enfrentando é a forte dependência da LCL nos pacotes do ACBr. Ao criar um projeto do tipo "Console Application" e declarar as units do componente (ex: ACBrDCe) no uses, o projeto não compila, gerando erros de dependência de bibliotecas visuais, mesmo eu não utilizando nenhuma tela.
O que já tentei: Pesquisando no fórum e na documentação, tentei a abordagem de "enganar" o compilador:
Criei um projeto Application padrão e removi os formulários.
Fui em Project Options > Compiler Options > Additions and Overrides.
Alterei o LCLWidgetType para nogui.
Certifiquei-me de não incluir nenhum pacote de impressão (como Fortes Report), usando apenas o componente base de comunicação.
Ainda assim, não tive sucesso. Durante a compilação, a árvore de dependências do ACBr acaba puxando referências que quebram a geração do executável de terminal, ou dão erro ao tentar rodar no Debian puro.