summaryrefslogtreecommitdiff
path: root/src/lib/eina
diff options
context:
space:
mode:
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>2017-01-19 17:54:12 -0200
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-01-23 18:23:40 +0100
commitdee24c3821ffbc14721dbfb041ac6cc010b9269b (patch)
tree5c5f76c74b665d4a3c7905d6f7519e480ebeaa0f /src/lib/eina
parent88283204c16c745e3aec11bff2409bd5cc903121 (diff)
CMake: rework to use some helper macros.
This tries to defines some macros to create a cleaner build system.
Diffstat (limited to 'src/lib/eina')
-rw-r--r--src/lib/eina/CMakeLists.txt360
1 files changed, 150 insertions, 210 deletions
diff --git a/src/lib/eina/CMakeLists.txt b/src/lib/eina/CMakeLists.txt
index 56b6f6733d..8e08a49f27 100644
--- a/src/lib/eina/CMakeLists.txt
+++ b/src/lib/eina/CMakeLists.txt
@@ -1,214 +1,154 @@
1INCLUDE (CheckSymbolExists)
2INCLUDE (CheckIncludeFile)
3INCLUDE (CheckTypeSize)
4INCLUDE (FindPkgConfig)
5find_package(Threads REQUIRED)
6 1
7#Configure depending on the profile 2set(eina_INCLUDE_DIRECTORIES ${VG_INCLUDE_DIRS})
8set(EINA_SAFETY_CHECKS 1)
9if ("${BUILD_PROFILE}" STREQUAL "dev")
10 set(EINA_STRINGSHARE_USAGE ON)
11 set(CHECK_VALGRIND ON)
12elseif ("${BUILD_PROFILE}" STREQUAL "debug")
13 set(EINA_DEBUG_MALLOC ON)
14 set(EINA_COW_MAGIC_ON ON)
15 set(EINA_DEFAULT_MEMPOOL ON)
16 set(EINA_DEBUG_MALLOC ON)
17 set(EINA_DEBUG_THREADS ON)
18 set(VALGRIND ON)
19elseif ("${BUILD_PROFILE}" STREQUAL "release")
20 set(EINA_LOG_LEVEL_MAXIMUM 3)
21endif ("${BUILD_PROFILE}" STREQUAL "dev")
22 3
23#options of that submodule 4set(eina_LIBRARIES
24option(EINA_MAGIC_DEBUG "magic debug of eina structure" ON) 5 ${VG_LIBRARIES}
25option(EINA_DEBUG_THREADS "debugging of eina threads" ${EINA_DEBUG_THREADS}) 6 pthread)
26option(VALGRIND "valgrind support" ${VALGRIND})
27 7
28#check for symbols in pthread 8set(eina_HEADERS
29#TODO Make the definitions depending on the platform 9 Eina.h
30set(CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}") 10 eina_accessor.h
31set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE=1") 11 eina_alloca.h
32CHECK_SYMBOL_EXISTS(pthread_barrier_init pthread.h EINA_HAVE_PTHREAD_BARRIER) 12 eina_array.h
33CHECK_SYMBOL_EXISTS(pthread_attr_setaffinity_np pthread.h EINA_HAVE_PTHREAD_AFFINITY) 13 eina_benchmark.h
34CHECK_SYMBOL_EXISTS(pthread_setname_np pthread.h EINA_HAVE_PTHREAD_SETNAME) 14 eina_bezier.h
35CHECK_SYMBOL_EXISTS(pthread_spin_init pthread.h EINA_HAVE_POSIX_SPINLOCK) 15 eina_binbuf.h
16 eina_binshare.h
17 eina_clist.h
18 eina_config.h
19 eina_convert.h
20 eina_counter.h
21 eina_cow.h
22 eina_cpu.h
23 eina_crc.h
24 eina_debug.h
25 eina_error.h
26 eina_evlog.h
27 eina_file.h
28 eina_file_common.h
29 eina_fp.h
30 eina_freeq.h
31 eina_hamster.h
32 eina_hash.h
33 eina_inarray.h
34 eina_inline_private.h
35 eina_inlist.h
36 eina_iterator.h
37 eina_lalloc.h
38 eina_list.h
39 eina_lock.h
40 eina_log.h
41 eina_magic.h
42 eina_main.h
43 eina_matrix.h
44 eina_matrixsparse.h
45 eina_mempool.h
46 eina_mmap.h
47 eina_module.h
48 eina_prefix.h
49 eina_private.h
50 eina_quad.h
51 eina_quadtree.h
52 eina_quaternion.h
53 eina_rbtree.h
54 eina_rectangle.h
55 eina_refcount.h
56 eina_safepointer.h
57 eina_safety_checks.h
58 eina_sched.h
59 eina_share_common.h
60 eina_simple_xml_parser.h
61 eina_slice.h
62 eina_slstr.h
63 eina_str.h
64 eina_strbuf.h
65 eina_strbuf_common.h
66 eina_strbuf_template_c.x
67 eina_stringshare.h
68 eina_thread.h
69 eina_thread_queue.h
70 eina_tiler.h
71 eina_tmpstr.h
72 eina_trash.h
73 eina_types.h
74 eina_unicode.h
75 eina_ustrbuf.h
76 eina_ustringshare.h
77 eina_util.h
78 eina_value.h
79 eina_value_util.h
80 eina_vector.h
81 eina_xattr.h
82 )
36 83
37#check for eina header files that are required 84LIST(APPEND eina_SOURCES
38CHECK_INCLUDE_FILE(alloca.h EINA_HAVE_ALLOCA_H) 85 eina_abi.c
39CHECK_INCLUDE_FILE(byteswap.h EINA_HAVE_BYTESWAP_H) 86 eina_accessor.c
40CHECK_INCLUDE_FILE(fnmatch.h EINA_HAVE_FNMATCH_H) 87 eina_array.c
41#only enable log when fnmatch is there 88 eina_benchmark.c
42if (EINA_HAVE_FNMATCH_H) 89 eina_bezier.c
43 set(EINA_ENABLE_LOG 1) 90 eina_binbuf.c
44endif (EINA_HAVE_FNMATCH_H) 91 eina_binshare.c
45CHECK_INCLUDE_FILE(dirent.h EINA_HAVE_DIRENT_H) 92 eina_convert.c
46 93 eina_counter.c
47CHECK_TYPE_SIZE("wchar_t" EINA_SIZEOF_WCHAR_T) 94 eina_cow.c
48CHECK_TYPE_SIZE("uintptr_t" EINA_SIZEOF_UINTPTR_T) 95 eina_cpu.c
49CHECK_TYPE_SIZE("wchar_t" EINA_SIZEOF_WCHAR_T) 96 eina_crc.c
50 97 eina_debug.c
51#check for swap16/32/64 98 eina_debug_bt.c
52CHECK_SYMBOL_EXISTS(bswap_16 byteswap.h EINA_HAVE_BSWAP16) 99 eina_debug_bt_file.c
53CHECK_SYMBOL_EXISTS(bswap_32 byteswap.h EINA_HAVE_BSWAP32) 100 eina_debug_chunk.c
54CHECK_SYMBOL_EXISTS(bswap_64 byteswap.h EINA_HAVE_BSWAP64) 101 eina_debug_monitor.c
55 102 eina_debug_proto.c
56#TODO really check if we wanted to have valgrind support or not 103 eina_debug_thread.c
57pkg_check_modules(VG REQUIRED valgrind) 104 eina_error.c
58 105 eina_evlog.c
59#Check if there is the alloca header 106 eina_file.c
60 107 eina_file_common.c
61configure_file(eina_config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/eina_config.h) 108 eina_fp.c
62 109 eina_freeq.c
63include_directories( 110 eina_hamster.c
64 ${PROJECT_SOURCE_DIR}/ 111 eina_hash.c
65 ${VG_INCLUDE_DIRS} 112 eina_inarray.c
66 ${PROJECT_SOURCE_DIR}/src/lib/efl 113 eina_inlist.c
67 ${PROJECT_SOURCE_DIR}/src/lib/eina 114 eina_iterator.c
68) 115 eina_lalloc.c
69 116 eina_list.c
70LIST(APPEND eina_source 117 eina_lock.c
71 Eina.h 118 eina_log.c
72 eina_abi.c 119 eina_magic.c
73 eina_accessor.c 120 eina_main.c
74 eina_accessor.h 121 eina_matrix.c
75 eina_alloca.h 122 eina_matrixsparse.c
76 eina_array.c 123 eina_mempool.c
77 eina_array.h 124 eina_mmap.c
78 eina_benchmark.c 125 eina_module.c
79 eina_benchmark.h 126 eina_prefix.c
80 eina_bezier.c 127 eina_quad.c
81 eina_bezier.h 128 eina_quadtree.c
82 eina_binbuf.c 129 eina_quaternion.c
83 eina_binbuf.h 130 eina_rbtree.c
84 eina_binshare.c 131 eina_rectangle.c
85 eina_binshare.h 132 eina_safepointer.c
86 eina_clist.h 133 eina_safety_checks.c
87 eina_config.h 134 eina_sched.c
88 eina_convert.c 135 eina_share_common.c
89 eina_convert.h 136 eina_simple_xml_parser.c
90 eina_counter.c 137 eina_slstr.c
91 eina_counter.h 138 eina_str.c
92 eina_cow.c 139 eina_strbuf.c
93 eina_cow.h 140 eina_strbuf_common.c
94 eina_cpu.c 141 eina_strbuf_template_c.x
95 eina_cpu.h 142 eina_stringshare.c
96 eina_crc.c 143 eina_thread.c
97 eina_crc.h 144 eina_thread_queue.c
98 eina_debug.c 145 eina_tiler.c
99 eina_debug.h 146 eina_tmpstr.c
100 eina_debug_bt.c 147 eina_unicode.c
101 eina_debug_bt_file.c 148 eina_ustrbuf.c
102 eina_debug_chunk.c 149 eina_ustringshare.c
103 eina_debug_monitor.c 150 eina_util.c
104 eina_debug_proto.c 151 eina_value.c
105 eina_debug_thread.c 152 eina_value_util.c
106 eina_error.c 153 eina_xattr.c
107 eina_error.h 154 )
108 eina_evlog.c
109 eina_evlog.h
110 eina_file.c
111 eina_file.h
112 eina_file_common.c
113 eina_file_common.h
114 eina_fp.c
115 eina_fp.h
116 eina_freeq.c
117 eina_freeq.h
118 eina_hamster.c
119 eina_hamster.h
120 eina_hash.c
121 eina_hash.h
122 eina_inarray.c
123 eina_inarray.h
124 eina_inline_private.h
125 eina_inlist.c
126 eina_inlist.h
127 eina_iterator.c
128 eina_iterator.h
129 eina_lalloc.c
130 eina_lalloc.h
131 eina_list.c
132 eina_list.h
133 eina_lock.c
134 eina_lock.h
135 eina_log.c
136 eina_log.h
137 eina_magic.c
138 eina_magic.h
139 eina_main.c
140 eina_main.h
141 eina_matrix.c
142 eina_matrix.h
143 eina_matrixsparse.c
144 eina_matrixsparse.h
145 eina_mempool.c
146 eina_mempool.h
147 eina_mmap.c
148 eina_mmap.h
149 eina_module.c
150 eina_module.h
151 eina_prefix.c
152 eina_prefix.h
153 eina_private.h
154 eina_quad.c
155 eina_quad.h
156 eina_quadtree.c
157 eina_quadtree.h
158 eina_quaternion.c
159 eina_quaternion.h
160 eina_rbtree.c
161 eina_rbtree.h
162 eina_rectangle.c
163 eina_rectangle.h
164 eina_refcount.h
165 eina_safepointer.c
166 eina_safepointer.h
167 eina_safety_checks.c
168 eina_safety_checks.h
169 eina_sched.c
170 eina_sched.h
171 eina_share_common.c
172 eina_share_common.h
173 eina_simple_xml_parser.c
174 eina_simple_xml_parser.h
175 eina_slice.h
176 eina_slstr.c
177 eina_slstr.h
178 eina_str.c
179 eina_str.h
180 eina_strbuf.c
181 eina_strbuf.h
182 eina_strbuf_common.c
183 eina_strbuf_common.h
184 eina_strbuf_template_c.x
185 eina_stringshare.c
186 eina_stringshare.h
187 eina_thread.c
188 eina_thread.h
189 eina_thread_queue.c
190 eina_thread_queue.h
191 eina_tiler.c
192 eina_tiler.h
193 eina_tmpstr.c
194 eina_tmpstr.h
195 eina_trash.h
196 eina_types.h
197 eina_unicode.c
198 eina_unicode.h
199 eina_ustrbuf.c
200 eina_ustrbuf.h
201 eina_ustringshare.c
202 eina_ustringshare.h
203 eina_util.c
204 eina_util.h
205 eina_value.c
206 eina_value.h
207 eina_value_util.c
208 eina_value_util.h
209 eina_vector.h
210 eina_xattr.c
211 eina_xattr.h
212)
213
214add_library(eina SHARED ${eina_source}) \ No newline at end of file