Compilando o Fritzing no Windows 10

Fritzing é uma iniciativa de hardware de código aberto para oferecer um aplicativo, uma comunidade e serviços que seguem a cultura maker.

Neste post, vou descrever a minha experiência de execução do processo de compilação do código fonte do aplicativo Fritzing para o ambiente Windows, conforme descrito na página Wiki do projeto.

Optei por fazer isso pois apenas para fins de aprendizado. No site oficial, é possível baixar os binários após efetuar o login.

Requisitos

  • Baixar o código fonte do aplicativo, versão 0.9.4;

  • Baixar o código fonte dos componentes, versão 0.9.3b;

  • Baixar o código fonte da biblioteca Boost, última versão;

  • Baixar o código fonte da biblioteca libgit2, versão 0.28.5;

  • Instalar o Qt Framework para projetos de código aberto, versão 5.15.2, com as ferramentas Qt Creator 4.13.3; e

  • Instalar as ferramentas de build do Visual Studio 2019, incluindo a versão 142 das Ferramentas da Plataforma Universal do Windows do C++.

Procedimentos

Após baixar os códigos e instalar o Qt Framework, suas ferramentas, e as ferramentas de build do Visual Studio, faça:

  1. Descompacte o código fonte da biblioteca Boost e confirme se o nome da pasta está no padrão boost_1_xx_0

  2. Descompacte o código fonte da biblioteca libgit2 e confirme se o nome da pasta é libgit2

  3. Descompacte o código fonte do Fritzing (aplicativo e componentes)

  4. Abra o Qt Creator e importe o projeto CMake da biblioteca libgit2 (arquivo CMakeLists.txt), através do menu File, opção Open File or Project…

  5. Na barra de ferramentas a esquerda, selecione _Projects e escolha o kit de ferramentas de construção (neste caso, Desktop Qt 5.15.2 MSVC2019 64 bits) clicando com o botão direito do mouse, opção Enable Kit for Project libgit2

  6. Altere Build directory para dentro da pasta libgit2, subpasta build64\Release

  7. Na opção Build do kit de ferramentas de construção, mude Edit build configuration de Debug para Release

  8. Escolha Build Project libgit2 na barra de ferramentas a esquerda, ou no menu Build (se tudo der certo, o arquivo git2.lib deve ter sido gerado em libgit2\build64\Release)

  9. Importe o projeto Qt do aplicativo Fritzing (arquivo phoenix.pro), através do menu File, opção Open File or Project…

  10. Na barra de ferramentas a esquerda, selecione Projects e escolha o kit de ferramentas de contrução (neste caso, Desktop Qt 5.15.2 MSVC2019 64 bits) clicando com o botão direito do mouse, opção Enable Kit for Project “phoenix”

  11. Na opção Build do kit de ferramentas de construção, mude Edit build configuration de Debug para Release

  12. Na opção Run do kit de ferramentas de construção, mude Command line arguments de Debug para -f "Q:\Temp\fritzing-app-CD-498" -parts "Q:\Temp\fritzing-parts-0.9.3b" -db "Q:\Temp\fritzing-parts-0.9.3b\parts.db" (após a primeira execução, exclua -db "Q:\Temp\fritzing-parts\parts.db)

  13. Talvez a compilação resulte no erro message(message) requires one argument. No nosso caso, queremos apenas gerar os binários para executar o Fritzing. Então, no arquivo libgit2detect.pri, basta comentar o comando message($$PKGCONFIG), acrescentando o caracter # no início da linha

Resultado

Se o processo de compilação for concluído com êxito, a pasta release64 aparecerá contendo o arquivo executável Fritzing.exe. Entretanto, execute aplicativo através do Qt Creator (passo 12) para a correta ligação dinâmica das bibliotecas Qt.

Observações

Executar o processo de compilação, no geral, depende da correta interpretação das instruções de build descritas pelos desenvolvedores no repositório do código fonte.

Outros fatores que influenciam é a correta configuração do kit de ferramentas (passos 5 e 10).
Um dos erros que enfrentei foi:

warning: …HostX86\x64\cl.exe is used by qmake, but …HostX64\x64\cl.exe is configured in the kit. Please update your kit or choose a mkspec for qmake that matches your target environment better

Em outro caso, a alteração dos valores BUILD_SHARED_LIBS e BUILD_CLAR para falso (isso faz com que o compilador gere apenas a biblioteca estática e ignore os testes de unidade), conforme sugerido nas instruções de build resultar em falhas de ligação entre o executável e a biblioteca libgit2, dependendo da configuração utilizada.

Outro problema que pode acontecer é o aplicativo não encontrar o repositório GIT dos complementos. Neste caso, a clonagem do repositório GIT (comando git clone) resolve o problema.

Referências

https://github.com/fritzing/fritzing-app/wiki/1.-Building-Fritzing

https://forum.qt.io/topic/114317/problem-building-pro-file-in-qtcreator

Comentários