xDev Studio com Harbour 3.0

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

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

xDev Studio com Harbour 3.0

Mensagem por clodoaldomonteiro »

Olá amigos!

Existe alguma maneira de configurar o xDev Studio para compilar com o Harbuor 3.0 ou superior?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
binho_fasa
Usuário Nível 2
Usuário Nível 2
Mensagens: 93
Registrado em: 06 Jul 2004 12:53
Localização: Brazil
Contato:

xDev Studio com Harbour 3.0

Mensagem por binho_fasa »

Amigo, eu tentei fazer algo simular mas não consegui rodar diretamente pela XDEV, estou usando o harbour 3.2. Confesso que não tive muito tempo para tentar montar um script personalizado e o que fiz foi gerar um arquivo .hbp com os .prgs e libs usadas e criei um arquivo.bat que chama o hbmk2 que pode ser chamado pela XDevStudio. Não é melhor solução mas esta me atendendo no momento.

[]´s
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

xDev Studio com Harbour 3.0

Mensagem por Kapiaba »

Anexos
xDevStudio_docs.pdf
[PDF]Ferramentas xBase - fivewin-contributions
(1.39 MiB) Baixado 343 vezes
Avatar do usuário
RamonXHB
Usuário Nível 3
Usuário Nível 3
Mensagens: 159
Registrado em: 03 Mar 2007 14:55

xDev Studio com Harbour 3.0

Mensagem por RamonXHB »

Tem nos downloads a versão configurada para compilar a versão atual da minigui, que usa o harbour 3.X com compilador Borland.

XDevStudio para MiniGUI e BCC Atual
Editado pela última vez por Toledo em 11 Mai 2015 09:57, em um total de 1 vez.
Razão: Mensagem editada para colocar o link do arquivo na seção Downloads
Ramon A. Körber Jr.
Harbour 3.2 MiniGUI Extended Edition
xDevStudio v0.70 - BCC 5.82 - Lazarus FreePascal
Firebird
AdoDB - ODBC
Windows - Linux
Linux User Number 404280
MSN - ramon15061959@hotmail.com
Skype - ramon15061959
ICQ - UIN 82580595
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

xDev Studio com Harbour 3.0

Mensagem por rochinha »

Amiguinhos,

RamomXHB
Tem nos downloads a versão configurada para compilar a versão atual da minigui, que usa o harbour 3.X com compilador Borland.
Voce está afirmando ou está perguntando?

Se estiver perguntando sugiro pesquisar nos links acima, pois acho que o Vailton não fez mais versões do xDev.

Vale lembrar que não uso mais, como sou muito dinamico, as vezes uso o notepad, wordpad, qualquerpad e compilo na base do .BAT pela pressa, mas é a IDE Tupiniquim mais gostosa de usar.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

xDev Studio com Harbour 3.0

Mensagem por clodoaldomonteiro »

Concordo com o Rochinha que é a IDE mais gostosa de usar, por isso abri esse tópico.

Kapiaba, acho que os links que você postou não responde especificamente a minha pergunta, mas valeu a ajuda.

Tomara que o Vailton faça novas atualizações para o xDev.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

xDev Studio com Harbour 3.0

Mensagem por deividdjs »

Harbour.xCompiler.prg
(9.29 KiB) Baixado 43 vezes
consegui trabalhar no script para usar HBMK2.EXE e usando harbour 3.0 ou superior ...

Código: Selecionar todos

/*
 * FOZ DO IGUAÇU - PR 29-09-23 @ 18:41
 * MODIFICADO POR DEIVID SOUZA
 * COMPILAR EM HARBOUR 3.0 OU SUPERIOR
 * BCC / MINGW  + HBMK2.EXE
 * ---------------------------------------
 * Harbour.xCompiler.prg / xDevStudio 0.70
 * ---------------------------------------
 *
 * Arquivo contendo os comandos de Script para processamento de um projeto
 * Harbour modo CONSOLE com Borland BCC ou MinGW.
 */
#define CRLF Chr(13)+Chr(10)

function Prepare
   type := Project( 'TargetType' )
   
   if FileExists( 'harbour.exe', m_PreSetPath ) .or. ;
      FileExists( 'hb.exe', m_PreSetPath )
   else
      MsgError( 'O arquivo principal do compilador não existe!' )
      return .f.
   end
    
   if !FileExists( 'bcc32.exe', m_PreSetPath )
      MsgError( 'O arquivo requerido BCC32.EXE não foi localizado no sistema!' )
      return .f.
   end
    
   if !FileExists( 'hbmk2.exe', m_PreSetPath )
      MsgError( 'O arquivo requerido hbmk2.EXE não foi localizado no sistema!' )
      return .f.
   end

   /*
    * 30/9/2006 21:02:35
    * Aqui neste ponto setamos a variavel abaixo como SIM, indicando
    * que desejamos recompilar todo o projeto. Caso o valor dela seja .F.
    * a xDev irá compilar e linkar usando o padrao solicitado pelo 
    * programador que estiver usando a xDev.
    */
   m_bCompileAll := SameText( fForceCompileAll, 'sim' )
   return .t.
 
