Dev-C++ Package File Format Version 1 - March the 15th, 2002 Update October the 7th, 2008 General Information ------------------- The content of a DevPak package is described using a package description file, which has the extension .DevPackage. The file is really a simple INI file. This is an updated version of the original "File Format.txt" file found in the cvs repository of Dev C++: http://dev-cpp.cvs.sourceforge.net/viewvc/dev-cpp/V5/source/packman/File%20Format.txt?view=log or in the svn repository of wxDev-C++ (or wxDesigner) http://wxdsgn.svn.sourceforge.net/viewvc/wxdsgn/trunk/packman/File%20Format.txt?view=log Sections -------- The .DevPackage file contains three sections: [Setup] This section contains information about the package, such as package name, version, description, readme, license, etc. [Files] This section contains information about files, and where they should be installed to. [Icons] This section contains information about links to documentation or webpages which are added to the Dev-C++ start menu. The [Setup] section ------------------- This section *must* contain at least the following keys: Version The package format's version number. A higher version number means that this package is not compatible with older package managers. AppName A name for the package. Example: MyApp AppVerName The package's name and the version together. Example: MyApp Version 1.0 AppVersion The package's version number. Example: 1.0 MenuName A name for a menu group for this package. The following keys are optional: Url An URL to the library's website. Picture A filename to a logo/picture/whatever that will be displayed. Description A desription for the package. Readme A filename to the Readme file, relative to the .DevPackage file. Example: README.TXT License A filename to the license file, relative to the .DevPackage file. Example: COPYING.TXT Reboot Wether the package requires a reboot or not in order to function properly. The value can be either 1 (true) or 0 (false). Dependencies A comma-seperated list of package names that this package depends on. The [Files] section ------------------- Keys in the Files section are composed in the following format: Source=Destdir\[FileName][;Flags] Source (required): The name of the source file, relative to the .DevPackage file. This can be a directory, in which case all files inside that directory will be copied. Destdir (required): The destination directory. Please note that Destdir must *always* end with a backslash (\). Otherwise it will be interpreted as FileName. FileName (optional): If this is specified, the copied file will be renamed to the specified filename. Flags (optional): An extra set of options. recursive If Source is a directory, the installer will recurse into any subdirectories and copy the files inside those subdirectories too. This doesn't work in Dev-C++, since one one hand the directories are copied recursively by default and on the other hand the ";" is used in DestDir corrupting the destination filename. Constants: Sourcedir and Destdir can contain constants. A constant will be replaced to their literal value, depending on the user's configuration. The constants' names are not case sensitive. Dev-C++'s root directory (usually C:\Dev-C++). The source directory (the directory where the .DevPackage file is located). The system's Windows directory (usually C:\WINDOWS). The system's Windows System directory (usually C:\WINDOWS\SYSTEM). Examples: Foo.txt=\ Installs to C:\Dev-C++\Foo.txt Bar.h=\include\FooBar.h Installs to C:\Dev-C++\include\FooBar.h L33t.dll=\ Installs to C:\WINDOWS\System\L33t.dll WindowsSucks.exe=\Explorer.exe Installs to C:\WINDOWS\Explorer.exe BigFolder=C:\;recursive Installs all files in BigFolder, including all files inside any subfolders, to C:\ The [Icons] section ------------------- This section is ignored if MenuName (in the Setup section) is not given. Entries in this section describe what menu items should be created. Each entry has the following format: Name=Target[,Icon Filename] Target can contain constants as described in the Files section. Examples: [Setup] MenuName=GTK [Icons] Website=http://www.gtk.org/ This will create the menu group "Start->Programs->Bloodshed Dev-C++->GTK", with 1 menu item, called Website, which points to http://www.gtk.org/ [Setup] MenuName=FLTK [Icons] UI Designer=\bin\Fluid.exe,\Icons\Fluid.ico Website=http://www.fltk.org/ Let's assume that Dev-C++ is installed in C:\Dev-C++. This will create the menu group "Start->Programs->Bloodshed Dev-C++->FLTK", with 2 menu items: - Website, which points to http://www.gtk.org/ - UI Designer, which points to C:\Dev-C++\bin\fluid.exe, and use the icon file C:\Dev-C++\Icons\Fluid.ico