Usando Pacotes de Tempo de Execução
Uma das funcionalidades úteis do Delphi é seu suporte a "Runtime Packages". Usando runtime packages, uma aplicação Delphi pode ser dividida em vários módulos. Esses módulos são pacotes de runtime BPL usados pelo próprio IDE do Delphi. Esses pacotes são DLLs especiais carregadas dinamicamente no espaço de memória da aplicação sob demanda. O tamanho da aplicação principal será menor, pois qualquer biblioteca BPL externa será carregada na memória somente quando necessário. Esse recurso também permite criar aplicações modulares: você pode dividir os módulos e formulários da sua aplicação em bibliotecas menores que podem ser carregadas no seu código quando necessários.
uniGUI suporta o uso de Runtime Packages e isso pode ser habilitado ativando "Link with runtime packages" nas opções do projeto. Uma vez definida essa opção, você deve garantir que todos os runtime packages do uniGUI estejam na lista de Runtime packages.
Abaixo está uma lista de todos os runtime packages que são usados em uma aplicação uniGUI. XX representa um número que corresponde à sua versão do Delphi. Por exemplo, uniGUI25 para Delphi 10.2 Tokyo.
uniToolsXX
uIndyXX
uniGUIXXCore
uniGUIXX
uniGUIXXChart
uniGUIXXmCore
uniGUIXXm
Para aplicações 64 bits você precisa das versões 64 bits dos arquivos BPL. Embora você possa compilá-los manualmente a partir do IDE alterando o alvo para cada BPL de runtime, é mais prático usar arquivos em lote para gerar arquivos BPL 64 bits. Veja Building 64-bit library files: https://unigui.com/doc/online_help/building-64-bit-library-files.htm
É importante garantir que todos os pacotes acima estejam linkados com sua aplicação da mesma forma. Se você incluir apenas um subconjunto dessas bibliotecas na lista de Runtime packages, pode levar a uma situação em que algumas bibliotecas uniGUI estejam vinculadas estaticamente enquanto outras são carregadas dinamicamente. Isso deve ser evitado. Você precisa ou vincular todas as bibliotecas do uniGUI estaticamente ou todas dinamicamente.

Após habilitar runtime packages você notará que o tamanho do executável do seu projeto será muito menor. Para um projeto uniGUI vazio em modo Release, o tamanho do executável pode ser cerca de 43 KB — comparado a vários megabytes quando o projeto é compilado sem runtime packages.