Skip to content

For Developers (PT only)

Matheus edited this page Dec 10, 2015 · 3 revisions

Informações Gerais Para Desenvolvedores do Tabuleiro

Introdução

Aqui se encontram informações sobre como compilar o tabuleiro, notas da arquitetura e protocolos.

Pré-Requisitos

O ambiente de compilação foi feito baseado em SCons. O código é todo escrito em C++(necessário suporte a C++11) e alguns arquivos em proto.

O tabuleiro virtual requer as seguintes bibliotecas:

  • Qt 4.8
  • Google Protocol Buffers
  • Boost
  • Glut.

Opcionalmente, pode-se usar também para logs:

  • Google Glog.

Para os Bravos

O tabuleiro foi compilado no Linux, MacOS e Cygwin sem maiores problemas. No windows, usando MinGW32 foi mais complicado por causa das dependências. Todas as bibliotecas devem ser compiladas por MinGW, inclusive o QT. Eu tive problema com o plugin de GIF do QT, portando compilei o QT estaticamente.

Uma boa referência para compilar QT estaticamente: http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc

Não é necessário compilar o QT todo: apenas QtOpenGL, QtGui e QtCore. Para compilar só esses componentes, pode-se usar:

make sub-core sub-opengl sub-gui sub-moc sub-rcc ou
make sub-tools-bootstrap sub-uic sub-moc sub-corelib sub-gui sub-opengl sub-rcc

No caso do boost, deve-se compilar system, filesystem, chrono, timer. Para compilar boost com mingw, devem-se fazer os seguintes comandos (dentro de um shell msys do mingw):

bootstrap mingw
./b2.exe toolset=gcc link=static variant=release threading=multi cxxflags=-std=c++0x address-model=32 filesystem system chrono timer

Eu compilei o conjunto de bibliotecas necessárias para a versão windows do programa. Descompacte este .zip na raiz do código fonte: https://drive.google.com/file/d/0B7clSIFMH9R-aGpJd2dzSnJoVEk/edit?usp=sharing

Também foi necessário mudar alguns cabeçalhos do MinGW, porque estavam causando erros de compilação:

include/time.h:129
//#ifndef STRICT_ANSI #if 1

Detalhes

Crie um arquivo local.Sconscript com suas configurações locais. Exemplo de local.SConscript. O

Import('env')
env['PROTOC'] = '/usr/bin/protoc'
env['CXX'] = 'c:/MinGW/bin/g++.exe'
env['CPPPATH'] += [env['QT_CPPPATH'] + '/QtGui',
                   env['QT_CPPPATH'] + '/QtCore',
                   env['QT_CPPPATH'] + '/QtOpenGL',]

Versão Android e IOS

Veja NOTAS_*txt na raiz do fonte.