Difference between revisions of "IDE Window: Package Options"

From Free Pascal wiki
Jump to navigationJump to search
m
Line 1: Line 1:
= Usage =
+
{{IDE Window: Package Options}}
  
== Add Paths to dependent packages / project ==
+
== Usage ==
 +
 
 +
=== Add Paths to dependent packages / project ===
  
 
All these paths are not used by this package itself, but they are added to the appropriate paths of the packages/projects, that use this package. These are called ''inherited'' paths. For example: Package A needs Package B needs Package C. All usage options of C are appended to the options of B '''and''' A.
 
All these paths are not used by this package itself, but they are added to the appropriate paths of the packages/projects, that use this package. These are called ''inherited'' paths. For example: Package A needs Package B needs Package C. All usage options of C are appended to the options of B '''and''' A.
Line 7: Line 9:
 
For example almost all packages inherit their output directory, so that any package, that uses this package, finds the .ppu files.  
 
For example almost all packages inherit their output directory, so that any package, that uses this package, finds the .ppu files.  
  
You can see, what paths are inherited from other packages/projects in the compiler options dialog.
+
You can see, what paths are inherited from other packages/projects in the [[IDE Window: Compiler Options|compiler options]] dialog.
  
=== Unit ===
+
==== Unit ====
  
 
These paths are separated by semicolon, can contain macros, and are appended to the ''unit'' paths of all packages/projects, which use/require this package. The ''unit'' path is used by the IDE and the compiler to search for pascal units (.pas, .pp, .ppu).
 
These paths are separated by semicolon, can contain macros, and are appended to the ''unit'' paths of all packages/projects, which use/require this package. The ''unit'' path is used by the IDE and the compiler to search for pascal units (.pas, .pp, .ppu).
  
=== Include ===
+
==== Include ====
  
 
Same as the ''unit'' path, but for the ''include'' path - include files.
 
Same as the ''unit'' path, but for the ''include'' path - include files.
  
=== Object ===
+
==== Object ====
  
 
Same as the ''unit'' path, but for the ''object'' path (.o files).
 
Same as the ''unit'' path, but for the ''object'' path (.o files).
  
=== Library ===
+
==== Library ====
  
 
Same as the ''unit'' path, but for the ''library'' path (linker files).
 
Same as the ''unit'' path, but for the ''library'' path (linker files).
  
== Add options to dependent packages and projects ==
+
=== Add options to dependent packages and projects ===
  
=== Linker ===
+
==== Linker ====
  
 
These options are separated by space, can contain macros and are appended to the ''linker'' options of all packages/projects, which use/require this package. Line breaks are converted to spaces. Several spaces are treated as one, except if they are enclosed by quotes.
 
These options are separated by space, can contain macros and are appended to the ''linker'' options of all packages/projects, which use/require this package. Line breaks are converted to spaces. Several spaces are treated as one, except if they are enclosed by quotes.
  
== Custom ==
+
==== Custom ====
  
 
These options are separated by space, can contain macros and are appended to the ''custom'' options of all packages/projects, which use/require this package. Line breaks are converted to spaces. Several spaces are treated as one, except if they are enclosed by quotes.
 
These options are separated by space, can contain macros and are appended to the ''custom'' options of all packages/projects, which use/require this package. Line breaks are converted to spaces. Several spaces are treated as one, except if they are enclosed by quotes.
  
= Description =
+
== Description ==
  
== Description / Abstract ==
+
=== Description / Abstract ===
  
 
Write here in a few words, what this package does.
 
Write here in a few words, what this package does.
  
== Author ==
+
=== Author ===
  
 
You.
 
You.
  
== License ==
+
=== License ===
  
 
If you publish/distribute/sell your package, it is a good idea to add the license information.
 
If you publish/distribute/sell your package, it is a good idea to add the license information.
  
== Version ==
+
=== Version ===
  
 
Here is a suggestion, how to use the version numbers:
 
Here is a suggestion, how to use the version numbers:
Line 58: Line 60:
 
* '''Build number''' - increase this everytime you rebuild this package. Will eventually be incremented automatically by below option.
 
* '''Build number''' - increase this everytime you rebuild this package. Will eventually be incremented automatically by below option.
  
=== Automatically increment version on build ===
+
==== Automatically increment version on build ====
  
 
Not implemented yet. Main problem is: It must be incremented before building, because of macros. And it should not be increased if build fails.
 
Not implemented yet. Main problem is: It must be incremented before building, because of macros. And it should not be increased if build fails.
  
= IDE Integration =
+
== IDE Integration ==
  
