Como se passa uma diretiva ao compilar?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

ricardo-barros
Usuário Nível 3
Usuário Nível 3
Mensagens: 104
Registrado em: 29 Out 2009 20:12
Localização: Fortaleza

Como se passa uma diretiva ao compilar?

Mensagem por ricardo-barros »

Pessoal,

Eu já inseri nos prg do meu sistema as declarações #IfDef __DOS__ para que ele saiba o que fazer quando as funções forem usadas no modo console. Mas não sei como informar isso ao compilar.

Gostaria de saber isso no Harbour e no xHarbour pois ainda não decidi qual dos dois vou utilizar.

Quem sabe aí, por favor me diga.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Como se passa uma diretiva ao compilar?

Mensagem por alxsts »

Olá!

A informação abaixo funciona no xHarbour. Não posso afirmar que funcione no Harbour mas, acredito que sim pois vem desde o Clipper.

O que você precisa é passar esse parâmetro na compilação:
- se estiver usando HBMake, na seção Opções do xHarbour / User Defines, informe o teu define ( __DOS__ ) .
- se estiver compilando pela linha de comando, use o switch /d ( /d__DOS__ )
Naturalmente, como você já mencionou, é preciso tratar isto na aplicação:

Código: Selecionar todos

Function Main()

   #ifDef __DOS__
      Alert( "Versao DOS" )
   #else
      Alert( "Versao Foo" )
   #endif

   // comandos comuns às duas versões...

   Return NIL
[]´s
Alexandre Santos (AlxSts)
ricardo-barros
Usuário Nível 3
Usuário Nível 3
Mensagens: 104
Registrado em: 29 Out 2009 20:12
Localização: Fortaleza

Re: Como se passa uma diretiva ao compilar?

Mensagem por ricardo-barros »

Obrigado, colega.

Mais alguém poderia dizer como eu faço isso (agora no Harbour 2.0)?

Eu uso o Hbmk2 pra compilar.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Como se passa uma diretiva ao compilar?

Mensagem por alxsts »

Olá!

Sinceramente nunca usei o HBMk2. Até executei mas não consta nenhum parâmetro relacionado. Com certeza dá para fazer pela linha de comando do Harbour, como escrevi anteriormente
alxsts escreveu:- se estiver compilando pela linha de comando, use o switch /d ( /d__DOS__ )
Vamos aguardar a manifestação dos colegas...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Como se passa uma diretiva ao compilar?

Mensagem por asimoes »

No harbour faça assim:

No seu PRG:

// #IFDEF VERSAO_DE_TESTE1
// Info("VERSÃO DE TESTE1" )
// #ENDIF
// #IFDEF VERSAO_DE_TESTE2
// Info("VERSÃO DE TESTE2")
// #ENDIF

No HBM:

Código: Selecionar todos

# ---------------------------
# Nome do Executável
# ---------------------------
-oteste
# ---------------------------
# Bibliotecas
# ---------------------------
-llibct
-lhbnf
-lhbwin
# ---------------------------
# Caminho dos Includes
# ---------------------------
-incpath=d:\harbour\bcc\include;
# ---------------------------
# Caminho das Libs da MiniGui
# ---------------------------
-Ld:\minigui\lib
-Ld:\minigui\harbour\lib
# ---------------------------
# Outros Parâmetros
# ---------------------------
-workdir=.\OBJ\
-head=full
-n
-dVERSAO_DE_TESTE1
-dVERSAO_DE_TESTE2
-nowarn
-inc
#-icon=.\IMG\PRINT.ICO
#-icon=clock.ico
# ---------------------------
# Prg(s) e Rc(s)
# ---------------------------
teste
# ---------------------------
# Fim
# ---------------------------
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
ricardo-barros
Usuário Nível 3
Usuário Nível 3
Mensagens: 104
Registrado em: 29 Out 2009 20:12
Localização: Fortaleza

Re: Como se passa uma diretiva ao compilar?

Mensagem por ricardo-barros »

Obrigado, Asimoes

Eu que prefiro usar arquivos make já tinha feito um para usar com o Hbmk2 porém ele se resumia a uma lista de prgs. Vou usar suas dicas para enriquecê-lo e implantar a diretiva de compilação.

Gostaria de ver também um exemplo para o xHarbour (Hbmake)

Se mais alguém puder colaborar, agradeço.
Responder