mosaicode/Makefile

174 lines
6.6 KiB
Makefile

clean:
rm -rfv *.pyc *.py,cache __pycache__ None *.mscd *.txt
rm -rfv mosaicode/*.pyc mosaicode/*.py,cache mosaicode/__pycache__ mosaicode/None mosaicode/*.mscd
rm -rfv mosaicode/control/*.pyc mosaicode/control/*.py,cache mosaicode/control/__pycache__ mosaicode/control/None mosaicode/control/*.mscd
rm -rfv mosaicode/persistence/*.pyc mosaicode/persistence/*.py,cache mosaicode/persistence/__pycache__
rm -rfv mosaicode/utils/*.pyc mosaicode/utils/*.py,cache mosaicode/utils/__pycache__
rm -rfv mosaicode/GUI/*.pyc mosaicode/GUI/*.py,cache mosaicode/GUI/__pycache__
rm -rfv mosaicode/GUI/fields/*.pyc mosaicode/GUI/fields/*.py,cache mosaicode/GUI/fields/__pycache__
rm -rfv mosaicode/model/*.pyc mosaicode/model/*.py,cache mosaicode/model/__pycache__
rm -rfv mosaicode/plugins/*.pyc mosaicode/plugins/*.py,cache mosaicode/plugins/__pycache__
rm -rfv mosaicode/plugins/extensionsmanager/*.pyc mosaicode/plugins/extensionsmanager/*.py,cache mosaicode/plugins/extensionsmanager/__pycache__
rm -rfv mosaicode/config/*.pyc mosaicode/config/*.py,cache mosaicode/config/__pycache__
rm -rfv mosaicode/data/*.pyc mosaicode/data/*.py,cache mosaicode/data/__pycache__
rm -rfv mosaicode-javascript-webaudio/*.pyc mosaicode-javascript-webaudio/*.py,cache mosaicode-javascript-webaudio/__pycache__
rm -rfv mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/*.pyc mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/*.py,cache mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/__pycache__
rm -rfv mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/*.pyc mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/*.py,cache mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/__pycache__
rm -rfv mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/blocks/*.pyc mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/blocks/*.py,cache mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/blocks/__pycache__
rm -rfv mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/ports/*.pyc mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/ports/*.py,cache mosaicode-javascript-webaudio/mosaicode_lib_javascript_webaudio/extensions/ports/__pycache__
rm -rfv *.egg-info
sudo rm -rfv build dist 2>/dev/null || true
clear
coverage:
coverage run --source=mosaicode -m pytest
coverage report -m
coverage html
clean_coverage:
rm -rfv htmlcov
clear
test_normal:
python -m pytest
# =============================================================================
# INSTALAÇÃO E DEPENDÊNCIAS
# =============================================================================
# Instalar dependências do sistema (Ubuntu/Debian)
install_system_deps:
@echo "Instalando dependências do sistema..."
sudo apt-get update
sudo apt-get install -y \
python3-gi \
python3-cairo \
python3-gi-cairo \
gir1.2-gtk-3.0 \
libgirepository1.0-dev \
python3-dev \
build-essential \
pkg-config \
python3-pip \
python3-venv
@echo "Dependências do sistema instaladas!"
# Instalar dependências Python
install_python_deps:
@echo "Instalando dependências Python..."
pip3 install --user --break-system-packages \
pycairo>=1.20.0 \
PyGObject>=3.40.0 \
pgi \
setuptools>=61.0 \
wheel
@echo "Dependências Python instaladas!"
# Verificar se as dependências estão instaladas
check_deps:
@echo "Verificando dependências..."
@python3 -c "import gi; print('✓ PyGObject: OK')" || echo "✗ PyGObject: FALHOU"
@python3 -c "import cairo; print('✓ PyCairo: OK')" || echo "✗ PyCairo: FALHOU"
@python3 -c "import pgi; print('✓ PGI: OK')" || echo "✗ PGI: FALHOU"
@echo "Verificação concluída!"
# Instalação completa (dependências + mosaicode)
install_full: install_system_deps install_python_deps install
@echo "Instalação completa concluída!"
@echo "Execute 'make check_deps' para verificar se tudo está funcionando."
# Instalação completa global (dependências + mosaicode global)
install_full_global: install_system_deps install_python_deps install_global
@echo "Instalação completa global concluída!"
@echo "Execute 'make check_deps' para verificar se tudo está funcionando."
# Instalar mosaicode (usuário)
install:
pip3 install --user --break-system-packages -e .
# Instalar mosaicode (global)
install_global:
sudo pip3 install -e .
# Desinstalar mosaicode (usuário)
uninstall:
pip3 uninstall mosaicode
# Desinstalar mosaicode (global)
uninstall_global:
sudo pip3 uninstall mosaicode
# =============================================================================
# DESENVOLVIMENTO E TESTES
# =============================================================================
# Criar ambiente virtual
venv:
python3 -m venv venv
@echo "Ambiente virtual criado. Ative com: source venv/bin/activate"
# Instalar em ambiente virtual
install_venv: venv
@echo "Ativando ambiente virtual e instalando..."
. venv/bin/activate && pip install -e .
@echo "Instalação no ambiente virtual concluída!"
# Executar mosaicode (desenvolvimento)
run:
PYTHONPATH=. python3 launcher/mosaicode
# Executar mosaicode (instalado)
run_installed:
mosaicode
# =============================================================================
# UTILITÁRIOS
# =============================================================================
# Mostrar ajuda
help:
@echo "Comandos disponíveis:"
@echo ""
@echo "INSTALAÇÃO:"
@echo " install_system_deps - Instalar dependências do sistema"
@echo " install_python_deps - Instalar dependências Python"
@echo " install_full - Instalação completa (usuário)"
@echo " install_full_global - Instalação completa (global)"
@echo " install - Instalar mosaicode (usuário)"
@echo " install_global - Instalar mosaicode (global)"
@echo " install_venv - Instalar em ambiente virtual"
@echo ""
@echo "VERIFICAÇÃO:"
@echo " check_deps - Verificar se dependências estão OK"
@echo ""
@echo "EXECUÇÃO:"
@echo " run - Executar mosaicode (desenvolvimento)"
@echo " run_installed - Executar mosaicode (instalado)"
@echo ""
@echo "LIMPEZA:"
@echo " clean - Limpar arquivos temporários"
@echo " clean_coverage - Limpar relatórios de coverage"
@echo " uninstall - Desinstalar mosaicode (usuário)"
@echo " uninstall_global - Desinstalar mosaicode (global)"
@echo ""
@echo "TESTES:"
@echo " test_normal - Executar testes"
@echo " coverage - Executar testes com coverage"