Difference between revisions of "Project Settings"

From VSI OpenVMS Wiki
Jump to: navigation, search
(Project Settings Description)
m (Project Settings Description)
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
=Project Configuration Example=
 
=Project Configuration Example=
 +
[[File:"Project Settings" Example.png|thumb|Project Settings]]
 
<pre>
 
<pre>
 
{
 
{
Line 14: Line 15:
 
         "root": "project",
 
         "root": "project",
 
         "source": "*.{cpp,c}",
 
         "source": "*.{cpp,c}",
 +
        "addCompQual": "/FLOAT=G_FLOAT",
 +
        "addCompDef": "MAXFPS=10,NO_SCREEN,IMAGE_NAME=\"\"\"DEF\"\"\"",
 
         "addLibraries": "sys$library:IMAGELIB.OLB,sys$library:RDBMSGS.OLB",
 
         "addLibraries": "sys$library:IMAGELIB.OLB,sys$library:RDBMSGS.OLB",
 
         "addIncludes": "sys$library"
 
         "addIncludes": "sys$library"
Line 21: Line 24:
  
 
=Project Settings Description=
 
=Project Settings Description=
* <code>'''Break'''</code> - Keyboard key to pause debugging in VMS IDE debugger. The extension uses combination <code>CTRL+Key</code> to pause debugging when user press '''Pause''' or <code>F6</code>.
+
* <code>'''break'''</code> - Keyboard key to pause debugging in VMS IDE debugger. The extension uses combination <code>CTRL+Key</code> to pause debugging when user press '''Pause''' or <code>F6</code>.
* <code>'''Builders'''</code> - Mask for files used for building the project. Default is "*.{mms,com}".
+
* <code>'''builders'''</code> - Mask for files used for building the project. Default is "*.{mms,com}".
* <code>'''Exclude'''</code> - Folders excluded from synchronization with OpenVMS system.
+
* <code>'''exclude'''</code> - Folders excluded from synchronization with OpenVMS system.
* <code>'''Headers'''</code> - Header files. Default is "*.{h,hpp}".
+
* <code>'''headers'''</code> - Header files. Default is "*.{h,hpp}".
* <code>'''Listing'''</code> - Listing files that will be downloaded after the project is built for debugging purpose.
+
* <code>'''listing'''</code> - Listing files that will be downloaded after the project is built for debugging purpose.
* <code>'''Outdir'''</code> - Output directory where object, listing and executable files will be stored when built. Is also used for temporary files. '''NOTE''': Should be only the name of the folder, not a full or relative path.  
+
* <code>'''outdir'''</code> - Output directory where object, listing and executable files will be stored when built. Is also used for temporary files. '''NOTE''': Should be only the name of the folder, not a full or relative path.  
* <code>'''Project Name'''</code> - Name for the executable file, auto-generated '''MMS''' file for builder, OPT file for linker, and COM file for defining logical names. '''NOTE''': Use one word only; do not use spaces or special characters.
+
* <code>'''projectName'''</code> - Name for the executable file, auto-generated '''MMS''' file for builder, OPT file for linker, and COM file for defining logical names. '''NOTE''': Use one word only; do not use spaces or special characters.
* <code>'''Project Type'''</code> - Type of the project. Available types: '''executable''', '''library''' or '''shareable''' for classic languages; '''java''', '''kotlin''' or '''scala''' for JVM based projects. The building method depends on the type of the project and its dependencies.
+
* <code>'''projectType'''</code> - Type of the project. '''Note:''' the building method depends on the type of the project and its dependencies. Available types:  
* <code>'''Resource'''</code> - Files required for the project, but are not involved in the build process.
+
** '''executable''', '''library''' or '''shareable''' for classic languages;  
* <code>'''Root'''</code> - Directory of the project on the remote OpenVMS machine in UNIX format relative to the home folder.
+
** '''java''', '''kotlin''' or '''scala''' for JVM based projects.  
* <code>'''Source'''</code> - Mask for the source files, e.g. "*.{c,cpp}".
+
* <code>'''resource'''</code> - Files required for the project, but are not involved in the build process.
* <code>'''Additional libraries'''</code> - list of libraries in ODS-5 format, separated by commas.
+
* <code>'''root'''</code> - Directory of the project on the remote OpenVMS machine in UNIX format relative to the home folder. Also it may be absolute path if it starts with "/". In this case first word in path is a disk (or logical name). Only default system logical names may be used in '''root''', because login.com is not executed in SFTP session.
* <code>'''Additional include folders'''</code> - list of folders in ODS-5 format, separated by commas.
+
* <code>'''source'''</code> - Mask for the source files, e.g. "*.{c,cpp}".
 +
* <code>'''addCompQual'''</code> - additional qualifiers for compiler, as is.
 +
* <code>'''addCompDef'''</code> - additional defines for compiler, strings should be enclosed in triple escaped quotes.
 +
* <code>'''addLibraries'''</code> - list of libraries in ODS-5 format, separated by commas.
 +
* <code>'''addIncludes'''</code> - list of folders in ODS-5 format, separated by commas.<br>
 +
 
 +
'''Note: <code>'''root'''</code> must not have trailing "/"
  
 
=Adjusting Project Settings=
 
=Adjusting Project Settings=
# Set the <code>'''Root'''</code> directory. For example, if the project is located in '''WORK:[USER.DEMOS.SIMPLE]''' and the home directory is '''WORK:[USER]''', set the parameter value to '''demos/simple'''.
+
# Set the <code>'''root'''</code> directory. For example, if the project is located in '''WORK:[USER.DEMOS.SIMPLE]''' and the home directory is '''WORK:[USER]''', set the parameter value to '''demos/simple''' or '''/work/user/demos/simple'''.
# Select the <code>'''Project Type'''</code> that you need.
+
# Select the <code>'''projectType'''</code> that you need.
# Specify the <code>'''Project Name'''</code>. '''NOTE''': do not use spaces or special characters.
+
# Specify the <code>'''projectName'''</code>. '''NOTE''': do not use spaces or special characters.
# Check <code>'''Builders'''</code>. These files will be synchronized.
+
# Check <code>'''builders'''</code>. These files will be synchronized.
# Check <code>'''Headers'''</code>. These files will be synchronized and included into the [[Auto-generating MMS|auto-generated MMS]] file as header files. Changing any of them will result in full project rebuild.
+
# Check <code>'''headers'''</code>. These files will be synchronized and included into the [[Auto-generating MMS|auto-generated MMS]] file as header files. Changing any of them will result in full project rebuild.
# Check <code>'''Source'''</code>. These files will be synchronized and included into the [[Auto-generating MMS|auto-generated MMS]] file as source files.
+
# Check <code>'''source'''</code>. These files will be synchronized and included into the [[Auto-generating MMS|auto-generated MMS]] file as source files.
# Check <code>'''Resource'''</code>. These files will be synchronized but not included into the [[Auto-generating MMS|auto-generated MMS]] file.
+
# Check <code>'''resource'''</code>. These files will be synchronized but not included into the [[Auto-generating MMS|auto-generated MMS]] file.
# Adjust the <code>'''Exclude'''</code> field value to list the files similar to the described above but not to be synchronized and compiled.
+
# Adjust the <code>'''exclude'''</code> field value to list the files similar to the described above but not to be synchronized and compiled.
# Check <code>'''Listing'''</code>. These files will be downloaded after building the project. Files "*.lis,*.map" are required for debugger.
+
# Check <code>'''listing'''</code>. These files will be downloaded after building the project. Files "*.lis,*.map" are required for debugger.
# If the project depends on already installed libraries, specify the in the <code>'''Additional libraries'''</code> and <code>'''Additional include folders'''</code>  
+
# If the project depends on already installed libraries, specify them in the <code>'''addLibraries'''</code> and <code>'''addIncludes'''</code>  
 +
# Do not forget about "VMS-IDE: Create/Update MMS" after changing project settings
 +
 
 +
[https://www.youtube.com/watch?v=Ib1Fo6cG1Vs&list=PLewDXk9a8laO3cAZFPyZ4bbgcKsJ1qgPo Video tutorial: VMS IDE 1 Starting a Project]. In video "Project Settings" shown at 2:40 - 3:37 time period.
  
 
[[Category:VMS IDE]]
 
[[Category:VMS IDE]]

Latest revision as of 19:33, 24 June 2022

Project Configuration Example

Project Settings
{
    "project": {
        "break": "C",
        "builders": "*.{mms,com}",
        "exclude": "**/{node_modules,.vscode}/**",
        "headers": "*.h",
        "listing": "*.lis",
        "outdir": "out",
        "projectName": "project",
        "projectType": "executable",
        "resource": "**/resource/**",
        "root": "project",
        "source": "*.{cpp,c}",
        "addCompQual": "/FLOAT=G_FLOAT",
        "addCompDef": "MAXFPS=10,NO_SCREEN,IMAGE_NAME=\"\"\"DEF\"\"\"",
        "addLibraries": "sys$library:IMAGELIB.OLB,sys$library:RDBMSGS.OLB",
        "addIncludes": "sys$library"
    }
}

Project Settings Description

  • break - Keyboard key to pause debugging in VMS IDE debugger. The extension uses combination CTRL+Key to pause debugging when user press Pause or F6.
  • builders - Mask for files used for building the project. Default is "*.{mms,com}".
  • exclude - Folders excluded from synchronization with OpenVMS system.
  • headers - Header files. Default is "*.{h,hpp}".
  • listing - Listing files that will be downloaded after the project is built for debugging purpose.
  • outdir - Output directory where object, listing and executable files will be stored when built. Is also used for temporary files. NOTE: Should be only the name of the folder, not a full or relative path.
  • projectName - Name for the executable file, auto-generated MMS file for builder, OPT file for linker, and COM file for defining logical names. NOTE: Use one word only; do not use spaces or special characters.
  • projectType - Type of the project. Note: the building method depends on the type of the project and its dependencies. Available types:
    • executable, library or shareable for classic languages;
    • java, kotlin or scala for JVM based projects.
  • resource - Files required for the project, but are not involved in the build process.
  • root - Directory of the project on the remote OpenVMS machine in UNIX format relative to the home folder. Also it may be absolute path if it starts with "/". In this case first word in path is a disk (or logical name). Only default system logical names may be used in root, because login.com is not executed in SFTP session.
  • source - Mask for the source files, e.g. "*.{c,cpp}".
  • addCompQual - additional qualifiers for compiler, as is.
  • addCompDef - additional defines for compiler, strings should be enclosed in triple escaped quotes.
  • addLibraries - list of libraries in ODS-5 format, separated by commas.
  • addIncludes - list of folders in ODS-5 format, separated by commas.

Note: root must not have trailing "/"

Adjusting Project Settings

  1. Set the root directory. For example, if the project is located in WORK:[USER.DEMOS.SIMPLE] and the home directory is WORK:[USER], set the parameter value to demos/simple or /work/user/demos/simple.
  2. Select the projectType that you need.
  3. Specify the projectName. NOTE: do not use spaces or special characters.
  4. Check builders. These files will be synchronized.
  5. Check headers. These files will be synchronized and included into the auto-generated MMS file as header files. Changing any of them will result in full project rebuild.
  6. Check source. These files will be synchronized and included into the auto-generated MMS file as source files.
  7. Check resource. These files will be synchronized but not included into the auto-generated MMS file.
  8. Adjust the exclude field value to list the files similar to the described above but not to be synchronized and compiled.
  9. Check listing. These files will be downloaded after building the project. Files "*.lis,*.map" are required for debugger.
  10. If the project depends on already installed libraries, specify them in the addLibraries and addIncludes
  11. Do not forget about "VMS-IDE: Create/Update MMS" after changing project settings

Video tutorial: VMS IDE 1 Starting a Project. In video "Project Settings" shown at 2:40 - 3:37 time period.