file.personality
—
pkgconf cross-compile personality file format
pkgconf cross-compile personality files provide a useful mechanism
for storing various information about system toolchains. Information stored
by .personality
files include information about
paths used by a cross-compile toolchain, such as the sysroot directory and
default include and library paths. pkgconf uses this information to
determine what information is necessary to use libraries.
The .personality
file follows a format
inspired by RFC822. Comments are prefixed by a pound sign, hash sign or
octothorpe (#), and variable assignment is similar to POSIX shell.
Properties are defined using RFC822-style stanzas.
Properties are set using RFC822-style stanzas which consist of a
keyword, followed by a colon (:) and then the value the property should be
set to. Variable substitution is always performed regardless of property
type.
There are three types of property:
- Literal
- The property will be set to the text of the value.
- Fragment List
- The property will be set to a list of fragments parsed from the text. The
input text must be in a format that is suitable for passing to a POSIX
shell without any shell expansions after variable substitution has been
done. Elements are delimited with a colon.
- Boolean
- The property will be set to true if the value is one of: true, yes or 1.
Otherwise it will be set to false.
- Triplet
- The triplet used by the cross-compile toolchain. (mandatory; literal)
- SysrootDir
- The directory used by the system root of the cross-compile toolchain.
(mandatory; literal)
- DefaultSearchPaths
- A list of directories to look for
pc(5)
files in. (mandatory; fragment list)
- SystemIncludePaths
- A list of directories that are included by default in the search path for
include files. (mandatory; fragment list)
- SystemLibraryPaths
- A list of directories that are included by default in the search path for
libraries. (mandatory; fragment list)
- WantDefaultPure
- If true, pkgconf will default to preferring a pure dependency graph.
(optional; boolean; default is false)
- WantDefaultStatic
- If true, pkgconf will default to operating in static linking mode.
(optional; boolean; default is false)
An example .personality file:
# This is a comment
Triplet: x86_64-pc-linux-gnu
SysrootDir: /home/kaniini/sysroot/x86_64-pc-linux-gnu
DefaultSearchPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib/pkgconfig:/home/kaniini/sysroot/x86_64-pc-linux-gnu/share/pkgconfig
SystemIncludePaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/include
SystemLibraryPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib