Página 1 de 1

xDev Studio com Harbour 3.0

Enviado: 07 Mai 2015 00:07
por clodoaldomonteiro
Olá amigos!

Existe alguma maneira de configurar o xDev Studio para compilar com o Harbuor 3.0 ou superior?

xDev Studio com Harbour 3.0

Enviado: 08 Mai 2015 08:52
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

xDev Studio com Harbour 3.0

Enviado: 08 Mai 2015 10:01
por Kapiaba

xDev Studio com Harbour 3.0

Enviado: 10 Mai 2015 21:28
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

xDev Studio com Harbour 3.0

Enviado: 10 Mai 2015 22:52
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.

xDev Studio com Harbour 3.0

Enviado: 14 Mai 2015 23:00
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.

xDev Studio com Harbour 3.0

Enviado: 02 Out 2023 21:39
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

xDev Studio com Harbour 3.0

Enviado: 02 Out 2023 22:27
por rochinha
Amiguinhos,

daviddjs Entre Bits e Hits.

Show de Bola.