usando o FileStats

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

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

usando o FileStats

Mensagem por asimoes »

Vlademiro,

O comando correto para o harbour 3.4 é

-bldhead=build.ch
►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)
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

usando o FileStats

Mensagem por Vlademiro »

Obrigado pela atualização.

Ainda estou no 3.2 :xau
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

usando o FileStats

Mensagem por JoséQuintas »

Inicialmente gostei do recurso, mas não resolveu para o RC.
Mas gostei da idéia, e acabei fazendo de outro jeito.

Em \cdrom\fontes\build, um programa que cria um build.ch padrão:

Código: Selecionar todos

PROCEDURE Main

   LOCAL cDateTime

   cDateTime := Dtos( Date() ) + Substr( Time(), 1, 2 ) + Substr( Time(), 4, 2 )

   cTxt := "#define JPA_VERSAO    " + ["]  + Transform( cDateTime, "@R 9999.99.99.9999" ) + ["] + hb_Eol()
   cTxt += "#define JPA_VERSAO_RC  " + Transform( cDateTime, "@R 9999,99,99,9999" ) + hb_Eol()
   hb_MemoWrit( "d:\cdrom\fontes\build\build.ch", cTxt )

   RETURN
Nos hbps, a inclusão do build.ch, resultado desse EXE:

Código: Selecionar todos

-I\cdrom\fontes\build
-ibuild.ch
No arquivo RC, e nos PRGs principais, a inclusão desse build.ch:

Código: Selecionar todos

#include "build.ch"

1 VERSIONINFO
  FILEVERSION JPA_VERSAO_RC
E no BAT, a chamada ao programa que gerencia o build.ch:

Código: Selecionar todos

del jpa.exe
d:\cdrom\fontes\build\build
hbmk2 jpa.hbp %1 %2 %3 %4 %5
if not errorlevel 1 assina jpa.exe
Continuo digitando C <ENTER> pra compilar.

Passei a usar isso como versão, ano/mês/dia/hora/minuto
Mais prático do que ficar inventando números.
No começo o ano era com dois dígitos, mas aí veio o ano 2000... então passei a usar quatro dígitos.
Atendeu certinho o RC.
Tenho versão nova a qualquer dia e qualquer hora, então isso simplifica, e evita esquecer de alterar.

Por falar nisso....
Talvez esse fileversion pudesse ser usado pra comparar a versão do servidor com o terminal.

Nota:
De um modo geral, só me interessa se o cliente usa uma versão mais velha.
Ao cliente atualizar, de qualquer versão velha, a nova sempre funciona e atualiza tudo que precisa.
E pela data, consigo até visualizar tudo que foi alterado entre as versões.
Então... tudo simplificado usando a data como versão, nem importa data do EXE, só o número da versão.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

usando o FileStats

Mensagem por JoséQuintas »

Só a título de curiosidade, o meu build.ch de agora:

Código: Selecionar todos

//        552
#define JPA_VERSAO    "2016.09.14.0944"
#define JPA_VERSAO_RC  2016,09,14,0944
Desde que comecei a usar isso, foram 552 compilações.
Já pensou ficar alterando esse número manualmente? ou inventando número?
Isso dá uma média de 30 compilações por dia.
Este é o fonte atual, com esse controle de quantidade, só reservei um espaço pro número.
Esse número não entra na versão, foi só pra curiosidade mesmo.

Código: Selecionar todos

PROCEDURE Main

   LOCAL cDateTime, cTxt, nBuildNum, cBuildFile

   cBuildFile := "d:\cdrom\fontes\build\build.ch"
   cDateTime  := Dtos( Date() ) + Substr( Time(), 1, 2 ) + Substr( Time(), 4, 2 )

   nBuildNum := Val( Substr( MemoRead( cBuildFile ), 4, 10 ) ) + 1
   cTxt := "// " + Str( nBuildNum, 10 ) + hb_Eol()
   cTxt += "#define JPA_VERSAO    " + ["]  + Transform( cDateTime, "@R 9999.99.99.9999" ) + ["] + hb_Eol()
   cTxt += "#define JPA_VERSAO_RC  " + Transform( cDateTime, "@R 9999,99,99,9999" ) + hb_Eol()
   hb_MemoWrit( cBuildFile, cTxt )

   RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

usando o FileStats

Mensagem por asimoes »

Quintas,

Esse controle que você fez é um utilitário certo?
Que é chamado antes da compilação do seu sistema?
►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)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

usando o FileStats

Mensagem por JoséQuintas »

exato

Código: Selecionar todos

del jpa.exe
d:\cdrom\fontes\build\build
hbmk2 jpa.hbp %1 %2 %3 %4 %5
if not errorlevel 1 assina jpa.exe
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder