- Baixar Harbour 3.2 Nightly ( já vem com mingw 5.3)
- Opcionalmente, Harbour 3.4, fontes, pra compilar com essa mingw 5.3
Uma vez tudo certo com o Harbour, prossegue com minigui extended
- Baixar minigui extended 16.13 ( é a que existe pra download )
- Configurar a pasta dela, exemplo
SET MG_ROOT=C:\MINIGUI
rodar mgconfig.bat
Exatamente os que uso na minha máquina, por isso algo diferente.
--------------- mgconfig.bat
@echo off
rem MG_ROOT = pasta root da minigui
rem
IF "%MG_ROOT%"=="" GOTO :help
set PATH=%PATH%;%MG_ROOT%
if %USERDOMAIN%==JOSEJPA set PATH=%PATH%;d:\harbour\comp\mingw\bin
if %USERDOMAIN%==JOSEJPA set HB_COMPILER=mingw
if %USERDOMAIN%==JOSEJPA set HB_COMPILER_VER=
GOTO :End
:help
echo First define MG_ROOT
echo example: SET MG_ROOT=c:\minigui
:goto :End
:End
Rodar a criação da minigui.
Notem que ele cria um HBP nas pastas.
Infelizmente nada tem padrão: Até o Harbour 3.2 é diferente do 3.4, então deste jeito vai permitir ajustes extras nos hbp, aonde precisar
No geral é criar a lista de fontes da pasta, e indicar pastas de include/lib.
O bat compila os HBP existentes, ou cria um default e compila.
-----mgcreate.bat
@echo off
if "%1" == "" goto :CreateAll
:CreateSingle
echo.
echo ----------%2.LIB Begin Creation
echo.
cd %MG_ROOT%\%1
if exist %2.hbp goto :compile
for %%A in (*.prg) do echo %%A >> %2.hbp
for %%A in (*.c) do echo %%A >> %2.hbp
echo -hblib >> %2.hbp
echo -o%MG_ROOT%\LIB\%2 >> %2.hbp
echo -I%MG_ROOT%\INCLUDE >> %2.hbp
rem JoseQuintas specific configuration
if %USERDOMAIN%==JOSEJPA echo -workdir=c:\temp >> %2.hbp
:compile
hbmk2 %2.hbp -I%MG_ROOT%\INCLUDE
cd %MG_ROOT%
echo.
echo ----------%2.LIB End Creation
echo.
pause Next LIB
goto :FIM
:CreateAll
call %0 SOURCE MINIGUI
call %0 SOURCE\PROPGRID PROPGRID
call %0 SOURCE\PROPSHEET PROPSHEET
call %0 SOURCE\TSBROWSE TSBROWSE
call %0 SOURCE\SOCKET SOCKET
call %0 SOURCE\MINIPRINT2 MINIPRINT2
call %0 SOURCE\QHTM HMG_QHTM
call %0 SOURCE\WINREPORT WINREPORT
call %0 SOURCE\DEBUGGER DEBUGGER
goto :FIM
:FIM
Por fim, arquivos auxiliares pra compilar pequenos exemplos, com até 9 parâmetros opcionais, que podem ser fontes, libs, ou parâmetros mesmo.
----------mgcompile.bat
hbmk2 %1 %2 %3 %4 %5 %6 %7 %8 %9 -L%MG_ROOT%\lib -I%MG_ROOT%\include %MG_ROOT%\mglink.hbp
[code]
----------mglink.hbp
#to compile samples hmg
#-lcputype
-ldebugger
-lhmg_qhtm
-lminigui
-lminiprint2
#-lprocinfo
-lpropgrid
-lpropsheet
-ltsbrowse
-lWinReport
#need trash function Charrem() on h_Browse
-lhbct
-strip
-compr
-mt
É tudo arquivo padrão Harbour.
Se tiver LIB da minigui pra acrescentar, é só acrescentar pasta e nome na lista do bat mgcreate.bat, e no mglink.hbp
Se precisar ajustar, por exemplo a lib winreport que usa PDF, só ajustar o hbp
No Harbour 3.2: acrescentar pasta de include e a lib -Ipasta_hbhpdf_include -Lpasta_hbhpdf_lib
No Harbour 3.4: acrescentar hbhpdf.hbc
Não sei exatamente as diferenças entre Harbour 3.2 e 3.4, apenas os testes me fizeram lembrar de algumas delas.
No Harbour 3.2 também é obrigatório indicar HB_INSTALL_PREFIX com a pasta do Harbour.
Definir pasta de instalação do Harbour deveria ser só pra geração do Harbour, é assim no Harbour 3.4, mas não no Harbour 3.2
São essas coisinhas que atrapalham os programadores Harbour.
Como o pessoal tem que ficar compatÃvel com Harbour 3.2, Harbour 3.4 e xHarbour, acabam criando coisas diferentes dos três.
A consequência é simples:
Ninguém aprende nada, fica todo mundo perdido com as LIBs, e um não pode ajudar o outro, porque é tudo diferente, e cada um usa uma coisa.
Nem parece que todo mundo usa Harbour.....
Importante:
isto serviu pra HMG Extended, Harbour 3.2 e 3.4 com mingw 5.3 (a que vém junto com Harbour 3.2)
Só precisei anular uma linha em c_media.c, porque não sei como resolver e não deixava compilar.
ISTO NÃO ALTERA OS ARQUIVOS ORIGINAIS DA LIB, apenas os binários (LIBs .A )
Confirmando que deu tudo certo, pode apagar muiiiiitos BATs das pastas, mais de 600
Se deu errado, ou se precisar, só gerar as LIBs como sempre fez, do jeito original.
Uma coisa é certa:
Sendo Harbour padrão, é igual pra todo mundo, não importa que lib seja usada.
AÃ todo mundo vai "falar a mesma lÃngua" quando se tratar de Harbour.
Usar biblioteca diferente já deixa a programação diferente, não precisa também alterar a forma de uso do Harbour.
Já passou da hora dos usuários cobrarem isso das bilbiotecas, ou de algum usuário contribuir com isso..
Não é só recurso novo que faz a ferramenta ficar melhor e a ferramenta de trabalho também precisa de manutenção
Parece até piada, faltar recursos do Harbour original, quando nem precisa trocar de Harbour.
Bom divertimento.
Nota:
Cobrem, ou enviem, alterações de/para os autores da LIB.
Eu continuo não gostando dessas LIBs, estou apenas fazendo testes simples.
Já sei que vou perder recursos que uso hoje, mas ainda não sei se as vantagens vão compensar as perdas.
Pelo menos mantendo o Harbour original evita perdas maiores.