Compile C++ on IBM i in remote become easy.
Work in progress. So be indulgent ^^
Don't hesitate to open ticket for any issues or demand of features
Feel free to contribute
See the evolution through the Todo's List here
- Java 8
- IBMI i V6R1 till V7R4
- port 21
- port 8476 for JT400 ( see details here )
- Toolbox for Java and JTOpen
Clone this repository.
Add in your path the directory of the local repository.
Open cmd prompt and type ICompileCpp.bat.
If you see the help you're the best ;)
| argument name | type | mandatory | description | possible values |
|---|---|---|---|---|
-ip |
str | yes | local ip of your AS 400 | |
-user -usr |
str | yes | user profil | |
-password -pwd |
str | yes | password | |
-file -f |
str | yes | the *.cpp file path relative of current directory | |
-rdir |
str | yes | the remote directory where is uploaded your sources | |
-l -library -lib |
str | no | library where the programs or modules going to be compile ( *CURLIB by default) | |
-dbgview |
str | no | compile with DBGVIEW(*ALL) ( *NONE by default ) | *NONE / *ALL / *STMT / *SOURCE / *LIST |
-tgtrls |
str | no | target release ( *PRV by default ) | *CURRENT / *PRV / VXRXMX ( following the release of your system ) |
-v |
flag | no | put the program in debug mode. see command send, ect ... | |
-clean |
flag | no | clean conf cache files |
For upload your files when its saved use the excellent extension of @liximo SFTP.
For compile current file create a tasks.json within your project directory.
{
"version": "2.0.0",
"tasks": [
{
"label": "ICompile Cpp",
"type": "shell",
"command": "cd ${workspaceRoot}; ICompileCpp.bat -ip 192.168.1.1 -usr YOUR_LOGIN -pwd YOUR_PASSWORD -f ${relativeFile} -rdir /Directory/OtherOneForYourProject -lib YOUR_LIB",
"presentation": {
"echo": false,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true,
"clear": true
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
}
]
}Begin your source file with the following tags for name this one, bind modules, add module or pgm options
| name | mandatory | description |
|---|---|---|
#NAME |
yes | name of your module and program |
#OPTPGM |
no | Parameter for the CRTPGM command ( see CRTPGM 5250 screen ) |
#OPTMOD |
no | Parameter for the CRTCPPMOD command ( see CRTCPPMOD 5250 screen ) |
#MODULES |
no | List of module should be bind with PGM ( can be replaced in #OPTPGM tag by parameter 'MODULE(LIB/YOURMODULE LIB/ANOTHERMODULE)' ) |
//#NAME PGM_HELLO
//#OPTPGM OPTION(*DUPPROC *DUPVAR *NOWARN) ACTGRP(*CALLER)
//#OPTMOD PACKSTRUCT(1)
//#MODULES MOD_1 MOD_2Soon an exemple of program and module
- 10/30/2019 - Requirements
- 10/30/2019 - Ask password in hidden
- Compile current directory recursively
- 12/18/2019 - Save password for current user during 24 hours
- 12/18/2019 - Encrypt password saved
- 12/20/2019 - Exemples of program
- 12/20/2019 - Exemples of module
- Tests on linux
- 12/18/2019 - Tests for Encryption password
- 12/18/2019 - Tests for Persistance of data
- Compile SRVPGM
- 12/20/2019 - Clear config cache