Contents

 

Introdução ao Desenvolvimento do Inkscape

Link do Código: https://gitlab.com/inkscape/inkscape

Aqui pretendemos dar uma rápida referência de como começar com o desenvolvimento do Inkscape. Para mais detalhes, dê uma olhada no Inkscape Wiki e outras documentações específicas.

Configurar uma conta no Gitlab

Para reportar erros e ajudar com assuntos técnicos, você precisará de uma conta no GitLab. Para subir o código-fonte, você também precisará configurar chaves SSH para sua conta. Instruções mais detalhadas de configuração da conta estão disponíveis no tutorial do usuário Gitlab.

Buscando o código-fonte

A primeira etapa é obter o código-fonte. Apenas baixar os arquivos de código-fonte da "Liberação" não é suficiente, pois você precisará obter os recursos mais recentes e de ponta para desenvolver o Inkscape.

O Inkscape usa o sistema de controle de versão do git. Instruções de instalação específicas por plataforma estão disponíveis aqui. No Debian e sistemas relacionados (por exemplo, Ubuntu), você precisa instalar o pacote git. No Windows, você precisará baixar e executar o instalador.

Recomendamos configurar uma conta no Gitlab (veja acima) antes de obter o código-fonte, pois assim é mais fácil para subir o código posteriormente uma vez que você tenha acesso para isto. Ao configurar sua conta no Gitlab, execute os seguintes comandos:

git config --global user.name "Nome Real"
git config --global user.email "e-mail@dominio.tld"

onde Nome Real é seu nome real ou um pseudônimo que você deseje usar (deve ser reconhecível pelas pessoas na lista de discussão), e-mail@dominio.tld é o seu e-mail para envio e recebimento de mensagens relacionadas ao Inkscape (pode ser omitido se você quiser). Com esta configuração, você será capaz de subir o código uma vez que você estiver aprovado como membro da equipe de desenvolvedores do Inkscape no Gitlab.

Para obter o código-fonte mais recente, use o seguinte comando:

git clone git@gitlab.com:inkscape/inkscape.git

Para atualizar esse código posteriormente, use:

git pull

Compilando dentro de uma máquina virtual (Virtual Box)

Possivelmente a maneira mais simples de compilar o Inkscape é usando o inkup, que lhe disponibiliza um arquivo Vagrant capaz de construir uma máquina virtual, que compila os fontes do Inkscape. Isso requer o VirtualBox e Vagrant instalados em sua máquina.

Compilando o Inkscape no Linux

Instalar as dependências de compilação

Para compilar o Inkscape, você precisará instalar o compilador GCC e os arquivos de desenvolvimento para todas as bibliotecas que ele usa. A maneira mais fácil de fazer isso no Debian e sistemas relacionados é usar o comando:

sudo apt-get build-dep inkscape

Nota: Se você estiver via PPA para as versões mais recentes no Debian, você pode usar este comando alternativo para obter um conjunto mais preciso das dependências de compilação:

sudo apt-get build-dep inkscape-trunk

Observe que isto irá instalar as dependências de compilação do pacote Inkscape disponível em seus repositórios. Se o pacote é antigo, talvez seja necessário instalar algumas dependências adicionais; a saída do script configure deve lhe dar dicas sobre o que mais é necessário.

De 0.92 em diante

No Inkscape 0.92, damos suporte a dois sistemas de compilação paralelos: o autotools acima mencionado e CMake.

Para compilar com o CMake, faça o seguinte:

  mkdir build
  cd build
  cmake [-DCMAKE_INSTALL_PREFIX=/usr] ..
  make [-j8]
  sudo make install

Os colchetes indicam argumentos opcionais.

O argumento opcional -j8 para o make diz para executar 8 trabalhos em paralelo. Sinta-se livre para ajustar isto para o número de threads (núcleos físicos) disponíveis no hardware de seu computador. O argumento opcional -DCMAKE_INSTALL_PREFIX permite que você instale uma segunda versão do Inkscape em paralelo, numa pasta diferente (/usr no exemplo). Ele ainda vai usar todos os arquivos (incluindo preferences.xml) que estão no diretório ~/.config/inkscape.

Versões <= 0.92

Depois de ter as dependências instaladas, use os seguintes comandos no diretório de origem do Inkscape:

./autogen.sh
./configure [--prefix=/usr]
make [-j8]
sudo make install

Os colchetes indicam argumentos opcionais.

O argumento opcional -j8 no comando make diz para executar 8 trabalhos em paralelo. Sinta-se livre para ajustar isto para o número de threads (núcleos físicos) disponíveis no hardware de seu computador. O argumento opcional --prefix permite que você instale uma segunda versão do Inkscape em paralelo, em uma pasta diferente (/usr no exemplo). Ele ainda usará todos os arquivos (incluindo preferences.xml) que residem no diretório ~/.config/inkscape.

Compilando o Inkscape no Windows

Compilar o Inkscape no Windows é um pouco mais trabalhoso, pois as ferramentas e bibliotecas necessárias não estão incluídas no sistema operacional. Portanto, você precisará baixar separadamente:

  • o sistema de controle de versão do Git que é usado para gerenciar o código-fonte do Inkscape, bem como os fontes das bibliotecas de desenvolvimento (não são estritamente necessárias para uma compilação simples, mas altamente recomendável, especialmente se você quiser fazer compilações regulares ou contribuir com o código).
  • o sistema de compilação CMake (usado desde o Inkscape 0.92).
  • MinGW (acrônimo do inglês para "Minimalist GNU for Windows") que inclui as ferramentas necessárias do compilador e de linha de comando (ver nota abaixo!).
  • uma cópia de "Inkscape Devlibs", consulte inkscape-devlibs (para versões de 32-bits) ou inkscape-devlibs64 (para versões de 64-bits). Estes contêm versões pré-compiladas das bibliotecas de programação que o Inkscape precisa para executar.
    Você pode usar o Bazaar para baixar as devlibs, por exemplo, executando
    bzr checkout --lightweight lp:inkscape-devlibs C:\devlibs
    (o argumento "--lightweight" faz o Bazzar baixar apenas a revisão mais recente, poupando-lhe muito tempo de download e espaço em disco).

Uma vez que a versão do compilador MinGW que você precisará depende se você está compilando um executável de 32-bits ou 64-bits, e sobre a versão do compilador usada para compilar as devlibs, é altamente recomendável verificar os artigos com mais detalhes sobre Compilando o Inkscape para Windows e Compilando o Inkscape para Windows 64-bits para determinar os requisitos exatos antes de prosseguir.

Depois de ter baixado o código-fonte do Inkscape, e atendido à todos os requisitos, você estará pronto para compilar. Primeiro configure os caminhos no arquivo "mingwenv.bat" (localizado na raiz do diretório de origem do Inkscape) para coincidir com a localização das pastas em seu sistema. Em seguida, abra uma janela de linha de comando, navegue até o diretório do código-fonte do Inkscape e execute os seguintes comandos:

mingwenv.bat
configura as variáveis de ambiente
mkdir build
cd build
configura um diretório de compilação (se ocorrer problemas para executar, tente excluir este diretório e começar novamente)
cmake -G "MinGW Makefiles" ..
cria os arquivos make
mingw32-make -j 2
inicia o processo de compilação atual (a opção -j define o número de processadores para compilação e pode ser usada para acelerar significativamente o processo de compilação)
mingw32-make install

criar o diretório de distribuição (ou seja, copia todos os arquivos necessários para um subdiretório, por padrão "builds\inkscape", de onde você pode executar sua nova compilação do Inkscape)

Compilando o Inkscape no Mac

Instale as dependências listadas na wiki:

port install cairo boehmgc gtkmm3 intltool libxslt lcms2 gdl3 \
popt poppler boost gsl gnome-vfs libgnomeprintui bzr cmake potrace

Obter o inkscape:

bzr branch lp:inkscape trunk

Compilá-lo:

mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst && make -j8 && make install

Executá-lo:

inst/bin/inkscape

Fluxo de trabalho do desenvolvedor

Depurando com GDB

O Inkscape deve ser construído com os sinalizadores -g para g++ para que ele possa ser depurado com o GDB.

Desenvolvimento do Inkscape

A base de código do Inkscape

O Inkscape começou como uma bifurcação do Sodipodi, um aplicativo do GNOME baseado em GObject. O Inkscape é escrito em uma mistura de C e C++, devido a razões históricas. Esperamos eventualmente migrá-lo para C++. No entanto, ainda há um monte de código baseado em GObject, portanto, algum conhecimento de GObject é necessário para trabalhar com Inkscape.

O Inkscape usa componentes do conjunto de ferramentas GTK+ e a biblioteca de apoio Glib. Estamos no processo de migração do GTK+ 2.0 para o GTK+ 3.0. Nós também usamos partes somente do cabeçalho de carregamento (ou seja, é uma dependência em tempo de compilação, mas não uma dependência em tempo de execução). A biblioteca de geometria lib2geom, escrito em C++, que eventualmente destina-se a tornar-se um projeto separado. Você pode obter a versão mais recente de lib2geom em seu repositório no Git.

Saber como programar em C++ e usar o GTK é essencial para contribuir para o Inkscape. Felizmente, isto não é tão difícil de aprender, assim que você puder, leia tutoriais relevantes.

O projeto Inkscape usa o Doxygen para gerar automaticamente a documentação de código-fonte (incluindo diagramas da estrutura do programa). Você pode obter rapidamente uma visão geral sobre qual parte do programa você gostaria de trabalhar aqui.

Estilo de Programação

As diretrizes de Estilo de Programação do Inkscape podem ser encontradas aqui.

Comunidade

  • Lista de discussão: inkscape-devel@lists.sourceforge.net. A maioria dos desenvolvedores estão inscritos na lista.

  • IRC: #inkscape-devel no Freenode.

  • Rastreador de Falhas do Inkscape: Corrigir alguns erros fáceis é uma ótima maneira de começar a trabalhar com desenvolvimento do Inkscape.