== Package Type ==
+
=== Package Type ===
  
 
* '''Designtime only''' - The package is used only at designtime, in other words: it is only a plugin for the IDE and is never used by normal applications. A designtime package requires the IDEIntf package, which contains the interface functions to the IDE. If you use a designtime package in a project, the IDE will warn you.
 
* '''Designtime only''' - The package is used only at designtime, in other words: it is only a plugin for the IDE and is never used by normal applications. A designtime package requires the IDEIntf package, which contains the interface functions to the IDE. If you use a designtime package in a project, the IDE will warn you.
Line 70: Line 72:
 
* '''Designtime and Runtime''' - The package provides some IDE stuff and some stuff useful for normal applications.
 
* '''Designtime and Runtime''' - The package provides some IDE stuff and some stuff useful for normal applications.
  
== Update/Rebuild ==
+
=== Update/Rebuild ===
  
 
* '''Automatically rebuild as needed''' - Everytime a project or package that uses this package (direct or indirect) is rebuilt, the IDE checks, if any file of this package has changed and recompiles this package.
 
* '''Automatically rebuild as needed''' - Everytime a project or package that uses this package (direct or indirect) is rebuilt, the IDE checks, if any file of this package has changed and recompiles this package.
 
* '''Auto rebuild when rebuilding all''' - As above, but only if the user explicitly chose to rebuild all.
 
* '''Auto rebuild when rebuilding all''' - As above, but only if the user explicitly chose to rebuild all.
* '''Manual compilation (never automatically)''' - The package is never rebuilt indirectly. You must open the package editor and click compile to compile this package. Note: Some built in packages like the FCL and the LCL can only be copiled by special ways, like make.
+
* '''Manual compilation (never automatically)''' - The package is never rebuilt indirectly. You must open the [[IDE Window: Package Editor|package editor]] and click compile to compile this package. Note: Some built in packages like the FCL and the LCL can only be copiled by special ways, like make.

Revision as of 16:20, 14 July 2006

Deutsch (de) English (en) français (fr) русский (ru)

Usage

Add Paths to dependent packages / project

All these paths are not used by this package itself, but they are added to the appropriate paths of the packages/projects, that use this package. These are called inherited paths. For example: Package A needs Package B needs Package C. All usage options of C are appended to the options of B and A.

For example almost all packages inherit their output directory, so that any package, that uses this package, finds the .ppu files.

You can see, what paths are inherited from other packages/projects in the compiler options dialog.

Unit

These paths are separated by semicolon, can contain macros, and are appended to the unit paths of all packages/projects, which use/require this package. The unit path is used by the IDE and the compiler to search for pascal units (.pas, .pp, .ppu).

Include

Same as the unit path, but for the include path - include files.

Object

Same as the unit path, but for the object path (.o files).

Library

Same as the unit path, but for the library path (linker files).

Add options to dependent packages and projects

Linker

These options are separated by space, can contain macros and are appended to the linker options of all packages/projects, which use/require this package. Line breaks are converted to spaces. Several spaces are treated as one, except if they are enclosed by quotes.

Custom

These options are separated by space, can contain macros and are appended to the custom options of all packages/projects, which use/require this package. Line breaks are converted to spaces. Several spaces are treated as one, except if they are enclosed by quotes.

Description

Description / Abstract

Write here in a few words, what this package does.

Author

You.

License

If you publish/distribute/sell your package, it is a good idea to add the license information.

Version

Here is a suggestion, how to use the version numbers:

  • Major - increase this, if your package changed a lot.
  • Minor - increase this, if your package changes it API slightly. For example new features or a method changed its parameters.
  • Revision - increase this every time you distribute your package.
  • Build number - increase this everytime you rebuild this package. Will eventually be incremented automatically by below option.

Automatically increment version on build

Not implemented yet. Main problem is: It must be incremented before building, because of macros. And it should not be increased if build fails.

IDE Integration

Package Type

  • Designtime only - The package is used only at designtime, in other words: it is only a plugin for the IDE and is never used by normal applications. A designtime package requires the IDEIntf package, which contains the interface functions to the IDE. If you use a designtime package in a project, the IDE will warn you.
  • Runtime only - The package does not provide any IDE goodies, so the package should not be installed in the IDE. For example, because it uses a special memory manager or library.
  • Designtime and Runtime - The package provides some IDE stuff and some stuff useful for normal applications.

Update/Rebuild

  • Automatically rebuild as needed - Everytime a project or package that uses this package (direct or indirect) is rebuilt, the IDE checks, if any file of this package has changed and recompiles this package.
  • Auto rebuild when rebuilding all - As above, but only if the user explicitly chose to rebuild all.
  • Manual compilation (never automatically) - The package is never rebuilt indirectly. You must open the package editor and click compile to compile this package. Note: Some built in packages like the FCL and the LCL can only be copiled by special ways, like make.