Minha idéia é gerar um XHarbour com os recursos do Harbour.
NÃO é modificar o XHarbour.
XHarbour é igual Harbour, apenas seguiram caminhos diferentes, igual aconteceu com 3.2 e 3.4, mas como faz tempo aconteceu isso com o XHarbour, as diferenças ficaram maiores.
Mas..... o básico continua o mesmo, e o HBMK2.EXE pode ser o mesmo.
O que precisa?
Criar arquivos HBC e HBX, basicamente recompilar as contribs com a ajuda do HBMK2.
Isso NÃO é alterar o XHarbour, é apenas ter arquivos a mais, que não tem hoje.
Também podemos organizar pastas, igual no Harbour, conforme o compilador C.
A partir desse ponto teremos Harbour e XHarbour funcionando exatamente igual - no que diz respeito a compilar.
O mesmo XHarbour de sempre, apenas podendo usar as ferramentas do Harbour.
Porque isso nunca foi feito?
É simples:
- Existe o XHarbour comercial, que é vendido, eles NUNCA vão querer usar ferramentas do Harbour, mesmo que isso seja bom para os usuários.
- Existe o fivewin, que acaba mantendo compatibilidade com o XHarbour comercial.... e o mesmo motivo.
O Harbour 3.4 não esqueceu do XHarbour, e nem mesmo do Borland C, ele apenas não gera a versão oficial pra isso porque ninguém se interessou em fazer os ajustes, mas o HBMK2 continua compatÃvel.
Aliás, pra quem ainda não viu, o HBMK2 pode ser usado pra Harbour 3.4, Harbour 3.2, Harbour 3.0, Harbour 2.0, Harbour 1.0 e XHarbour
Só faltou ele funcionar pra Clipper... até seria interessante....
Todo conjunto de bibliotecas padrão do XHarbour é o mesmo conjunto do Harbour, por isso o HBMK2 resolve.
O que altera são as contribuições, mas isso pode ser resolvido com um HBC.
E pronto.
E as bibliotecas HMG, HMG Extended, OOHG, fivewin, etc ?
Continua tudo igual.
E os HBPs?
Serão os mesmos. Um recurso do HBP/HBMK2 é indicar se aquilo é pra Harbour ou XHarbour.
Digamos que em XHarbour precise da LIB minhoca, e no Harbour precise da LIB lombriga
Como fica isso no HBP?
{xhb}-lminhoca
{!xhb}-llombriga
Digamos que no MSVC precise adicionar a LIB minhoca, mas no BCC precise a LIB lombriga
{msvc}-lminhoca
{bcc}-llombriga
Digamos que em Windows precise da LIB minhoca, mas no Linux precise da LIB lombriga
Duas opções, só precisaria uma abaixo, mas colocar as duas
{win}-lminhoca
{!win}-llombriga
{linux}-llombriga
E por aà vai.
O uso de HBMK2.EXE simplifica muita coisa, e dá pra usar no XHarbour tranquilamente.
Se for o caso, pra não ter que digitar -xhb no XHarbour, podemos alterar o fonte do HBMK2.EXE adicionando isso caso ele esteja na pasta do XHarbour
IF "xharbour" $ hb_ProgName()
AAdd( aParamList, "-xhb" )
ENDIF
Adicionando 3 linhas no fonte do HBMK2, podemos deixá-lo mais fácil ainda para o XHarbour. só pra não ter que digitar -xhb na linha de comando.
Podemos ter Harbour e XHarbour na mesma máquina, podemos compilar com qualquer dos dois, podemos usar vários compiladores C, e sempre digitando a mesma coisa - apenas indicando se quisermos diferente do padrão.
Vantagem:
Todos do fórum vão estar compilando exatamente igual, não importa o que cada um usa.
E os recursos do HBMK2 vão longe: mostrar aonde está uma determinada função, criar programas multi-idioma, criar projeto universal pra qualquer compilador C, criar LIBs, usar multi compilador C, 32 ou 64 bits, etc.
Acho que vale a pena a gente unificar isso.
Talvez o resto do mundo siga o exemplo, talvez não, não importa.
Para o XHarbour tá mais fácil, já que ele não se altera.
Para as LIBs... a parte chata é ficar atualizando, mas poderia ser feito o mesmo pra HMG, HMG Extended, OOHG, e HWGUI (tem pra xHarbour?)
NÃO é modificar os fontes, é apenas usar HBMK2 e os recursos que ele oferece.
Quem se interessar, e quiser fazer os testes práticos, é só avisar.
Vocês do XHarbour não sabem o que estão perdendo....
Lógico... quem tá acostumado a usar BAT pronto, e nem sabe como a compilação funciona, não vai ver diferença.
Pode até ver muito problema resolvido, mas vai continuar sem saber o que acontece.