Re-locate the application somewhere else after compilation, if the developer wishes for easier distribution of pre-compiled binaries.
- Parameters:
-
mainfunc | This is your application's main function name, whose binary's location is to be found. Providing NULL will make Elementary not to use it |
dom | This will be used as the application's "domain", in the form of a prefix to any environment variables that may override prefix detection and the directory name, inside the standard share or data directories, where the software's data files will be looked for. |
checkfile | This is an (optional) magic file's path to check for existence (and it must be located in the data directory, under the share directory provided above). Its presence will help determine the prefix found was correct. Pass NULL if the check is not to be done. |
The prefix system is designed to locate where the given software is installed (under a common path prefix) at run time and then report specific locations of this prefix and common directories inside this prefix like the binary, library, data and locale directories, through the elm_app_*_get
() family of functions.
Call elm_app_info_set() early on before you change working directory or anything about argv
[0], so it gets accurate information.
It will then try and trace back which file mainfunc
comes from, if provided, to determine the application's prefix directory.
The dom
parameter provides a string prefix to prepend before environment variables, allowing a fallback to specific environment variables to locate the software. You would most probably provide a lowercase string there, because it will also serve as directory domain, explained next. For environment variables purposes, this string is made uppercase. For example if "myapp"
is provided as the prefix, then the program would expect "MYAPP_PREFIX"
as a master environment variable to specify the exact install prefix for the software, or more specific environment variables like "MYAPP_BIN_DIR"
, "MYAPP_LIB_DIR"
, "MYAPP_DATA_DIR"
and "MYAPP_LOCALE_DIR"
, which could be set by the user or scripts before launching. If not provided (NULL
), environment variables will not be used to override compiled-in defaults or auto detections.
The dom
string also provides a subdirectory inside the system shared data directory for data files. For example, if the system directory is /usr/local/share
, then this directory name is appended, creating /usr/local/share/myapp
, if it was
"myapp"
. It is expected that the application installs data files in this directory.
The checkfile
is a file name or path of something inside the share or data directory to be used to test that the prefix detection worked. For example, your app will install a wallpaper image as /usr/local/share/myapp/images/wallpaper
.jpg and so to check that this worked, provide "images/wallpaper.jpg"
as the checkfile
string.
- See also:
- elm_app_compile_bin_dir_set()
-
elm_app_compile_lib_dir_set()
-
elm_app_compile_data_dir_set()
-
elm_app_compile_locale_set()
-
elm_app_prefix_dir_get()
-
elm_app_bin_dir_get()
-
elm_app_lib_dir_get()
-
elm_app_data_dir_get()
-
elm_app_locale_dir_get()
- Since :
- 2.3
- Examples:
- bg_example_02.c, bg_example_03.c, codegen_example.c, general_funcs_example.c, gengrid_example.c, image_example_01.c, index_example_02.c, layout_example_01.c, layout_example_03.c, map_example_02.c, photocam_example_01.c, popup_example_02.c, popup_example_03.c, progressbar_example.c, slideshow_example.c, theme_example_01.c, theme_example_02.c, thumb_example_01.c, transit_example_03.c, transit_example_04.c, and win_example.c.