Em alguns cenários de desenvolvimento, não faz sentido depender de instaladores prontos – principalmente quando se precisa de versões mais recentes ou controle sobre o ambiente.
Esse é o caso do pgModeler, uma ferramenta de modelagem para PostgreSQL que pode ser compilada diretamente no macOS.
Importante: embora o pgModeler seja open-source (GPLv3), os binários oficiais são distribuídos comercialmente. A redistribuição de binários exige o cumprimento das obrigações da GPL (como disponibilização do código-fonte), o que nem sempre é viável em ambientes corporativos. Por isso, o build local costuma ser a abordagem mais adequada.
Sobre o pgModeler
O pgModeler é uma ferramenta open-source para modelagem de bancos de dados PostgreSQL, permitindo criar diagramas, gerar scripts SQL e realizar engenharia reversa de estruturas existentes.
Ele é desenvolvido em C++ com interface baseada em Qt, o que exige um processo de build específico no Windows.
Por que compilar manualmente?
Embora existam versões pré-compiladas, o build local é, na prática, a opção mais segura em ambientes controlados.
Atenção: a distribuição de binários do pgModeler não é proibida pela licença, mas implica obrigações da GPLv3 (como fornecer o código-fonte correspondente e manter a mesma licença). Além disso, os binários oficiais fazem parte do modelo comercial do projeto.
Além disso, compilar garante:
- Uso da versão mais atual
- Controle sobre dependências
- Padronização do ambiente de desenvolvimento
Dependências necessárias
Antes do build, são necessários:
- Xcode Command Line Tools: fornece
clang,clang++,make, SDK do macOS e ferramentas de compilação. - Homebrew: gerenciador de pacotes para instalar Qt e libpq.
- Qt: framework C++ usado pela interface gráfica do pgModeler.
- libpq: biblioteca cliente oficial do PostgreSQL, usada para conexão com bancos PostgreSQL.
1) Download do código-fonte
git clone https://github.com/nullptrlabs/pgmodeler
cd pgmodeler
O comando git clone baixa o código-fonte do pgModeler a partir do repositório oficial mantido pela Nullptr Labs.
2) Instalação das ferramentas de linha de comando da Apple
xcode-select --install
Esse comando instala o pacote Xcode Command Line Tools, necessário para compilar projetos C/C++ no macOS.
Após instalar, confirme:
xcode-select -p
which clang++
clang++ --version
O esperado é algo como:
/Library/Developer/CommandLineTools
/usr/bin/clang++
3) Instalação das dependências com Homebrew
brew install qt libpq
Esse comando instala:
- qt: bibliotecas e ferramentas Qt, incluindo qmake;
- libpq: headers e biblioteca cliente do PostgreSQL.
Em Macs Apple Silicon, o Homebrew normalmente usa:
/opt/homebrew
Por isso os caminhos usados no build apontam para:
/opt/homebrew/opt/libpq/include
/opt/homebrew/opt/libpq/lib/libpq.dylib
4) Configuração do build com qmake
qmake -r pgmodeler.pro \
QMAKE_CC=/usr/bin/clang \
QMAKE_CXX=/usr/bin/clang++ \
QMAKE_MAC_SDK=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk \
PGSQL_INC=/opt/homebrew/opt/libpq/include \
PGSQL_LIB=/opt/homebrew/opt/libpq/lib/libpq.dylib
Explicação dos parâmetros:
- qmake -r pgmodeler.pro: gera os Makefiles recursivamente para o projeto e subprojetos.
- QMAKE_CC=/usr/bin/clang: define o compilador C.
- QMAKE_CXX=/usr/bin/clang++: define o compilador C++.
- QMAKE_MAC_SDK=…: força o uso do SDK das Command Line Tools.
- PGSQL_INC=…: informa onde estão os headers do PostgreSQL, como libpq-fe.h.
- PGSQL_LIB=…: informa onde está a biblioteca libpq.dylib.
5) Compilação
make -j$(sysctl -n hw.ncpu)
Esse comando compila o pgModeler usando todos os núcleos disponíveis da máquina.
6) Instalação
sudo make install
Instala o aplicativo em:
/Applications/pgModeler.app
Considerações finais
Compilar o pgModeler no macOS garante maior controle sobre o ambiente, dependências e versão utilizada.
Essa abordagem é especialmente útil quando se deseja:
- usar versões mais recentes do código-fonte;
- evitar dependência de instaladores prontos;
- padronizar o ambiente de desenvolvimento;
- diagnosticar problemas de compatibilidade com Qt, PostgreSQL ou SDK do macOS.