la forma mas simple de construir desde vscode

la forma mas simple de construir desde vscode

Postby Antonio Linares » Sat Oct 01, 2022 8:12 am

Cual es la forma más simple de construir un PRG que estemos editando ?

gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby VictorCasajuana » Sat Oct 01, 2022 10:35 am

Antonio Linares wrote:Cual es la forma más simple de construir un PRG que estemos editando ?

gracias
A que te refieres con "construir un PRG"

Enviado desde mi motorola edge 20 mediante Tapatalk
--------
¿ Y porque no ?
¿ And why not ?
User avatar
VictorCasajuana
 
Posts: 265
Joined: Wed Mar 28, 2018 4:38 pm
Location: Vinaròs

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sat Oct 01, 2022 10:41 am

Imagina que tengo este código en pantalla:
Code: Select all  Expand view
#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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby fgondi » Sat Oct 01, 2022 3:10 pm

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:
Code: Select all  Expand view
{
   "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 view
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 view
-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
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: la forma mas simple de construir desde vscode

Postby fgondi » Sat Oct 01, 2022 3:15 pm

Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: la forma mas simple de construir desde vscode

Postby fgondi » Sat Oct 01, 2022 3:37 pm

Y si no quieres tener el archivo abierto, se podría hacer pidiendo el nombre por variable
Code: Select all  Expand view
   {
       "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
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: la forma mas simple de construir desde vscode

Postby fgondi » Sat Oct 01, 2022 4:04 pm

go32.bat incluyendo el rc:
Code: Select all  Expand view
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 view
{
   "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 view
{
       "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
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sat Oct 01, 2022 8:32 pm

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:
Code: Select all  Expand view
{
  "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 view
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 view
-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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sat Oct 01, 2022 8:40 pm

Falla si el documento no esta en c:\Users\anto\Documents...

intentado arreglarlo...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sat Oct 01, 2022 8:44 pm

hbmk2 es llamado con -out:C:\Users\anto\fivedit0.exe

pero luego se intenta ejecutar c:\fwteam\samples\fivedit0.exe
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sat Oct 01, 2022 9:17 pm

Que macros usar en vez de -o${hb_dirname} desde fivewin.hbp que sean equivalentes a ${fileDirname}/${fileBasename} de vscode ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sun Oct 02, 2022 7:20 am

buenos dias

Esta versión parece más simple y solo usa un variable:
tasks.json
Code: Select all  Expand view
{
  "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 view
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 view
-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
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sun Oct 02, 2022 7:29 am

Working like a champ :-)
Image
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sun Oct 02, 2022 7:42 am

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: la forma mas simple de construir desde vscode

Postby Antonio Linares » Sun Oct 02, 2022 8:34 am

gracias nuevamente Fernando

un abrazo
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 36 guests