Página 1 de 1

Configurando a máquina

Enviado: 27 Ago 2023 15:15
por JoséQuintas
Eu ainda acho estranho se perderem pra configurar máquina, principalmente pra HBMK2.
A coisa é extremamente simples.

1) PATH pra EXEs
Pra funcionar um EXE a partir de qualquer pasta, precisa estar no PATH
Quais os EXEs do harbour ? harbour.exe, hbmk2.exe, compilador C, e algum utilitário extra, a IDE das LIBs por exemplo.
Exemplo:
SET PATH=%PATH%;d:\harbour\bin;d:\harbour\comp\mingw32\bin;d:\github\hmge\ide;d:\github\hwgui\ide\ide

2) PATH pra LIBs
Aqui considero o CERTO dividir em duas partes: A PASTA DA LIB e o resto da lib
O projeto precisa saber qual é a LIB, e não os detalhes sobre a LIB
Desta forma, basta indicar em HARBOUR\BIN\HBMK.HBC o PATH das LIBs.
Acaba funcionando parecido com o PATH do sistema operacional, mas vale para o HBMK2 apenas
Exemlo:
---HBMK.HBC---
libpaths=d:\github\hwgui
libpaths=d:\github\hmge
libpaths=d:\github\oohg

3) Necessidades da LIB
Aqui depende de cada lib, é onde vai indicar path de arquivos include,lib,etc.
Exemplo:
---HWGUI.HBC---
incpaths=include
libpaths=lib
{!hblib}libs=hwgui procmisc hbxml

4) Pode criar o HBP pra cada projeto com o que entra em cada projeto, ou compilar diretamente.
Exemplo:
HBMK2 teste.prg hwgui.hbc
---teste.hbp---
teste.prg
hwgui.hbc

Não importa o projeto, não importa a LIB, é só isso acima.

Se tem padrão de configuração PRA TODOS OS PROJETOS, coloque em HARBOUR\BIN\HBMK.HBC
Pode acrescentar aqui -m -n -w3 -es2 -compress -workdir=c:\temp e outras coisas mais

Se a LIB tem necessidades especiais, coloque em exemplo HWGUI.HBC
Aqui entram parâmetros QUE A LIB precisa, arquivos QUE A LIB precisa

Se o PROJETO tem necessidades especiais, coloque em exemplo PROJETO.HBP
Nomes de fontes, nomes de RCs, nomes de LIBs, etc.

programador pensa, programador cria, use o cérebro.

Dá falta de arquivo na compilação: se dá falta, é porque não colocou, é porque não existe, é porque PATH tá errado.
O arquivo é da hwgui ? isso tem a ver com hwgui, tá faltando indicar no hwgui.hbc
O arquivo é da hmg extended ? isso tem a ver com hmge, tá faltando indicar no hmge.hbc

Com tudo organizado, tudo funciona direito, e sabe exatamente aonde procurar.

Configurando a máquina

Enviado: 27 Ago 2023 18:32
por JoséQuintas
hmgex.png
Por coincidência, acabou de dar erro no github, na minha geração completa de tudo.
Acusa falta de arquivo CH

Na minha máquina funciona.

Simples:
Como esse projeto é de LIB, deve estar faltando no HBP a indicação de harupdf.hbc, que é referente a lib dona desse ch.
E como isso faz parte do harbour, seria só isso mesmo.
Elementar também: se isso é parte da HMG Extended, e depende de harupdf.hbc, preciso disso TAMBÉM no HMGE.HBC

O programa final nem precisa saber disso, vai apenas indicar HMGE.HBC pra incluir HMG Extended, e o HBC dela que faça o resto.

Nota:
Nem é proposital.
É que tá configurado no github pra compilar tudo que eu faço.
Qualquer erro, em qualquer coisa, feita a partir de uma máquina do zero, ele me avisa.
É que está num projeto específico, então só aciona quando salvo nele.
errogit.png
Aí fica vindo email pra corrigir.

É..... a geração de tudo está na SEFAZCLASS, visível pra todo mundo, e o "bat" de geração do github está na máquina de todo mundo que baixa sefazclass. Todo mundo pode fazer a mesma coisa no github.

Configurando a máquina

Enviado: 29 Ago 2023 16:35
por JoséQuintas
Continuando nisso:

Mesmo sabendo configurar, eu criei um programa que faz a conferência, e até configura pra mim, assim não esqueço.
O programa confere:
- variáveis de ambiente, cria se precisar
- PATH, altera se precisar
- confere se encontra harbour e mingw no PATH
- Cria e/ou altera o HBMK.HBC do harbour\bin
- assina os EXEs se precisar

Sua máquina é organizada ?
Deixa tudo sempre no mesmo lugar ?
Então... um programa pode conferir se tudo está lá.
Formatou a máquina, o programa confere.

No momento troquei o mingw 7.3 pra 16.3
Fica em harbour\comp\mingw32.
Fiz o teste de velocidade do harbour, reduziu de 17.5 pra 12.2 ou algo assim, então seguir com ele e acompanhar.

Fui na pasta da HMG Extended: C <ENTER>
Fui na pasta da HWGUI: C <ENTER>
Fui na pasta da OOHG: C <ENTER>
Fui na pasta de applicativos: ALL <ENTER> pra compilar sefazclass, rmchartclass, libjpa, wvg, etc. e aplicativos

O que tem no bat C.BAT ?
A chamada do meu aplicativo, que confere tudo e aciona o HBMK2 pra tudo que existir na pasta (ou HBP ou *.prg)
E o ALL.BAT ?
Muda pra pasta de cada aplicativo e aciona o C.BAT

Tem coisa mais simples que isso ?

Quer igual ? É só fazer uai, não é programador?

HMG Extended e OOHG são diferentes ? só na máquina de vocês, e só porque vocês querem.
Mas aí já é outra história....