Difference between revisions of "File extensions"

From Free Pascal wiki
Jump to navigationJump to search
(→‎Subversion or Git: Minor type.)
m (→‎Mac: Adjusted heading)
(11 intermediate revisions by 4 users not shown)
Line 5: Line 5:
 
== Lazarus ==
 
== Lazarus ==
 
=== Project files ===
 
=== Project files ===
*.lpi  
+
{| class="wikitable sortable"
    Lazarus Project Information file (stored in XML; contains project-specific settings)  
+
! extension || description
*.lpr  
+
|-
    Lazarus Program file; contains Pascal source of main program  
+
| .lpi || Lazarus Project Information file (stored in XML; contains project-specific settings)  
*.lfm  
+
|-
    Lazarus Form file; contains configuration information for all objects on a form  
+
| .lpr || Lazarus Program file; contains Pascal source of main program  
    (stored in a Lazarus-specific format; the actions are described by Pascal source code in a corresponding *.pas file)  
+
|-
*.pas  
+
| .lfm || Lazarus Form file; contains configuration information for all objects on a form (stored in a Lazarus-specific format; the actions are described by Pascal source code in a corresponding .pas file)  
    Unit with Pascal code (typically for a form stored in a corresponding *.lfm file)  
+
|-
*.pp
+
| .pas || Unit with Pascal code (typically for a form stored in a corresponding .lfm file)  
    Pascal code
+
|-
*.lrs  
+
| .pp || Pascal code
    Lazarus Resource file (this is a generated file; not to be confused with a Windows resource file).  
+
|-
*.ppu  
+
| .lrs ||  Lazarus Resource file (this is a generated file; not to be confused with a Windows resource file).  
    Compiled unit, symbols part.
+
|-
*.o  
+
| .ppu ||  Compiled unit, symbols part.
    (1) Compiled unit, code part.
+
|-
    (2) Compiled code from other compilers (e.g. gcc)
+
| .o || (1) Compiled unit, code part.<br />  (2) Compiled code from other compilers (e.g. gcc)
*.or
+
|-
    object resource, automatically generated from {$R} directive.
+
| .or || object resource, automatically generated from {$R} directive.
*.a  
+
|-
    (1) Compiled unit, code part for smartlinking (on some platforms)
+
| .a ||  (1) Compiled unit, code part for smartlinking (on some platforms)<br /> (2) Compiled code from other compilers (e.g. gcc) linked into a static library
    (2) Compiled code from other compilers (e.g. gcc) linked into a static library
+
|-
*.lpk  
+
| .lpk || Lazarus package information file. (stored in XML; contains package-specific settings)
    Lazarus package information file. (stored in XML; contains package-specific settings)
+
|-
*.inc
+
| .inc || Include file
    Include file
+
|-
*.lps
+
| .lps || Lazarus Project Session file. See [[IDE Window: Project Options#Save session information in|Project Options Save session information in]]
    Lazarus Project Session file. See [[IDE Window: Project Options#Save session information in|Project Options -> Save session information in]]
+
|-
*.lrt
+
| .lrt || Lazarus Resourcestring table created when saving a .lfm file and i18n is enabled. It contains the TTranslateString properties of the .lfm.
    Lazarus Resourcestring table created when saving a lfm file and i18n is enabled. It contains the TTranslateString properties of the lfm.
+
|-
*.rst
+
| .rst || Resourcestring table created by the compiler for every unit with a resourcestring section.  
    Resourcestring table created by the compiler for every unit with a resourcestring section.  
+
|-
*.rsj
+
| .rsj || Resourcestring table in JSON format created by FPC 2.7.1 for units with resourcestring section.
    Resourcestring table in JSON format created by FPC 2.7.1 for units with resourcestring section.
+
|-
*.compiled
+
| .compiled || compilation session for a project
    compilation session for a project
+
|-
 +
| .ico || program icon
 +
|-
 +
| .gitignore || list of files/directories to be ignored when using [[git]]
 +
|-
 +
| .rc || [[resource file]]
 +
|-
 +
| .res || compiled [[resource file]]
 +
|}
  
 
=== Subversion or Git ===
 
=== Subversion or Git ===
Line 69: Line 77:
 
  *.rst
 
  *.rst
 
  *.compiled
 
  *.compiled
 +
 +
Note that *.lrj files are generated for every form while tracking i18n, loss of these files can cause missing translations.
  
 
There is an example .gitignore file at [https://github.com/github/gitignore/blob/master/Global/Lazarus.gitignore].
 
There is an example .gitignore file at [https://github.com/github/gitignore/blob/master/Global/Lazarus.gitignore].
Line 129: Line 139:
 
     portable bitmap  
 
     portable bitmap  
 
  *.jpg
 
  *.jpg
 
+
    compressed image format standardised by the Joint Photographic Experts Group (JPEG)
 
 
  
 
=== XML ===
 
=== XML ===
Line 148: Line 157:
 
     tape archive
 
     tape archive
 
  *.zip
 
  *.zip
 +
    a single file containing one or more compressed files
  
 
=== Database ===
 
=== Database ===
Line 164: Line 174:
  
 
== Operating system ==
 
== Operating system ==
=== Linux and Unix ===
+
=== Linux and Unix (excluding Darwin) ===
 
  *.so  
 
  *.so  
 
     Shared object library
 
     Shared object library
Line 172: Line 182:
 
     Debian Package
 
     Debian Package
 
  *.rpm
 
  *.rpm
     Red Hat Package Manager  
+
     Red Hat Package Manager
 +
 
 +
===  Mac (Darwin) ===
  
===  Mac ===
 
 
  *.app
 
  *.app
     Application bundle
+
     [[Application Bundle|Application bundle]] (a structured directory)
 
  *.dmg
 
  *.dmg
 
     Disk Image File  
 
     Disk Image File  
 
  *.dylib  
 
  *.dylib  
     Dynamic shared library
+
     [[macOS Dynamic Libraries|Dynamic shared library]]
 +
*.framework
 +
    Framework (set of interfaces or subframeworks)
 +
*.icns
 +
    Icon resource file containing one or more images used for an application icon
 +
*.plist
 +
    [[macOS property list files|Property list file]] (storage for serialised objects)
  
 
=== Windows ===
 
=== Windows ===
Line 191: Line 208:
  
 
== See also ==
 
== See also ==
 +
 
[[Alphabetical list of file extensions]]
 
[[Alphabetical list of file extensions]]
  
 +
[[Category:Lazarus]]
 
[[Category:File Handling]]
 
[[Category:File Handling]]

Revision as of 00:49, 10 January 2021

File extensions

Some file extensions

Lazarus

Project files

extension description
.lpi Lazarus Project Information file (stored in XML; contains project-specific settings)
.lpr Lazarus Program file; contains Pascal source of main program
.lfm Lazarus Form file; contains configuration information for all objects on a form (stored in a Lazarus-specific format; the actions are described by Pascal source code in a corresponding .pas file)
.pas Unit with Pascal code (typically for a form stored in a corresponding .lfm file)
.pp Pascal code
.lrs Lazarus Resource file (this is a generated file; not to be confused with a Windows resource file).
.ppu Compiled unit, symbols part.
.o (1) Compiled unit, code part.
(2) Compiled code from other compilers (e.g. gcc)
.or object resource, automatically generated from {$R} directive.
.a (1) Compiled unit, code part for smartlinking (on some platforms)
(2) Compiled code from other compilers (e.g. gcc) linked into a static library
.lpk Lazarus package information file. (stored in XML; contains package-specific settings)
.inc Include file
.lps Lazarus Project Session file. See Project Options Save session information in
.lrt Lazarus Resourcestring table created when saving a .lfm file and i18n is enabled. It contains the TTranslateString properties of the .lfm.
.rst Resourcestring table created by the compiler for every unit with a resourcestring section.
.rsj Resourcestring table in JSON format created by FPC 2.7.1 for units with resourcestring section.
.compiled compilation session for a project
.ico program icon
.gitignore list of files/directories to be ignored when using git
.rc resource file
.res compiled resource file

Subversion or Git

These files would normally be stored in a repository as an adequate description of a project:

*.lpi
*.lpr
*.lfm
*.pas
*.pp

These files might contain manually-generated or imported information, or might be regenerated by the IDE or build process. In general, if they have the same basename as the project or a form or unit they're IDE-generated, but in all cases should be reviewed individually:

*.inc
*.res
*.lrs
*.rc
*.ico

These files are regenerated by the IDE or by a build so do not need to be stored:

*.ppu
*.o
*.a
*.lps
*.or
*.rst
*.compiled

Note that *.lrj files are generated for every form while tracking i18n, loss of these files can cause missing translations.

There is an example .gitignore file at [1].

Delphi

Project files

*.dfm
   Delphi form module
*.dof
   Delphi project options file
*.dsk
   Desktop configuration

Converting Delphi projects

Lazarus can convert at least some Delphi project files into its own format.

Application

General

*.txt
   Text file
*.po
   Gettext Portable Object
*.bak
   Backup
*.cfg
   Config file
*.chm
   Compiled Help File - contains html. See also package chm
*.csv
   Comma Separated Values text file format 
*.exe
   Directly executable program
*.hlp
   Help file
*.ini
   Initialization file
*.odt
   OpenDocument text document
*.pdf
   Portable Document Format
*.ps
   PostScript 
*.rtf
   Rich Text Format text file

Image

*.png
   Portable network graphic
*.bmp
   bitmap 
*.ico
   icon 
*.xpm
   pixmap 
*.ppm
   portable pixmap 
*.pgm
   portable graymap 
*.pbm
   portable bitmap 
*.jpg
   compressed image format standardised by the Joint Photographic Experts Group (JPEG)

XML

*.xml
*.dtd
*.xsd
*.xsl

Web

*.html
   Hypertext Markup Language
*.css
   Cascading style sheet

Archive

*.tar
   tape archive
*.zip
   a single file containing one or more compressed files

Database

*.dbf
   Database file
*.mdx
   Multiple index file

Spreadsheet

*.ods
   OpenOffice.org Calc spreadsheet File Format
*.xls  
   Microsoft Excel File Format
*.xlsx  
   Microsoft Office Open XML Excel File Format 

Operating system

Linux and Unix (excluding Darwin)

*.so 
   Shared object library
*.sh
   Shell script
*.deb
   Debian Package
*.rpm
   Red Hat Package Manager

Mac (Darwin)

*.app
   Application bundle (a structured directory)
*.dmg
   Disk Image File 
*.dylib 
   Dynamic shared library
*.framework
   Framework (set of interfaces or subframeworks)
*.icns
   Icon resource file containing one or more images used for an application icon 
*.plist
   Property list file (storage for serialised objects)

Windows

*.bat
   Batch file. It's a text file that contains a sequence of commands for a computer operating system.
*.dll 
  dynamic-link library
*.exe
   Directly executable program

See also

Alphabetical list of file extensions