summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGustavo Sverzut Barbieri <barbieri@gmail.com>2012-12-28 23:26:05 +0000
committerGustavo Sverzut Barbieri <barbieri@gmail.com>2012-12-28 23:26:05 +0000
commit2608f68571b277967b2e27d6136c95f03befd183 (patch)
tree24a3b2764432b9fbde980aabf6bc40e7c74b1610 /doc
parent4f6a4e59a4e7774fe55ae3ecf37d42faabec07e4 (diff)
efl/docs: clean-up and make it more uniform.
now unified docs are bit more uniform in their start pages, overall improved but much to do :-( SVN revision: 81851
Diffstat (limited to 'doc')
-rw-r--r--doc/Doxyfile.in21
-rw-r--r--doc/edbus_examples.dox45
-rw-r--r--doc/eet_examples.dox2
-rw-r--r--doc/eina_examples.dox105
-rw-r--r--doc/eo_tutorial.dox42
-rw-r--r--doc/head.html8
-rw-r--r--doc/main.dox43
-rw-r--r--doc/pkgconfig.dox61
8 files changed, 274 insertions, 53 deletions
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index 2c00f2d4fa..c93922a0c2 100644
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -594,11 +594,14 @@ WARN_LOGFILE =
594 594
595INPUT = @top_srcdir@/src/lib \ 595INPUT = @top_srcdir@/src/lib \
596 @srcdir@/main.dox \ 596 @srcdir@/main.dox \
597 @srcdir@/pkgconfig.dox \
598 @srcdir@/eina_examples.dox \
597 @srcdir@/ecore_examples.dox \ 599 @srcdir@/ecore_examples.dox \
598 @srcdir@/eet_examples.dox \ 600 @srcdir@/eet_examples.dox \
599 @srcdir@/evas_examples.dox \ 601 @srcdir@/evas_examples.dox \
600 @srcdir@/eo_tutorial.dox \ 602 @srcdir@/eo_tutorial.dox \
601 @srcdir@/eio_examples.dox 603 @srcdir@/eio_examples.dox \
604 @srcdir@/edbus_examples.dox
602 605
603# This tag can be used to specify the character encoding of the source files 606# This tag can be used to specify the character encoding of the source files
604# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 607# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -794,12 +797,16 @@ COLS_IN_ALPHA_INDEX = 2
794# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 797# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
795# should be ignored while generating the index headers. 798# should be ignored while generating the index headers.
796 799
797IGNORE_PREFIX = eina_ \ 800IGNORE_PREFIX = eina_ _eina_ Eina_ _Eina_ EINA_ _EINA_ \
798 _eina_ \ 801eo_ _eo_ Eo_ _Eo_ EO_ _EO_ \
799 Eina_ \ 802embryo_ _embryo_ Embryo_ _Embryo_ EMBRYO_ _EMBRYO_ \
800 _Eina_ \ 803escape_ _escape_ Escape_ _Escape_ ESCAPE_ _ESCAPE_ \
801 EINA_ \ 804evil_ _evil_ Evil_ _Evil_ EVIL_ _EVIL_ \
802 _EINA_ 805evas_ _evas_ Evas_ _Evas_ EVAS_ _EVAS_ \
806eet_ _eet_ Eet_ _Eet_ EET_ _EET_ \
807ecore_ _ecore_ Ecore_ _Ecore_ ECORE_ _ECORE_ \
808eio_ _eio_ Eio_ _Eio_ EIO_ _EIO_ \
809edbus_ _edbus_ EDBus_ _EDBus_ EDBUS_ _EDBUS_
803 810
804#--------------------------------------------------------------------------- 811#---------------------------------------------------------------------------
805# configuration options related to the HTML output 812# configuration options related to the HTML output
diff --git a/doc/edbus_examples.dox b/doc/edbus_examples.dox
new file mode 100644
index 0000000000..08c687d675
--- /dev/null
+++ b/doc/edbus_examples.dox
@@ -0,0 +1,45 @@
1/**
2 * @page edbus_examples EDBus Examples
3 *
4 * Examples:
5 * @li @ref banshee.c
6 * @li @ref client.c
7 * @li @ref complex-types.c
8 * @li @ref complex-types-client-eina-value.c
9 * @li @ref complex-types-server.c
10 * @li @ref connman-list-services.c
11 * @li @ref ofono-dial.c
12 * @li @ref server.c
13 * @li @ref simple-signal-emit.c
14 *
15 * @example banshee.c
16 * Access Banshee music player and send commands to it.
17 *
18 * @example client.c
19 * Client to test various call message types against a provided server
20 * (@ref server.c)
21 *
22 * @example complex-types.c
23 * Client to test complex types (arrays, structs, dicts) against a
24 * provided server (@ref complex-types-server.c)
25 *
26 * @example complex-types-client-eina-value.c
27 * Client to test complex types (arrays, structs, dicts) against a
28 * provided server (@ref complex-types-server.c) returning them as
29 * @ref Eina_Value.
30 *
31 * @example complex-types-server.c
32 * Server to test complex types (arrays, structs, dicts).
33 *
34 * @example connman-list-services.c
35 * Client to list networks/services from connman.
36 *
37 * @example ofono-dial.c
38 * Client to ask oFono to dial.
39 *
40 * @example server.c
41 * Server to reply to @ref client.c requests.
42 *
43 * @example simple-signal-emit.c
44 * Server that registers a service interface and emits simple signals.
45 */
diff --git a/doc/eet_examples.dox b/doc/eet_examples.dox
index 20c19c3899..20c1177826 100644
--- a/doc/eet_examples.dox
+++ b/doc/eet_examples.dox
@@ -12,8 +12,6 @@
12 * @ref Example_Eet_Data_File_Descriptor_02 12 * @ref Example_Eet_Data_File_Descriptor_02
13 * 13 *
14 * @ref Example_Eet_Data_Cipher_Decipher 14 * @ref Example_Eet_Data_Cipher_Decipher
15 *
16 * <a href="examples.html">List of examples</a>
17 */ 15 */
18 16
19/** 17/**
diff --git a/doc/eina_examples.dox b/doc/eina_examples.dox
new file mode 100644
index 0000000000..95f64fd408
--- /dev/null
+++ b/doc/eina_examples.dox
@@ -0,0 +1,105 @@
1/**
2 * @page eina_examples Eina Examples
3 *
4 * Examples:
5 * @li @ref eina_accessor_01.c
6 * @li @ref eina_array_01.c
7 * @li @ref eina_array_02.c
8 * @li @ref eina_error_01.c
9 * @li @ref eina_file_01.c
10 * @li @ref eina_hash_01.c
11 * @li @ref eina_hash_02.c
12 * @li @ref eina_hash_03.c
13 * @li @ref eina_hash_04.c
14 * @li @ref eina_hash_05.c
15 * @li @ref eina_hash_06.c
16 * @li @ref eina_hash_07.c
17 * @li @ref eina_hash_08.c
18 * @li @ref eina_inarray_01.c
19 * @li @ref eina_inarray_02.c
20 * @li @ref eina_inlist_01.c
21 * @li @ref eina_inlist_02.c
22 * @li @ref eina_inlist_03.c
23 * @li @ref eina_iterator_01.c
24 * @li @ref eina_list_01.c
25 * @li @ref eina_list_02.c
26 * @li @ref eina_list_03.c
27 * @li @ref eina_list_04.c
28 * @li @ref eina_log_01.c
29 * @li @ref eina_log_02.c
30 * @li @ref eina_log_03.c
31 * @li @ref eina_magic_01.c
32 * @li @ref eina_model_01.c
33 * @li @ref eina_model_02.c
34 * @li @ref eina_model_03.c
35 * @li @ref eina_model_04_animal.c
36 * @li @ref eina_model_04_child.c
37 * @li @ref eina_model_04_human.c
38 * @li @ref eina_model_04_main.c
39 * @li @ref eina_model_04_parrot.c
40 * @li @ref eina_model_04_whistler.c
41 * @li @ref eina_simple_xml_parser_01.c
42 * @li @ref eina_str_01.c
43 * @li @ref eina_strbuf_01.c
44 * @li @ref eina_stringshare_01.c
45 * @li @ref eina_tiler_01.c
46 * @li @ref eina_value_01.c
47 * @li @ref eina_value_02.c
48 * @li @ref eina_value_03.c
49 *
50 * Tutorials:
51 * @li @ref tutorial_benchmark_page
52 * @li @ref tutorial_binshare_page
53 * @li @ref tutorial_eina_string
54 * @li @ref tutorial_error_page
55 * @li @ref tutorial_log_page
56 * @li @ref tutorial_matrixsparse_page
57 * @li @ref tutorial_quadtree_page
58 * @li @ref tutorial_strbuf
59 * @li @ref tutorial_ustringshare_page
60 *
61 * @example eina_accessor_01.c
62 * @example eina_array_01.c
63 * @example eina_array_02.c
64 * @example eina_error_01.c
65 * @example eina_file_01.c
66 * @example eina_hash_01.c
67 * @example eina_hash_02.c
68 * @example eina_hash_03.c
69 * @example eina_hash_04.c
70 * @example eina_hash_05.c
71 * @example eina_hash_06.c
72 * @example eina_hash_07.c
73 * @example eina_hash_08.c
74 * @example eina_inarray_01.c
75 * @example eina_inarray_02.c
76 * @example eina_inlist_01.c
77 * @example eina_inlist_02.c
78 * @example eina_inlist_03.c
79 * @example eina_iterator_01.c
80 * @example eina_list_01.c
81 * @example eina_list_02.c
82 * @example eina_list_03.c
83 * @example eina_list_04.c
84 * @example eina_log_01.c
85 * @example eina_log_02.c
86 * @example eina_log_03.c
87 * @example eina_magic_01.c
88 * @example eina_model_01.c
89 * @example eina_model_02.c
90 * @example eina_model_03.c
91 * @example eina_model_04_animal.c
92 * @example eina_model_04_child.c
93 * @example eina_model_04_human.c
94 * @example eina_model_04_main.c
95 * @example eina_model_04_parrot.c
96 * @example eina_model_04_whistler.c
97 * @example eina_simple_xml_parser_01.c
98 * @example eina_str_01.c
99 * @example eina_strbuf_01.c
100 * @example eina_stringshare_01.c
101 * @example eina_tiler_01.c
102 * @example eina_value_01.c
103 * @example eina_value_02.c
104 * @example eina_value_03.c
105 */
diff --git a/doc/eo_tutorial.dox b/doc/eo_tutorial.dox
index c30da62e44..364ff54151 100644
--- a/doc/eo_tutorial.dox
+++ b/doc/eo_tutorial.dox
@@ -1,12 +1,10 @@
1/** 1/**
2 * @page Eo_Tutorial Eo Tutorial 2 * @page Eo_Tutorial Eo Tutorial
3 * 3 *
4 * Purpose: 4 * @section Purpose
5 * -------
6 * The purpose of this document is to explain how to work with Eo, how to port your code to Eo and what are the common pitfalls. It doesn't explain how it works inside. 5 * The purpose of this document is to explain how to work with Eo, how to port your code to Eo and what are the common pitfalls. It doesn't explain how it works inside.
7 * 6 *
8 * Description: 7 * @section Description
9 * -----------
10 * Eo is an Object oriented infrastructure for the EFL. It is a API/ABI safe library. 8 * Eo is an Object oriented infrastructure for the EFL. It is a API/ABI safe library.
11 * 9 *
12 * It supports inheritance, mixins, interfaces and composite objects.\n 10 * It supports inheritance, mixins, interfaces and composite objects.\n
@@ -16,10 +14,9 @@
16 * At the creation of the class, a "virtual table" is filled with the needed functions.\n 14 * At the creation of the class, a "virtual table" is filled with the needed functions.\n
17 * The key of this table is a (class id, function id) tuple. 15 * The key of this table is a (class id, function id) tuple.
18 * 16 *
19 * eo_do is invoked with a list of op ids and their parameters and is in charge to dispatch the relevant functions. Finding the correct function is fast because it is just a lookup table. 17 * eo_do() is invoked with a list of op ids and their parameters and is in charge to dispatch the relevant functions. Finding the correct function is fast because it is just a lookup table.
20 * 18 *
21 * How to use it? 19 * @section How to use it?
22 * -------------
23 * - Creation of an instance of a class 20 * - Creation of an instance of a class
24 * 21 *
25 * - Old way: 22 * - Old way:
@@ -74,18 +71,17 @@
74 * eo_do_super(obj, elm_wdg_theme(&int_ret)); 71 * eo_do_super(obj, elm_wdg_theme(&int_ret));
75 * @endcode 72 * @endcode
76 * 73 *
77 * Important to know: 74 * @section Important to know
78 * ----------------- 75 * - eo_do() is the function used to invoke functions of a specific class on an object.
79 * - eo_do is the function used to invoke functions of a specific class on an object.
80 * 76 *
81 * - eo_data_get receives an object and a class and returns the data of the given class for the object. The class must belong to the object class hierarchy. 77 * - eo_data_get() receives an object and a class and returns the data of the given class for the object. The class must belong to the object class hierarchy.
82 * 78 *
83 * - eo_isa indicates if a given object is of a given type. 79 * - eo_isa() indicates if a given object is of a given type.
84 * 80 *
85 * - eo_do_super is in charge to invoke a function in the next parents that implement it. It is recommended to use eo_do_super only from a function with the same op id.\n 81 * - eo_do_super() is in charge to invoke a function in the next parents that implement it. It is recommended to use eo_do_super() only from a function with the same op id.\n
86 * In addition, there is no way to jump over classes who implement the function. If A inherits from B, B from C and A, B and C implement a virtual function defined in C, the function calls order will be A, then B and finally C. It is impossible to pass over B. 82 * In addition, there is no way to jump over classes who implement the function. If A inherits from B, B from C and A, B and C implement a virtual function defined in C, the function calls order will be A, then B and finally C. It is impossible to pass over B.
87 * 83 *
88 * - eo_do returns if the operation succeeded or failed (function found, object deleted...), not the result of the called function. Pay attention to this detail when you call eo_do. The return value needs to be an additional parameter which will hold a return value. 84 * - eo_do() returns if the operation succeeded or failed (function found, object deleted...), not the result of the called function. Pay attention to this detail when you call eo_do(). The return value needs to be an additional parameter which will hold a return value.
89 * 85 *
90 * - Don't do this: 86 * - Don't do this:
91 * @code 87 * @code
@@ -95,12 +91,12 @@
95 * evas_obj_size_set(w+10, h+20)); 91 * evas_obj_size_set(w+10, h+20));
96 * @endcode 92 * @endcode
97 * w+10 and h+20 are evaluated before the call to size_get. 93 * w+10 and h+20 are evaluated before the call to size_get.
98 * Instead, separate it in two calls to eo_do. 94 * Instead, separate it in two calls to eo_do().
99 * 95 *
100 * - When creating an object with eo_add, the reference counter of this one is incremented. If it is called with a parent, two references are on the object. eo_del removes both of these references.\n 96 * - When creating an object with eo_add(), the reference counter of this one is incremented. If it is called with a parent, two references are on the object. eo_del() removes both of these references.\n
101 * When there is no more references on an object, this one is deleted and then can be freed. The deletion calls to the destructor (see eo_destructor). When done, Eo checks if the object can be freed. The free mechanism can be "disabled" through eo_manual_free_set. If this is the case, it is the responsibility of the developer to call eo_manual_free on the object in order to free it. This mechanism has been used for example in Evas on the Evas objects and in Ecore. 97 * When there is no more references on an object, this one is deleted and then can be freed. The deletion calls to the destructor (see eo_destructor()). When done, Eo checks if the object can be freed. The free mechanism can be "disabled" through eo_manual_free_set(). If this is the case, it is the responsibility of the developer to call eo_manual_free() on the object in order to free it. This mechanism has been used for example in @ref Evas on the Evas objects and in @ref Ecore.
102 * 98 *
103 * - When eo_do reaches a function of a class, it is the responsibility of the user to extract from the va_list ALL the parameters needed for this function, NO MORE, NO LESS. Otherwise, unknown behavior can occur. eo_do is called with a list of op id, params, op id, params... A bad extraction of parameters can bring to the parsing of a wrong op id and so in the best case, to an error, in the worst case, to another function not in relation with the actual use case. 99 * - When eo_do() reaches a function of a class, it is the responsibility of the user to extract from the va_list ALL the parameters needed for this function, NO MORE, NO LESS. Otherwise, unknown behavior can occur. eo_do() is called with a list of op id, params, op id, params... A bad extraction of parameters can bring to the parsing of a wrong op id and so in the best case, to an error, in the worst case, to another function not in relation with the actual use case.
104 * 100 *
105 * - Always pay attention to: 101 * - Always pay attention to:
106 * - the pairing between function id and the function itself. Using the same function for two ids occurs and is hard to debug. 102 * - the pairing between function id and the function itself. Using the same function for two ids occurs and is hard to debug.
@@ -111,8 +107,7 @@
111 * 107 *
112 * - Avoid exposing your class data to prevent ABI break. Supply access functions instead. 108 * - Avoid exposing your class data to prevent ABI break. Supply access functions instead.
113 * 109 *
114 * How to create a class - H side? 110 * @section How to create a class - H side?
115 * ------------------------------
116 * - If the object is new, establish the public APIs 111 * - If the object is new, establish the public APIs
117 * - #define \$(CLASS_NAME) \$(class_name)_class_get(): will be used to access data/inherit from this class... 112 * - #define \$(CLASS_NAME) \$(class_name)_class_get(): will be used to access data/inherit from this class...
118 * - const Eo_Class *\$(class_name)_class_get(void) EINA_CONST: declaration of the function that will create the class (not the instance), i.e virtual table... 113 * - const Eo_Class *\$(class_name)_class_get(void) EINA_CONST: declaration of the function that will create the class (not the instance), i.e virtual table...
@@ -172,8 +167,7 @@
172 * #define evas_obj_line_xy_get(x1, y1, x2, y2) EVAS_OBJ_LINE_ID(EVAS_OBJ_LINE_SUB_ID_XY_GET), EO_TYPECHECK(Evas_Coord *, x1), EO_TYPECHECK(Evas_Coord *, y1), EO_TYPECHECK(Evas_Coord *, x2), EO_TYPECHECK(Evas_Coord *, y2) 167 * #define evas_obj_line_xy_get(x1, y1, x2, y2) EVAS_OBJ_LINE_ID(EVAS_OBJ_LINE_SUB_ID_XY_GET), EO_TYPECHECK(Evas_Coord *, x1), EO_TYPECHECK(Evas_Coord *, y1), EO_TYPECHECK(Evas_Coord *, x2), EO_TYPECHECK(Evas_Coord *, y2)
173 @endcode 168 @endcode
174 * 169 *
175 * How to create a class - C side? 170 * @section How to create a class - C side?
176 * ------------------------------
177 * Below, the object line as example. 171 * Below, the object line as example.
178 * 172 *
179 * #include "Eo.h"\n 173 * #include "Eo.h"\n
@@ -198,8 +192,8 @@
198 * } 192 * }
199 * @endcode 193 * @endcode
200 * 194 *
201 * You can (not a must) implement a constructor. This constructor MUST call the parent constructor (eo_do_super). It is the same for the destructor.\n 195 * You can (not a must) implement a constructor. This constructor MUST call the parent constructor (eo_do_super()). It is the same for the destructor.\n
202 * See eo_constructor and eo_destructor.\n 196 * See eo_constructor() and eo_destructor().\n
203 * If you don't have anything to do in constructor (like malloc, variables init...) or in destructor (free), don't implement them. 197 * If you don't have anything to do in constructor (like malloc, variables init...) or in destructor (free), don't implement them.
204 * 198 *
205 * At the end of the file, you need to describe the class.\n 199 * At the end of the file, you need to describe the class.\n
diff --git a/doc/head.html b/doc/head.html
index 9227da5ee4..e099291609 100644
--- a/doc/head.html
+++ b/doc/head.html
@@ -50,10 +50,14 @@
50 <div class="menu-container"> 50 <div class="menu-container">
51 <div class="submenu"> 51 <div class="submenu">
52 <ul class="current"> 52 <ul class="current">
53 <li><a href="authors.html">Authors</a></li>
54 <li><a href="examples.html">Examples</a></li>
53 <li><a href="files.html">Files</a></li> 55 <li><a href="files.html">Files</a></li>
56 <li><a href="pages.html">Pages</a></li>
57 <li>|</li>
58 <li><a href="classes.html">Types</a></li>
54 <li><a href="modules.html">Modules</a></li> 59 <li><a href="modules.html">Modules</a></li>
55 <li><a href="pages.html">Related Pages</a></li> 60 <li><a href="index.html">Main Page</a></li>
56 <li class="current"><a href="index.html">Main Page</a></li>
57 </ul> 61 </ul>
58 </div> 62 </div>
59 </div> 63 </div>
diff --git a/doc/main.dox b/doc/main.dox
index 950f805635..0b10bae8ea 100644
--- a/doc/main.dox
+++ b/doc/main.dox
@@ -7,15 +7,16 @@
7 * find documentation auto-generated daily from SVN source for these 7 * find documentation auto-generated daily from SVN source for these
8 * libraries: 8 * libraries:
9 * 9 *
10 * @li @ref eina_main 10 * @li @ref eina_main data types and low-level/basic abstractions.
11 * @li @ref evas_main 11 * @li @ref eo_main generic object system.
12 * @li @ref eet_main 12 * @li @ref evas_main drawing canvas.
13 * @li @ref embryo_main 13 * @li @ref eet_main binary data parser and serializer.
14 * @li @ref ecore_main 14 * @li @ref embryo_main embedded script language.
15 * @li @ref escape_main 15 * @li @ref ecore_main operating system abstraction and integration.
16 * @li @ref evil_main 16 * @li @ref escape_main playstation3 portability layer.
17 * @li @ref eio_main 17 * @li @ref evil_main microsoft windows portability layer.
18 * @li @ref edbus_main 18 * @li @ref eio_main asynchronous input/output
19 * @li @ref edbus_main d-bus integration.
19 * 20 *
20 */ 21 */
21 22
@@ -118,55 +119,61 @@
118 */ 119 */
119 120
120/** 121/**
122 * @defgroup Eo
123 *
124 * @brief Generic object system.
125 */
126
127/**
121 * @defgroup Evas 128 * @defgroup Evas
122 * 129 *
123 * @brief Evas 130 * @brief Drawing canvas.
124 */ 131 */
125 132
126/** 133/**
127 * @defgroup Eet 134 * @defgroup Eet
128 * 135 *
129 * @brief Eet 136 * @brief Binary data parser and serializer.
130 */ 137 */
131 138
132/** 139/**
133 * @defgroup Eina 140 * @defgroup Eina
134 * 141 *
135 * @brief Eina 142 * @brief Data types and low-level/basic abstractions.
136 */ 143 */
137 144
138/** 145/**
139 * @defgroup Embryo 146 * @defgroup Embryo
140 * 147 *
141 * @brief Embryo 148 * @brief Embedded script language.
142 */ 149 */
143 150
144/** 151/**
145 * @defgroup Evil 152 * @defgroup Evil
146 * 153 *
147 * @brief Evil 154 * @brief Microsoft Windows portability layer.
148 */ 155 */
149 156
150/** 157/**
151 * @defgroup Escape 158 * @defgroup Escape
152 * 159 *
153 * @brief Escape 160 * @brief PlayStation3 portability layer.
154 */ 161 */
155 162
156/** 163/**
157 * @defgroup Ecore 164 * @defgroup Ecore
158 * 165 *
159 * @brief Ecore 166 * @brief Operating System Abstraction and Integration.
160 */ 167 */
161 168
162/** 169/**
163 * @defgroup Eio 170 * @defgroup Eio
164 * 171 *
165 * @brief Eio 172 * @brief Asynchronous input/output and file manipulation.
166 */ 173 */
167 174
168/** 175/**
169 * @defgroup EDBus 176 * @defgroup EDBus
170 * 177 *
171 * @brief EDBus 178 * @brief D-Bus integration with EFL (Ecore).
172 */ 179 */
diff --git a/doc/pkgconfig.dox b/doc/pkgconfig.dox
new file mode 100644
index 0000000000..fbd3baeb69
--- /dev/null
+++ b/doc/pkgconfig.dox
@@ -0,0 +1,61 @@
1/**
2 @page pkgconfig
3
4 @section pkgconfig_intro Introduction
5
6 pkg-config (http://pkgconfig.freedesktop.org/wiki/) is a helper
7 tool used when compiling applications and libraries. It helps you
8 insert the correct compiler options on the command line based on
9 installed software, instead of hard-coded values.
10
11 @section pkgconfig_usage Usage
12
13 Using pkg-config it is as simple as:
14 @verbatim
15 # compile:
16 gcc -c -o main.o main.c `pkg-config --cflags PKGNAME`
17
18 # link:
19 gcc -o my_application main.o `pkg-config --libs PKGNAME`
20
21 # compile + link in a single step:
22 gcc -o my_application main.c `pkg-config --cflags --libs PKGNAME`
23 @endverbatim
24
25 Where @b PKGNAME is your module, such as eina, eet, evas, ecore,
26 ecore-x, eio and so on.
27
28 One can do some queries such as the module version, other variables:
29 @verbatim
30 pkg-config --modversion PKGNAME
31 pkg-config --variable=prefix PKGNAME
32 @endverbatim
33
34 @section pkgconfig_troubleshooting Troubleshooting
35
36 Make sure @c pkg-config command is in your @c $PATH, otherwise
37 you'll end with:
38
39 @verbatim
40 pkg-config: command not found
41 @endverbatim
42
43 The @b PKGNAME it searched using pkg-config's build location,
44 usually @c /usr/lib/pkgconfig. This can be overwritten with @c
45 $PKG_CONFIG_LIBDIR (usually for cross compile) or extended with @c
46 $PKG_CONFIG_PATH. If you installed EFL to @c /opt/efl, then use:
47
48 @verbatim
49 export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/opt/efl/lib/pkgconfig"
50 pkg-config --cflags --libs PKGNAME
51 @endverbatim
52
53 Otherwise you'll end with:
54 @verbatim
55 Package PKGNAME was not found in the pkg-config search path.
56 Perhaps you should add the directory containing `PKGNAME.pc'
57 to the PKG_CONFIG_PATH environment variable
58 No package 'PKGNAME' found
59 @endverbatim
60
61*/