cxx: Added examples and tutorial for C++ binding
[platform/upstream/elementary.git] / src / examples / Makefile.am
1 MAINTAINERCLEANFILES = Makefile.in
2
3 SUBDIRS = sphere_hunter
4 SUBDIRS += performance
5
6 include ../../Makefile_Elm_Helpers.am
7
8 .PHONY: screenshots
9
10 examplesdir = $(pkgdatadir)/examples
11 filesdir = $(pkgdatadir)/examples
12 files_DATA =
13
14 AM_CPPFLAGS = \
15 -Wno-unused-parameter \
16 -I. \
17 -I$(top_srcdir)/src/lib \
18 -I$(top_builddir)/src/lib \
19 -DPACKAGE_DATA_DIR="\"$(pkgdatadir)\"" \
20 -DPACKAGE_BIN_DIR=\"$(bindir)\" \
21 -DPACKAGE_LIB_DIR=\"$(libdir)\" \
22 @ELEMENTARY_CFLAGS@
23
24 AM_CXXFLAGS = \
25 @ELEMENTARY_CFLAGS@ \
26 @ELEMENTARY_CXX_CFLAGS@
27
28 LDADD = \
29 @ELEMENTARY_LIBS@ \
30 $(top_builddir)/src/lib/libelementary.la
31
32 ELEMENTARY_CODEGEN = $(top_builddir)/src/bin/@ELEMENTARY_CODEGEN_PRG@
33 ELEMENTARY_CODEGEN_FLAGS = --prefix=codegen_example
34
35 SRCS = \
36 actionslider_example_01.c \
37 bg_example_01.c \
38 bg_example_02.c \
39 bg_example_03.c \
40 box_example_02.c \
41 bubble_example_01.c \
42 button_example_00.c \
43 button_example_01.c \
44 calendar_example_01.c \
45 calendar_example_02.c \
46 calendar_example_03.c \
47 calendar_example_04.c \
48 calendar_example_05.c \
49 calendar_example_06.c \
50 check_example_01.c \
51 clock_example.c \
52 codegen_example.edc \
53 colorselector_example_01.c \
54 conformant_example_01.c \
55 conformant_example_02.c \
56 ctxpopup_example_01.c \
57 datetime_example.c \
58 dayselector_example.c \
59 diskselector_example_01.c \
60 diskselector_example_02.c \
61 efl_thread_1.c \
62 efl_thread_2.c \
63 efl_thread_3.c \
64 efl_thread_4.c \
65 efl_thread_5.c \
66 efl_thread_6.c \
67 efl_thread_win32_1.c \
68 efl_thread_win32_2.c \
69 efl_thread_win32_3.c \
70 efl_thread_win32_4.c \
71 entry_example.c \
72 fileselector_button_example.c \
73 fileselector_entry_example.c \
74 fileselector_example.c \
75 fileviewlist.c \
76 filemvc.c \
77 flip_example_01.c \
78 flipselector_example.c \
79 frame_example_01.c \
80 general_funcs_example.c \
81 gengrid_example.c \
82 genlist_example_01.c \
83 genlist_example_02.c \
84 genlist_example_03.c \
85 genlist_example_04.c \
86 genlist_example_05.c \
87 glview_example_01.c \
88 hover_example_01.c \
89 hoversel_example_01.c \
90 icon_example_01.c \
91 image_example_01.c \
92 index_example_01.c \
93 index_example_02.c \
94 inwin_example.c \
95 label_example_01.c \
96 layout_example.edc \
97 layout_example_01.c \
98 layout_example_02.c \
99 layout_example_03.c \
100 list_example_01.c \
101 list_example_02.c \
102 list_example_03.c \
103 location_example_01.c \
104 map_example_01.c \
105 map_example_02.c \
106 map_example_03.c \
107 mapbuf_example.c \
108 menu_example_01.c \
109 naviframe_example.c \
110 notify_example_01.c \
111 panes_example.c \
112 panel_example_01.c \
113 photocam_example_01.c \
114 prefs_example_01.c \
115 prefs_example_02.c \
116 prefs_example_03.c \
117 popup_example_01.c \
118 popup_example_02.c \
119 popup_example_03.c \
120 progressbar_example.c \
121 radio_example_01.c \
122 radio_example_02.c \
123 segment_control_example.c \
124 separator_example_01.c \
125 slider_example.c \
126 slideshow_example.c \
127 spinner_example.c \
128 scroller_example_01.c \
129 table_example_01.c \
130 table_example_02.c \
131 theme_example.edc \
132 theme_example_01.c \
133 theme_example_02.c \
134 thumb_example_01.c \
135 toolbar_example_01.c \
136 toolbar_example_02.c \
137 toolbar_example_03.c \
138 transit_example_01.c \
139 transit_example_02.c \
140 transit_example_03.c \
141 transit_example_04.c \
142 web_example_01.c \
143 web_example_02.c \
144 win_example.c \
145 evas3d_scene_on_button_example.c \
146 evas3d_object_on_button_example.c \
147 evas3d_map_example.edc \
148 evas3d_map_example.c \
149 track_example_01.c
150
151 if HAVE_CXX11
152 SRCS += \
153 thumb_cxx_example_01.cc \
154 table_cxx_example_02.cc \
155 table_cxx_example_01.cc \
156 spinner_cxx_example.cc \
157 slider_cxx_example.cc \
158 separator_cxx_example_01.cc \
159 radio_cxx_example_01.cc \
160 popup_cxx_example_01.cc \
161 menu_cxx_example_01.cc \
162 location_cxx_example_01.cc \
163 icon_cxx_example_01.cc \
164 hoversel_cxx_example_01.cc \
165 glview_cxx_example_01.cc \
166 datetime_cxx_example.cc \
167 clock_cxx_example.cc \
168 calendar_cxx_example_05.cc \
169 calendar_cxx_example_04.cc \
170 calendar_cxx_example_03.cc \
171 calendar_cxx_example_02.cc \
172 calendar_cxx_example_01.cc \
173 button_cxx_example_01.cc \
174 button_cxx_example_00.cc \
175 bubble_cxx_example_01.cc \
176 box_cxx_example_02.cc \
177 bg_cxx_example_02.cc \
178 bg_cxx_example_01.cc
179 endif
180
181 .edc.edj:
182         $(AM_V_EDJ)$(EDJE_CC) $(EDJE_CC_FLAGS) $< $@
183
184 .epc.epb:
185         $(AM_V_EPB)$(ELM_PREFS_CC) $< $@
186
187 if EFL_INSTALL_EXAMPLES
188 files_DATA += $(SRCS) \
189         dict.txt
190 endif
191
192 if EFL_BUILD_EXAMPLES
193 files_DATA += \
194         prefs_example_01.epb \
195         prefs_example_02.epb \
196         prefs_example_03.epb \
197         prefs_example_03.edj \
198         theme_example.edj \
199         layout_example.edj\
200         codegen_example.edj \
201         evas3d_map_example.edj
202
203 clean-local:
204         rm -f *.edj *.epb *.cfg *.cfg.bkp
205
206 codegen_example_generated.c codegen_example_generated.h: codegen_example.edj
207         $(ELEMENTARY_CODEGEN) $(ELEMENTARY_CODEGEN_FLAGS) codegen_example.edj \
208         elm/example/mylayout/default codegen_example_generated.c codegen_example_generated.h
209
210 BUILT_SOURCES = codegen_example_generated.c codegen_example_generated.h
211
212 codegen_example_SOURCES = \
213         codegen_example.c
214 nodist_codegen_example_SOURCES = \
215 codegen_example_generated.c \
216 codegen_example_generated.h
217
218 examples_PROGRAMS = \
219 actionslider_example_01 \
220 bg_example_01 \
221 bg_example_02 \
222 bg_example_03 \
223 box_example_02 \
224 bubble_example_01 \
225 button_example_00 \
226 button_example_01 \
227 calendar_example_01 \
228 calendar_example_02 \
229 calendar_example_03 \
230 calendar_example_04 \
231 calendar_example_05 \
232 calendar_example_06 \
233 check_example_01 \
234 clock_example \
235 codegen_example \
236 colorselector_example_01 \
237 conformant_example_01 \
238 conformant_example_02 \
239 ctxpopup_example_01 \
240 datetime_example \
241 dayselector_example \
242 diskselector_example_01 \
243 diskselector_example_02 \
244 efl_thread_1 \
245 efl_thread_2 \
246 efl_thread_3 \
247 efl_thread_4 \
248 efl_thread_5 \
249 efl_thread_6 \
250 entry_example \
251 fileselector_button_example \
252 fileselector_entry_example \
253 fileselector_example \
254 fileviewlist \
255 filemvc \
256 flip_example_01 \
257 flipselector_example \
258 frame_example_01 \
259 general_funcs_example \
260 gengrid_example \
261 genlist_example_01 \
262 genlist_example_02 \
263 genlist_example_03 \
264 genlist_example_04 \
265 genlist_example_05 \
266 glview_example_01 \
267 hover_example_01 \
268 hoversel_example_01 \
269 icon_example_01 \
270 image_example_01 \
271 index_example_01 \
272 index_example_02 \
273 inwin_example \
274 label_example_01 \
275 layout_example_01 \
276 layout_example_02 \
277 layout_example_03 \
278 list_example_01 \
279 list_example_02 \
280 list_example_03 \
281 location_example_01 \
282 map_example_01 \
283 map_example_02 \
284 map_example_03 \
285 mapbuf_example \
286 menu_example_01 \
287 naviframe_example \
288 notify_example_01 \
289 panes_example \
290 panel_example_01 \
291 photocam_example_01 \
292 prefs_example_01 \
293 prefs_example_02 \
294 prefs_example_03 \
295 popup_example_01 \
296 popup_example_02 \
297 popup_example_03 \
298 progressbar_example \
299 radio_example_01 \
300 radio_example_02 \
301 segment_control_example \
302 separator_example_01 \
303 slider_example \
304 slideshow_example \
305 spinner_example \
306 scroller_example_01 \
307 table_example_01 \
308 table_example_02 \
309 theme_example_01 \
310 theme_example_02 \
311 thumb_example_01 \
312 toolbar_example_01 \
313 toolbar_example_02 \
314 toolbar_example_03 \
315 transit_example_01 \
316 transit_example_02 \
317 transit_example_03 \
318 transit_example_04 \
319 web_example_01 \
320 web_example_02 \
321 win_example \
322 evas3d_scene_on_button_example \
323 evas3d_object_on_button_example \
324 evas3d_map_example \
325 track_example_01
326
327 if HAVE_CXX11
328 examples_PROGRAMS += \
329 thumb_cxx_example_01 \
330 table_cxx_example_02 \
331 table_cxx_example_01 \
332 spinner_cxx_example \
333 slider_cxx_example \
334 separator_cxx_example_01 \
335 radio_cxx_example_01 \
336 popup_cxx_example_01 \
337 menu_cxx_example_01 \
338 location_cxx_example_01 \
339 icon_cxx_example_01 \
340 hoversel_cxx_example_01 \
341 glview_cxx_example_01 \
342 datetime_cxx_example \
343 clock_cxx_example \
344 calendar_cxx_example_05 \
345 calendar_cxx_example_04 \
346 calendar_cxx_example_03 \
347 calendar_cxx_example_02 \
348 calendar_cxx_example_01 \
349 button_cxx_example_01 \
350 button_cxx_example_00 \
351 bubble_cxx_example_01 \
352 box_cxx_example_02 \
353 bg_cxx_example_02 \
354 bg_cxx_example_01
355 endif
356
357 if ELEMENTARY_WINDOWS_BUILD
358 efl_thread_1_SOURCES = efl_thread_win32_1.c
359 efl_thread_2_SOURCES = efl_thread_win32_2.c
360 efl_thread_3_SOURCES = efl_thread_win32_3.c
361 efl_thread_4_SOURCES = efl_thread_win32_4.c
362 else
363 efl_thread_1_SOURCES = efl_thread_1.c
364 efl_thread_2_SOURCES = efl_thread_2.c
365 efl_thread_3_SOURCES = efl_thread_3.c
366 efl_thread_4_SOURCES = efl_thread_4.c
367 endif
368
369 if HAVE_CXX11
370 thumb_cxx_example_01_SOURCES = thumb_cxx_example_01.cc
371 table_cxx_example_02_SOURCES = table_cxx_example_02.cc
372 table_cxx_example_01_SOURCES = table_cxx_example_01.cc
373 spinner_cxx_example_SOURCES = spinner_cxx_example.cc
374 slider_cxx_example_SOURCES = slider_cxx_example.cc
375 separator_cxx_example_01_SOURCES = separator_cxx_example_01.cc
376 radio_cxx_example_01_SOURCES = radio_cxx_example_01.cc
377 popup_cxx_example_01_SOURCES = popup_cxx_example_01.cc
378 menu_cxx_example_01_SOURCES = menu_cxx_example_01.cc
379 location_cxx_example_01_SOURCES = location_cxx_example_01.cc
380 icon_cxx_example_01_SOURCES = icon_cxx_example_01.cc
381 hoversel_cxx_example_01_SOURCES = hoversel_cxx_example_01.cc
382 glview_cxx_example_01_SOURCES = glview_cxx_example_01.cc
383 datetime_cxx_example_SOURCES = datetime_cxx_example.cc
384 clock_cxx_example_SOURCES = clock_cxx_example.cc
385 calendar_cxx_example_05_SOURCES = calendar_cxx_example_05.cc
386 calendar_cxx_example_04_SOURCES = calendar_cxx_example_04.cc
387 calendar_cxx_example_03_SOURCES = calendar_cxx_example_03.cc
388 calendar_cxx_example_02_SOURCES = calendar_cxx_example_02.cc
389 calendar_cxx_example_01_SOURCES = calendar_cxx_example_01.cc
390 button_cxx_example_01_SOURCES = button_cxx_example_01.cc
391 button_cxx_example_00_SOURCES = button_cxx_example_00.cc
392 bubble_cxx_example_01_SOURCES = bubble_cxx_example_01.cc
393 box_cxx_example_02_SOURCES = box_cxx_example_02.cc
394 bg_cxx_example_02_SOURCES = bg_cxx_example_02.cc
395 bg_cxx_example_01_SOURCES = bg_cxx_example_01.cc
396 endif
397
398 # This variable will hold the list of screenshots that will be made
399 # by "make screenshots". Each item in the list is of the form:
400 # <example executable>:<screenshot filename>:<delay in seconds>
401 SCREENSHOTS = \
402 actionslider_example_01:actionslider_01.png:0.0 \
403 bg_example_02:bg_01.png:0.0 \
404 box_example_02:box_example_02.png:1.3 \
405 bubble_example_01:bubble_example_01.png:0.0 \
406 button_example_00:button_00.png:0.0 \
407 button_example_01:button_01.png:0.0 \
408 check_example_01:check_example_01.png:0.0 \
409 colorselector_example_01:colorselector_example_01.png:0.0 \
410 animator_example_01:animator_example_01.png:0.2 \
411 animator_example_01:animator_example_02.png:0.5 \
412 animator_example_01:animator_example_03.png:0.9 \
413 flip_example_01:flip_example_01.png:0.0 \
414 frame_example_01:frame_example_01.png:0.0 \
415 hover_example_01:hover_example_01.png:0.0 \
416 hoversel_example_01:hoversel_example_01.png:0.0 \
417 label_example_01:label_example_01.png:0.0 \
418 theme_example_01:theme_example_01.png:0.0 \
419 conformant_example_01:conformant_example_01.png:0.0 \
420 conformant_example_02:conformant_example_02.png:0.0 \
421 calendar_example_01:calendar_example_01.png:0.0 \
422 calendar_example_02:calendar_example_02.png:0.0 \
423 calendar_example_03:calendar_example_03.png:0.0 \
424 calendar_example_04:calendar_example_04.png:0.0 \
425 calendar_example_05:calendar_example_05.png:0.0 \
426 calendar_example_06:calendar_example_06.png:0.0 \
427 datetime_example:datetime_example.png:0.0 \
428 map_example_01:map_example_01.png:2 \
429 map_example_02:map_example_02.png:2.5 \
430 map_example_03:map_example_03.png:2 \
431 toolbar_example_01:toolbar_example_01.png:0.0 \
432 toolbar_example_02:toolbar_example_02.png:1 \
433 toolbar_example_03:toolbar_example_03.png:1 \
434 spinner_example:spinner_example.png:0.0 \
435 clock_example:clock_example.png:0.5 \
436 dayselector_example:dayselector_example.png:0.0 \
437 mapbuf_example:mapbuf_example.png:0.0 \
438 image_example_01:image_example_01.png:0.0 \
439 diskselector_example_01:diskselector_example_01.png:0.2 \
440 diskselector_example_02:diskselector_example_02.png:0.2 \
441 icon_example_01:icon_example_01.png:0.0 \
442 layout_example_01:layout_example_01.png:0.0 \
443 layout_example_02:layout_example_02.png:0.0 \
444 layout_example_03:layout_example_03.png:0.0 \
445 list_example_01:list_example_01.png:0.0 \
446 list_example_02:list_example_02.png:0.0 \
447 list_example_03:list_example_03.png:0.0 \
448 segment_control_example:segment_control_example.png:0.0 \
449 flipselector_example:flipselector_example.png:0.0 \
450 fileselector_example:fileselector_example.png:0.0 \
451 index_example_02:index_example_03.png:0.3 \
452 slider_example:slider_example.png:0.0 \
453 panes_example:panes_example.png:0.0 \
454 ctxpopup_example_01:ctxpopup_example_01.png:0.0 \
455 separator_example_01:separator_example_01.png:0.0 \
456 radio_example_01:radio_example_01.png:0.0 \
457 radio_example_02:radio_example_02.png:0.0 \
458 panel_example_01:panel_example_01.png:0.0 \
459 gengrid_example:gengrid_example.png:0.0 \
460 genlist_example_01:genlist_example_01.png:0.1 \
461 genlist_example_02:genlist_example_02.png:0.1 \
462 genlist_example_03:genlist_example_03.png:0.1 \
463 genlist_example_04:genlist_example_04.png:0.1 \
464 genlist_example_05:genlist_example_05.png:0.1 \
465 thumb_example_01:thumb_example_01.png:0.5 \
466 entry_example:entry_example.png:0.0 \
467 progressbar_example:progressbar_example.png:0.0 \
468 notify_example_01:notify_example_01.png:0.0 \
469 notify_example_01:notify_example_01_a.png:6.0 \
470 popup_example_01:popup_example_01.png:1.0 \
471 popup_example_01:popup_example_01_a.png:6.0 \
472 popup_example_02:popup_example_02.png:0.2 \
473 popup_example_03:popup_example_03.png:0.2 \
474 slideshow_example:slideshow_example.png:1.0 \
475 photocam_example_01:photocam_example_01.png:3 \
476 scroller_example_01:scroller_example_01.png:0.0 \
477 inwin_example:inwin_example.png:0.0 \
478 inwin_example:inwin_example_a.png:0.2 \
479 table_example_01:table_example_01.png:0.0 \
480 table_example_02:table_example_02.png:0.0 \
481 menu_example_01:menu_example_01.png:0.5
482
483 if HAVE_CXX11
484 SCREENSHOTS += \
485 bg_cxx_example_02:bg_cxx_example_02.png:0.0 \
486 box_cxx_example_02:box_cxx_example_02.png:1.3 \
487 bubble_cxx_example_01:bubble_cxx_example_01.png:0.0 \
488 button_cxx_example_00:button_cxx_example_00.png:0.0 \
489 button_cxx_example_01:button_cxx_example_01.png:0.0 \
490 calendar_cxx_example_01:calendar_cxx_example_01.png:0.0 \
491 calendar_cxx_example_02:calendar_cxx_example_02.png:0.0 \
492 calendar_cxx_example_03:calendar_cxx_example_03.png:0.0 \
493 calendar_cxx_example_04:calendar_cxx_example_04.png:0.0 \
494 calendar_cxx_example_05:calendar_cxx_example_05.png:0.0 \
495 clock_cxx_example:clock_cxx_example.png:0.5 \
496 datetime_cxx_example:datetime_cxx_example.png:0.0 \
497 hoversel_cxx_example_01:hoversel_cxx_example_01.png:0.0 \
498 icon_cxx_example_01:icon_cxx_example_01.png:0.0 \
499 menu_cxx_example_01:menu_cxx_example_01.png:0.5 \
500 popup_cxx_example_01:popup_cxx_example_01.png:1.0 \
501 popup_cxx_example_01:popup_cxx_example_01_a.png:6.0 \
502 radio_cxx_example_01:radio_cxx_example_01.png:0.0 \
503 separator_cxx_example_01:separator_cxx_example_01.png:0.0 \
504 slider_cxx_example:slider_cxx_example.png:0.0 \
505 spinner_cxx_example:spinner_cxx_example.png:0.0 \
506 table_cxx_example_01:table_cxx_example_01.png:0.0 \
507 table_cxx_example_02:table_cxx_example_02.png:0.0 \
508 thumb_cxx_example_01:thumb_cxx_example_01.png:0.5
509 endif
510
511 HTML_SS_DIR=$(top_builddir)/doc/html/screenshots
512 LATEX_SS_DIR=$(top_builddir)/doc/latex/screenshots
513 screenshots: all
514         @mkdir -p $(HTML_SS_DIR)
515         @mkdir -p $(LATEX_SS_DIR)
516         @for ss in $(SCREENSHOTS); do \
517                 SS_ENTRY=($${ss//:/ }) ; \
518                 EXAMPLE=$${SS_ENTRY[0]} ; \
519                 SS_FILE=$${SS_ENTRY[1]} ; \
520                 SS_DELAY=$${SS_ENTRY[2]} ; \
521                 ILLUME_KBD=0,0,240,123 ILLUME_IND=0,0,240,32 ILLUME_STK=0,288,240,32 ELM_ENGINE="shot:delay=$${SS_DELAY}:file=$(HTML_SS_DIR)/$${SS_FILE}" ./$${EXAMPLE} ; \
522                 convert $(HTML_SS_DIR)/$${SS_FILE} $(LATEX_SS_DIR)/$${SS_FILE/.png/.eps} ; \
523         done
524
525 else
526
527 screenshots:
528         @echo "Examples are not built. Run \"./configure --enable-build-examples\" first."
529
530 endif
531
532 EXTRA_DIST = dict.txt layout_example.edc theme_example.edc codegen_example.edc evas3d_map_example.edc