la forma mas simple de construir desde vscode
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
la forma mas simple de construir desde vscode
Cual es la forma más simple de construir un PRG que estemos editando ?
gracias
gracias
- VictorCasajuana
- Posts: 269
- Joined: Wed Mar 28, 2018 4:38 pm
- Location: Vinaròs
- Has thanked: 1 time
- Contact:
Re: la forma mas simple de construir desde vscode
A que te refieres con "construir un PRG"Antonio Linares wrote:Cual es la forma más simple de construir un PRG que estemos editando ?
gracias
Enviado desde mi motorola edge 20 mediante Tapatalk
--------
¿ Y porque no ?
¿ And why not ?
¿ Y porque no ?
¿ And why not ?
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
Re: la forma mas simple de construir desde vscode
Imagina que tengo este código en pantalla:
Por lo visto al pulsar Ctrl + Shift + B lanzamos el "build task" por defecto. Este task debería construir ese PRG y ejecutarlo
Entiendo que seria lo más simple. Ahora es dar con el task adecuado
Tal vez haya otra forma mas simple aún
Code: Select all | Expand
#include "FiveWin.ch"
function Main()
MsgInfo( "Hello world" )
return nil
Por lo visto al pulsar Ctrl + Shift + B lanzamos el "build task" por defecto. Este task debería construir ese PRG y ejecutarlo
Entiendo que seria lo más simple. Ahora es dar con el task adecuado
Tal vez haya otra forma mas simple aún
Re: la forma mas simple de construir desde vscode
Para poder compiliar cualquier prg que este en FWH, podríamos utilizar los parámetros.
Faltaría añadir en el bat condiciones para verificar si hay que incluir un archivo rc.
La tarea seria:
Donde $(file) se va a sustituir por el fichero que estas visualizando en vscode
go32.bat tendría la llamada a ese fichero pasado por parámetro "%1" y un hbp genérico para todos
fivewin.hbp
Faltaría añadir en el bat condiciones para verificar si hay que incluir un archivo rc.
La tarea seria:
Code: Select all | Expand
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": ".\\go32.bat ${file}"
}
]
}
Donde $(file) se va a sustituir por el fichero que estas visualizando en vscode
go32.bat tendría la llamada a ese fichero pasado por parámetro "%1" y un hbp genérico para todos
Code: Select all | Expand
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
c:\harbour\bin\hbmk2 %1 fivewin.hbp -comp=msvc
fivewin.hbp
Code: Select all | Expand
-gui
-mt
-Ic:\fwh\include
-Lc:\fwh\lib2
-lFiveH32
-lFiveHC32
-lgdiplus
-lole32
-lOleDlg
-lversion
xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbfoxpro.hbc
hbvmmt.hbc
-ldflag=/NODEFAULTLIB:MSVCRT
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
Fernando González Diez
ALSIS Sistemas Informáticos
Re: la forma mas simple de construir desde vscode
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
Fernando González Diez
ALSIS Sistemas Informáticos
Re: la forma mas simple de construir desde vscode
Y si no quieres tener el archivo abierto, se podría hacer pidiendo el nombre por variable
Code: Select all | Expand
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": ".\\go32.bat ${input:variableID}"
}
],
"inputs": [
{
"id": "variableID",
"type": "promptString",
"description": "Indica el nombre del prg"
}
]
}
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
Fernando González Diez
ALSIS Sistemas Informáticos
Re: la forma mas simple de construir desde vscode
go32.bat incluyendo el rc:
La tarea teniendo el archivo prg abiero:
La tarea sin tener el prg abierto (con parámetro) e incluso desde cualquier carpeta
Code: Select all | Expand
del %1.exe
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
if exist %1.rc (
c:\harbour\bin\hbmk2 %1.prg %1.rc testvc.hbp -comp=msvc
) else (
c:\harbour\bin\hbmk2 %1.prg testvc.hbp -comp=msvc
)
%1.exe
La tarea teniendo el archivo prg abiero:
Code: Select all | Expand
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "C:\\FWH\\samples\\go32.bat ${fileBasenameNoExtension}",
"options": {
"cwd": "${fileDirname}"
}
}
]
}
La tarea sin tener el prg abierto (con parámetro) e incluso desde cualquier carpeta
Code: Select all | Expand
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "C:\\FWH\\Samples\\go32.bat ${input:variableID}",
"options": {
"cwd": "C:\\FWH\\Samples"
}
}
],
"inputs": [
{
"id": "variableID",
"type": "promptString",
"description": "Indica el nombre del prg. sin extensión"
}
]
}
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
Fernando González Diez
ALSIS Sistemas Informáticos
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
Re: la forma mas simple de construir desde vscode
Querido Fernando,
muchas gracias por compartir y enseñar.
He hecho unas pequeñas modificaciones que me gustaria tu opinión
El fichero tasks.json lo he modificado asi:
con la idea de que go32.bat reciba dos parámetros:
fivewin.hbp lo he modificado para que genere el nombre del EXE adecuado:
Está funcionado, con solo pulsar Ctrl + Mayus + B
Si ves una forma de simplificarlo, bienvenida sea
un abrazo
muchas gracias por compartir y enseñar.
He hecho unas pequeñas modificaciones que me gustaria tu opinión
El fichero tasks.json lo he modificado asi:
Code: Select all | Expand
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "c:\\Users\\anto\\Documents\\go32.bat ${fileDirname}/${fileBasename} ${fileDirname}\\${fileBasenameNoExtension}.exe"
}
]
}
con la idea de que go32.bat reciba dos parámetros:
Code: Select all | Expand
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
c:\harbour\bin\hbmk2 %1 c:\users\anto\documents\fivewin.hbp -comp=msvc
%2
fivewin.hbp lo he modificado para que genere el nombre del EXE adecuado:
Code: Select all | Expand
-o${hb_dir}
-gui
-trace
-Ic:\fwh\include
-Lc:\fwh\lib
-lFiveH32
-lFiveHC32
-lgdiplus
-lole32
-lOleDlg
-lversion
xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbfoxpro.hbc
-ldflag=/NODEFAULTLIB:MSVCRT
-ldflag=/FORCE:multiple
Está funcionado, con solo pulsar Ctrl + Mayus + B
Si ves una forma de simplificarlo, bienvenida sea
un abrazo
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
Re: la forma mas simple de construir desde vscode
Falla si el documento no esta en c:\Users\anto\Documents...
intentado arreglarlo...
intentado arreglarlo...
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
Re: la forma mas simple de construir desde vscode
hbmk2 es llamado con -out:C:\Users\anto\fivedit0.exe
pero luego se intenta ejecutar c:\fwteam\samples\fivedit0.exe
pero luego se intenta ejecutar c:\fwteam\samples\fivedit0.exe
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
Re: la forma mas simple de construir desde vscode
Que macros usar en vez de -o${hb_dirname} desde fivewin.hbp que sean equivalentes a ${fileDirname}/${fileBasename} de vscode ?
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
Re: la forma mas simple de construir desde vscode
buenos dias
Esta versión parece más simple y solo usa un variable:
tasks.json
con lo que go32.bat cambia asi:
fivewin.hbp
Esta versión parece más simple y solo usa un variable:
tasks.json
Code: Select all | Expand
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "c:\\Users\\anto\\Documents\\go32.bat ${fileDirname}\\${fileBasenameNoExtension}",
"problemMatcher": [
"$harbour"
]
}
]
}
con lo que go32.bat cambia asi:
Code: Select all | Expand
del %1.exe
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
if exist %1.rc (
c:\harbour\bin\hbmk2 %1.prg %1.rc c:\users\anto\documents\fivewin.hbp -o%1 -comp=msvc
) else (
c:\harbour\bin\hbmk2 %1.prg c:\users\anto\documents\fivewin.hbp -o%1 -comp=msvc
)
%1
fivewin.hbp
Code: Select all | Expand
-gui
-Ic:\fwh\include
-Lc:\fwh\lib
-lFiveH32
-lFiveHC32
-lgdiplus
-lole32
-lOleDlg
-lversion
xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbfoxpro.hbc
-ldflag=/NODEFAULTLIB:MSVCRT
-ldflag=/FORCE:multiple
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact:
Re: la forma mas simple de construir desde vscode
I keep go32.bat at:
c:\Users\anto\Documents\
same folder for fivewin.hbp
wondering is those places are the righ ones or we can improve it
c:\Users\anto\Documents\
same folder for fivewin.hbp
wondering is those places are the righ ones or we can improve it
- Antonio Linares
- Site Admin
- Posts: 42409
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 12 times
- Been thanked: 48 times
- Contact: