Ide/Project Settings

From wiki.visual-prolog.com

IDE

The Project Settings utility is used to create new Visual Prolog Projects and to change some settings of existing projects.

To activate the Project Settings dialog, select the Project | Settings menu item. Project Settings is also activated when you create a new project (with the Project | New command).

General Tab

When creating a new project the sheet looks like:

Ide ApplicationExpert General Create.png

You need to specify a mandatory project name and other options. After the needed information is specified, press the OK button. The Project Settings utility will create the default files, define the build script, etc.

Project Name

The project name must be specified in the Project Name option while a project creation. Project Settings uses this project name to generate name for the project file: ProjectName.vipprj. The specified project name is also used as the default name of Subdirectory in which the project is placed.

Project Kind

Sets which type the application will have.

Ide ApplicationExpert UI Strategy.png

The IDE automatically generates different default sets of files (and codes) for each application type.

Note. DLL option is available for the Visual Prolog Commercial Edition only.

MDI Mode/SDI Mode

Specifies whether the IDE creates a multi document interface- or single document interface- project template respectively.

Note. This option is available for the Visual Prolog Commercial Edition only. Otherwise the MDI Mode is assumed by the default.

Base Directory and Subdirectory

The name of the directory, in which the project is placed, is generated from the path specified in Base Directory that is concatenated with the folder name specified in Subdirectory.

  • Base Directory
    Specifies the base directory for the project being created.With the Browse button, you can open up a directory browser to find a proper Base Directory.
  • Subdirectory
    Specifies the subdirectory (relative to the Base Directory), which should be the root directory for the project being created.By default the Subdirectory name is equal to the specified Project Name, but it can be changed while the project creation.

Note. That if you choose a directory that already contains some project as the directory in which to place the project being created, then the Project Settings utility displays the These files will be overwritten warning dialog. It displays names of already existing files which will be overwritten after you push the Create button. Therefore, it is a good idea to store each project in its own directory.

Platform

Specifies the project target platform as one of the following:

  • 32bit
  • 64bit
  • 32bit+64bit

When the two 32bit 64bit platforms are specified as the project target, the active platform can be choosen through the Build menu.

Note. This option is available for the Visual Prolog Commercial Edition only. Otherwise the 32bit is assumed by the default.

Manifest File

When it is checked ON, then the Manifest file is generated for the project.

A Win32 side-by-side assembly contains a collection of resources—a group of DLLs, windows classes, COM servers, type libraries, or interfaces—that are always provided together with applications. These are described in the assembly Manifest files. For more details about Manifest files see descriptions in MSDN.

Require commctrl v.6

Specifies that the generated manifest file contains a statement to require the system commctrl.dll version 6 for the application.

Require Administrative Rights

Specifies that the generated manifest file contains a statement to require the administrative privileges for the application.

To open the Project Settings dialog for the existing project, use the Project | Settings menu item.

The General tab will look, in this case, as foolows:

Ide ApplicationExpert General.png

Directories Tab

Here you can specify directories that will be used by the project. In Directories tab you can set up the project subdirectories to be used by the compiler, linker, resource generators, etc.

Directory names refer to the build script symbols. For example, when giving the name $(ProDir), it is automatically expanded to the actual path where the Visual Prolog system is installed.

When all these project subdirectories are defined, then it is possible to move a project to another place and still be able to use it without need to redefine the project build scripts manually. This is possible because:

  • Usually these project subdirectories are defined relatively to the project root directory. Therefore, they are automatically redefined when the project is moved.
  • Each of these subdirectories generates correspondent build symbols and namely these built symbols are used to define file locations in the project build scripts.

Intermediate

$(ObjDir) - This directory is used to place all intermediate (temporary) files of the project generated by the IDE. It defines the $(ObjDir) build script symbols. The IDE automatically adds suffix 64 to the intermediate directory name.

Final

$(ExeDir) - This directory is the place for the generated target module (executable or DLL). It defines the $(ExeDir) build script symbols. The IDE automatically adds suffix 64 to the final directory name.

Import Library

$(LibDir) - This directory is used for DLL projects to place the generated import library. It defines the $(LibDir) build script symbols.

Prolog Root

$(ProDir) - It is the root directory of the used Visual Prolog version. This directory defines the $(ProDir) build script symbols.

Include Directories

$(IncDir) - This list box displays the list of the project include directories.

Each line contains one directory. In these directories the compiler will search for included files (specified in #include or #bininclude compiler directives), if the specified filename does not contain an absolute path. A single dot indicates the current directory, which is always the project directory. Two dots indicate the parent directory of the current directory.

You can add a new directory to the list of the project include directories using the Browse button. The Browse button activates the Set New Directory dialog. Also you can use the Edit button, which activates the Edit Include Directory dialog. In this dialog you can directly type in a path. Using Up and Down buttons you can change the order in which the compiler will search in the specified include directories.

This directory defines the $(IncDir) build script symbols.

Build Options Tab

Here you can edit the project build script Rules and the project Build Script, specify the Type Library File, etc.

Rules

Determine how to compile files with given extensions. An example is the following:

pack->obj:$(Compiler) /L:R /L:I /L:STAT $(IncDir) /MAXE:200 /MAXW:1000
 "$**.pack" /OBJECTFILE:"$(ObjDir)$*.obj" /DEBUGFILE:"$(ObjDir)$*.deb" /debug:full

For more information about Rules syntax see the Make Facility.

Build Script

Describes how to build the final target. An example is the following,

"$(ProDir)Bin\VIP6Link.exe" -F<< -E_VIPStartUp@0 -d -TPE -SGUI -o"$(ExeDir)$*.exe"
 -M"$(ObjDir)$*.map" $(PROJECT_OBJ) "$(ObjDir)$*.res" $(PROJECT_LIB)<<

For more information about Build Scripts see the Make Facility, the Command Line Compiler, and the Command Line Linker.

Definition (.def) File

[$(DEF_FILE)]: A module-definition (.DEF) file provides additional input for the linker. The module-definition files describe the essential characteristics of a target application or library.

Ordinary module-definition files should be used when the project target is a DLL or when the target file should use DLLs.

When the project target is a DLL, then names of all predicates exported from the DLL have to be added to the EXPORT section of the module-definition file, which is used to build the DLL.

When an import library is included into the project modules, then the correspondent DLL is linked statically to the application (load-time linking). Such projects must have module-definition files, whose IMPORTS sections should specify names of all predicates imported from the DLL.

See Definition Files in the Command Line Linker for more information.

Type Library File

Here you can use the Browse button to specify a Type Library, which should be used in your project. Usually, you need this when creating COM objects.

Version Information Tab

Here you specify some information about the project: Company, Author, Copyright, File Version, Trademarks, etc.

Some of version information attributes can be shown by the operation system File Properties dialog and can be used to validate version of DLL or EXE, before loading them.

Version information contains the following fields:

  • Company
    Usually is the name of the company that is the Copyright owner to the project.
  • Author
    Represents information about the author of the project.
  • Copyright
    Represents the Copyright information, which is visible in the File Properties dialog.
  • Description
    Contains a short description.
  • File Version
    Is written in the A.B.C.D format, where A, B, C, D are integers. A means major version.
  • Product Version
    Is written in format A.B.C.D, where A, B, C, D are integers. A means major version.
  • Trademarks:
    Represents the project Trademarks information.
  • File Flags:
    These are flags that describe the target file of the project:
    1. Debug
      This flag means that the project is built with debugging information.
    2. Prerelease
      This flag means that the target file is an intermediate version.
    3. Patched
      This flag means that the target file has been modified comparing with the original file, which has the same version number.
    4. Special Build
      This flag means that the target file was built using standard release procedures but for special purpose.
    5. Private Build
      This flag means that the target file was built for private purpose.

Run Options Tab

  • Run Arguments
    Here it is possible to specify command line parameters that will be passed to the target application when it starts from the IDE.
  • Executable for Run/Debugger
    Here you can specify an executable filename that will be loaded by the IDE for debugging.
  • External Project for Debugger
    Here you can specify a project with the debug information that should be used by the IDE while debugging.
  • Working Directory for Run/Debug
    If this option is set, a user application will use this directory as a working directory for Run/Debug comands, otherwise the final directory will be used. If the relative path is defined then the path is calculated from the project directory.