function UnPrepare
   return .t.
 
/*
 * Esta função é executada, sempre que a xDev precisar compilar um arquivo .PRG
 */ 
function OnFilePRG
 * Preparamos a linha de comando
   cmd := 'harbour.exe'
   cmd += ' ' + m_sFileName + ''
   cmd += ' /q /o' + m_sOutPut
   cmd += ' ' + fFlagA + ' ' + fFlagL + ' ' + fFlagM + ' ' + ; 
          ' ' + fFlagN + ' ' + fFlagZ  + ' ' + fFlagP
 
   
 * Verificarmos se ele nao quer desativar o DEBUG para este módulo em específico!
 * para isto usamos a funcao SameText() que compara os 2 argumentos ignorando 
 * letras maiúsculas / minúsculas.
 * 
 
   if !SameText( PRG_DisableDebug, 'sim' )
      cmd += ' ' + fFlagB 
   end
*/
     
 * Verificamos as diretrivas #DEFINEs e adicionamos ela na linha de comando!
   aDefs := Alltrim(CustomDefines) + ',' + ;   // Diretrivas gerais do projeto
            Alltrim(PRG_Defines)   + ',' + ;   // Diretrivas específicas deste arquivo
            Alltrim(m_PreSetDefines)           // Estas sao as diretrivas do PROJETO e do PRESET atual  
            

   aDefs := StrTran(aDefs, ';', ',' )
   aDefs := StrTran(aDefs, ' ', '' )
   aDefs := ListAsArray( aDefs, ',')
   cmd   := alltrim( cmd )

   for i := 0 to len( aDefs )
       if !Empty(aDefs[i])
         cmd += ' /D' + aDefs[i]
       end
   next
   
 * Isto inclui os #DEFINEs de cada versao do xHb e do HB específicas
   if !Empty(m_PresetConstants)  
      cmd  += m_PresetConstants
   end

 * Colocamos os outros parametros (se houver)
   cmd := alltrim( cmd )
   cmd += " " + fMiscOption1           
   
 * Executamos o comando específico para compilar 
   runBat(cmd)      
   
   bOk := (ErrorLevel() == 0)
   return bOk
     
/*
 * Esta função é executada, sempre que a xDev precisar compilar um arquivo .C/.CPP
 */ 
function OnFileC
   
 * Preparamos a linha de comando
   aLines := {}
		 
 * Verificamos as diretrivas #DEFINEs e adicionamos ela na linha de comando!
   aDefs := Alltrim(CustomDefines) + ',' + ;   // Diretrivas gerais do projeto
            Alltrim(PRG_Defines)   + ',' + ;   // Diretrivas específicas deste arquivo
            Alltrim(m_PreSetDefines)           // Estas sao as diretrivas do PROJETO e do PRESET atual  
                        
   aDefs := StrTran(aDefs, ';', ',' )
   aDefs := StrTran(aDefs, ' ', '' )
   aDefs := ListAsArray( aDefs, ',')
   cmd   := alltrim( cmd )

   for i := 0 to len( aDefs )
       if !Empty(aDefs[i])
          AAdd( aLines, '-D' + aDefs[i])
       end
   next

 * Isto inclui os #DEFINEs de cada versao do xHb e do HB específicas
   if !Empty(m_PresetConstants)  
      AAdd( aLines, m_PresetConstants)
   end
	
 * Ajustamos os outros parametros
   AAdd( aLines, '-I' + m_PreSetInclude)
   AAdd( aLines, '-L' + m_PreSetLib + ';' +m_PreSetObj)
   AAdd( aLines, '-o' + m_sOutPut)
   AAdd( aLines, m_sFileName )

   bOk := (ErrorLevel() == 0)
   return bOk
 
/*
 * Esta função é executada, sempre que a xDev precisar compilar um arquivo .RC
 */ 
function OnFileRC  
   cmd := FindFile( 'brc32.exe', m_PreSetPath )
   
   if Empty(cmd)
      cmd := FindFile( 'porc.exe', m_PreSetPath )
   end
   
   if Empty(cmd)
      MsgError( 'Erro ao localizar o aplicativo necessário para compilar o módulo "'+m_sFileName+'"!' )
      return .f.
   end   
   
 * Preparamos a linha de comando
   cmd += ' -r -fo"' + m_sOutPut + '" -i"' + m_PreSetInclude +'"'

 * Verificamos as diretrivas #DEFINEs e adicionamos ela na linha de comando!
   aDefs := Alltrim(CustomDefines) + ',' + ;   // Diretrivas gerais do projeto
            Alltrim(PRG_Defines)   + ',' + ;   // Diretrivas específicas deste arquivo
            Alltrim(m_PreSetDefines)           // Estas sao as diretrivas do PROJETO e do PRESET atual  
            
   aDefs := StrTran(aDefs, ';', ',' )
   aDefs := StrTran(aDefs, ' ', '' )
   aDefs := ListAsArray( aDefs, ',')
   cmd   := alltrim( cmd )

   for i := 0 to len( aDefs )
       if !Empty(aDefs[i])
          cmd += ' -D' + aDefs[i]
       end
   next
   
  * Isto inclui os #DEFINEs de cada versao do xHb e do HB específicas
   if !Empty(m_PresetConstants)  
      cmd  += m_PresetConstants
   end

 * Ajustamos os outros parametros
   cmd += ' "' + m_sFileName + '"'  

 * Executamos o comando específico para compilar
   run (cmd)      
   
   bOk := (ErrorLevel() == 0)
   return bOk

function OnBuild      
return BuildExe()

function BuildExe()   
 * Preparamos a linha de comando
   aLines  := {}

   AAdd( aLines, '-I' + m_PreSetInclude)
   AAdd( aLines, '-L' + m_PreSetLib + ';' +m_PreSetObj)
   AAdd( aLines, '-o' + m_sOutPut)

   aFiles := Project( "*.PRG" )

   t := Len( aFiles )
    
   FOR i := 1 TO t
       IF i == t 
          AADD( aLines, aFiles[i] )
       ELSE
          AADD( aLines, aFiles[i] )
       End
   End
   
    //################################
    //## AJUSTE DA COMPILAÇÃO        #
    //################################

    AADD( aLines, '-workdir=./obj' )  // PASTA OBJ
    AADD( aLines, '-inc' )            // COMPILA SOMENTE .PRG MODIFICADOS
    AADD( aLines, '-mt' )
    AADD( aLines, '-lhbwin' )
    AADD( aLines, '-lhbct' )
    AADD( aLines, '-dhb' )

    //################################
    //## DEBUG                       #
    //################################
    
    if !SameText( PRG_DisableDebug, 'sim' )
       AADD( aLines, '-b' )          
       AADD( aLines, '-debug' )
	 endif   
   
   /*
    * Chamamos a função que pega o nome das libs corretas
    */
   DefaultLibs()

   /*
    * Põe os RCs project files 
    */
   aFiles := Project( "*.RES" )

   FOR i := 1 TO Len( aFiles )
       IF i == t 
          AADD( aLines, aFiles[i] )
       else
          AADD( aLines, aFiles[i] )
       End
   End
  	  
   //################################
   //## COMPILA A APLICAÇÃO         #
   //################################
  	  
   MemoWrite( 'b32.hbp', aLines )
   runBat('hbmk2 @B32.HBP')
       
   bOk := (ErrorLevel() == 0)


   //################################
   //## TENTA COMPACTAR EXECUTAVEL  #
   //################################

   if bOk .and. SameText( fUseUPX, 'Sim' )
      cmd := FindFile( 'upx.exe', m_PreSetPath )

      if Empty(cmd)
         MsgError( 'Erro ao localizar o arquivo UPX.EXE necessário para compactar seu aplicativo!' )
         return .f.
      end       
      
      aLines := {}
      AADD( aLines, 'ECHO xDev TITLE UPX' )
      AADD( aLines, 'ECHO xDev FILE '+ m_sOutPut +'' )       
      AADD( aLines, 'UPX.EXE "'+m_sOutPut + '"' )      
      
      cmd := ListAsText( aLines )  
      runBat( cmd )
              
      bOk := (ErrorLevel() == 0)
   end   
   return bOk

function DefaultLibs()
   Libs := .T.
   
   //ADICIONA LIBS 
   
   AADD( aLines, 'xhb.hbc' )
   AADD( aLines, 'hbct.hbc' )
   AADD( aLines, 'hbhpdf.hbc' )

   /*
    * Incluimos os arquivos .LIB no projeto. O segundo parametro .T. indica que
    * queremos TODOS os arquivos ATÉ MESMO AQUELES MARCADOS com a opção 
    * compile=FALSE, por isto usamos um parametro .T. 
    *
    * Quando omitimos o segundo parametro, ele puxará apenas os arquivos
    * marcados como COMPILE=TRUE e desde modo, irá ignorar os arquivos .LIB
    */
   aFiles := Project( "*.LIB" )

   FOR i := 1 TO Len( aFiles )
       AADD( aLines, '"'+aFiles[i]+'" +  ' )
   End         
 
   if SameText( CustomLIBs, 'Sim')
      /*
       * Se ele tem a lista de LIBs personalizada, caimos fora!
       */
   else
      if SameText( fFlagB, '/B' )
         AADD( aLines, '-b' )
      end
            
      if SameText( fUseHBDLL, 'sim' )
         ***
      elseif !Libs
         ***
      else
         
         if SameText( fGUILib, 'Gtwvg' )
            *
            AADD( aLines, 'gtwvg.hbc' )

         elseif SameText( fGUILib, 'Gtwvw' )
            *
            AADD( aLines, 'gtwvw.hbc' )
            *
         end         
      end
   end   
   return

scripts em anexo .. só sobrepor o script existente na pasta scripts dentro da pasta xDevStudio..

Abs
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

xDev Studio com Harbour 3.0

Mensagem por rochinha »

Amiguinhos,

daviddjs Entre Bits e Hits.

Show de Bola.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder