Page 1 of 2

vscode hbmk2 vcvarsall

PostPosted: Sun Aug 21, 2022 9:09 am
by fgondi
Estiamos,

Estoy empezando a usar vscode.

Me gustaria saber como puedo crear el json para que genere el ejecutable con "vcvarsall.bat" y "hbmk2" con todos los prg que tenga el projecto.

Actualmente las pruebas las estoy realizando ejecutando manualmente un bat.
Code: Select all  Expand view
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
c:\harbour\bin\hbmk2 tutor04.hbp -comp=msvc
tutor04.exe


creando el archivo tutor04.hbp
Pero con esta opción tendría que ir añadiendo uno a uno los prg en el archivo.
Code: Select all  Expand view
-gui

-Ic:\fwh\include

tutor04.prg

-Lc:\fwh\lib

-lFiveH32
-lFiveHC32

-lgdiplus
-lole32
-lOleDlg
-lversion

xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbfoxpro.hbc

-ldflag=/NODEFAULTLIB:msvcrt

tutor04

Re: vscode hbmk2 vcvarsall

PostPosted: Sun Aug 21, 2022 9:13 am
by Antonio Linares
Estimado Fernando,

Estás usando alguna extensión de vscode para la gestión de proyectos ?

Re: vscode hbmk2 vcvarsall

PostPosted: Sun Aug 21, 2022 10:23 am
by fgondi
Estimado Antonio,

He instalado las he ido viendo que en el foro se usan.

- Git
- Spanish Language Pack Para español
- Harbour and xHarbour de Antonino Perricone
- Vscode-Icons
- Clipboard History
- Project Manager
- Task
- CTags

Re: vscode hbmk2 vcvarsall

PostPosted: Sun Aug 21, 2022 5:53 pm
by VictorCasajuana

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 23, 2022 8:16 am
by fgondi
Hola,


De momento he construido el archivo .hbp para que llame a todos los prgs de una carpeta.
Sin embargo, esto implica que todas las veces se van a compilar todos los prgs.


Actualmente uso uestudio y sólo compila los prgs que han variado, ya que me facilita las pruebas del executable

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 23, 2022 9:50 am
by Antonio Linares
Estimado Fernando,

> Sin embargo, esto implica que todas las veces se van a compilar todos los prgs

Eso no debería ser asi, ya que el make debería comparar las fechas de los PRGs y el EXE resultante y no compilar los PRGs en los que no han habido cambios

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 23, 2022 10:23 am
by fgondi
Hola Antonio,

¿Y quién se encarga de comprobarlo?, ¿Hbmk2?

Me imagino que haya que indicar una ruta donde guarde los .obj y/o los .c, y así los pueda usar.
En los ejemplos hbp que he encontrado en el foro, no indican una ruta para guardar estos archivos.
Y al compilar veo que hbmk2 los está generando en la carpeta temporal y luego lo borra.

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 23, 2022 10:25 am
by Antonio Linares
Si, debería hacerlo hbmk2

Si borra los archivos temporales, entonces debería comparar la fecha del EXE resultante con los ficheros PRGs

Tambien puedes probar la opción -inc de hbmk2 que si recuerdo bien hace una construcción incremental y asi debería guardar los archivos temporales

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 23, 2022 10:38 am
by fgondi
Hola Antonio,

Trabajaré con ello y buscaré los parámetros que necesité.

Muchas gracias.

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 30, 2022 11:33 am
by fgondi
Ya lo tengo totalmente operativo.

En vscode he generado el archivo tasks.json dentro de la carpeta .vscode de la carpeta con el código fuente
Code: Select all  Expand view
{
   "version": "2.0.0",
   "tasks": [
    {
        "label": "build",
        "type": "shell",
        "command": ".\\go32.bat",
        "problemMatcher": []
    }
]
}


He generado un bat go32.bat y tt.hbp en el raiz de la carpeta con el código fuente

go32.bat
Code: Select all  Expand view
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
c:\harbour\bin\hbmk2 tt.hbp -comp=msvc


tt.hbp
Code: Select all  Expand view
-gui

#Incremental, sólo compila los prgs modificados
-inc

#Generar el ejecutable en otra carpeta
-oD:\Tycwin2\Alges.exe

#Ruta para guardar los obj y c
-workdir=D:\Obj\fiveVSCode\Alges\vRelease\

#RC
D:\five\Alges\rc\Alges.rc
D:\five\comun\rc\comun.rc
D:\five\comun\rc\manifest_new.rc
 
#PRG
# ------ MODULO PRINCIPAL -------
D:\Five\Alges\prg\*.prg

# ------ SOURCES -----------------
D:\Five\Comun\Incluir_New\*.prg

#INCLUDES
-Ic:\fwh\include
-ID:\five\include

#LIBRERIAS DE PROPIAS
-LD:\Obj\fiveVSCode\Lib
-lExtAlsis

#LIBRERIAS DE FIVEWIN
-Lc:\fwh\lib
-lFiveH32
-lFiveHC32

#LIBRECIAS VISUAL STUDIO
-lgdiplus
-lole32
-lOleDlg
-lversion

#LIBRERIAS DE HARBOUR
-lpng
-lgtgui
-lhbtipssl
-llibeay32
-lssleay32
-lminizip
-lace32

#HBC DE HARBOUR
xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbtip.hbc
hbssl.hbc
hbnf.hbc
rddads.hbc

-ldflag=/NODEFAULTLIB:MSVCRT
 

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 30, 2022 11:48 am
by Antonio Linares
Excelente Fernando!!!

Muy buen trabajo!

Muchas gracias por compartirlo :-)

un abrazo,

Re: vscode hbmk2 vcvarsall

PostPosted: Tue Aug 30, 2022 6:44 pm
by Horizon
fgondi wrote:Ya lo tengo totalmente operativo.

En vscode he generado el archivo tasks.json dentro de la carpeta .vscode de la carpeta con el código fuente
Code: Select all  Expand view
{
   "version": "2.0.0",
   "tasks": [
    {
        "label": "build",
        "type": "shell",
        "command": ".\\go32.bat",
        "problemMatcher": []
    }
]
}


He generado un bat go32.bat y tt.hbp en el raiz de la carpeta con el código fuente

go32.bat
Code: Select all  Expand view
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
c:\harbour\bin\hbmk2 tt.hbp -comp=msvc


tt.hbp
Code: Select all  Expand view
-gui

#Incremental, sólo compila los prgs modificados
-inc

#Generar el ejecutable en otra carpeta
-oD:\Tycwin2\Alges.exe

#Ruta para guardar los obj y c
-workdir=D:\Obj\fiveVSCode\Alges\vRelease\

#RC
D:\five\Alges\rc\Alges.rc
D:\five\comun\rc\comun.rc
D:\five\comun\rc\manifest_new.rc
 
#PRG
# ------ MODULO PRINCIPAL -------
D:\Five\Alges\prg\*.prg

# ------ SOURCES -----------------
D:\Five\Comun\Incluir_New\*.prg

#INCLUDES
-Ic:\fwh\include
-ID:\five\include

#LIBRERIAS DE PROPIAS
-LD:\Obj\fiveVSCode\Lib
-lExtAlsis

#LIBRERIAS DE FIVEWIN
-Lc:\fwh\lib
-lFiveH32
-lFiveHC32

#LIBRECIAS VISUAL STUDIO
-lgdiplus
-lole32
-lOleDlg
-lversion

#LIBRERIAS DE HARBOUR
-lpng
-lgtgui
-lhbtipssl
-llibeay32
-lssleay32
-lminizip
-lace32

#HBC DE HARBOUR
xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbtip.hbc
hbssl.hbc
hbnf.hbc
rddads.hbc

-ldflag=/NODEFAULTLIB:MSVCRT
 


Thank you for your sharing.

Can you be more specific for "Task" and "CTags" extensions? There are several extensions.

Re: vscode hbmk2 vcvarsall

PostPosted: Wed Aug 31, 2022 8:11 am
by fgondi
Task -> actboy168
ctags -> jaydenlin

Re: vscode hbmk2 vcvarsall

PostPosted: Wed Aug 31, 2022 3:09 pm
by Antonio Linares
Estimado Fernando,

Podrias poner algunas capturas de pantalla, ó un gif animado, para ilustrar mejor lo que has hecho como lo usas ?

Mostrando la instalación de las extensiones, creación de un proyecto, etc

Te estaríamos muy agradecidos. Cuando tengas tiempo :-)

un abrazo

Re: vscode hbmk2 vcvarsall

PostPosted: Thu Sep 01, 2022 7:13 am
by Horizon
fgondi wrote:Task -> actboy168
ctags -> jaydenlin


Thank you Fernando.