Explorar el Código

add building script for ftk module demo.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1205 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong hace 14 años
padre
commit
89ac28b9bb

+ 0 - 138
examples/module/ftk_demo/Makefile.am

@@ -1,138 +0,0 @@
-include $(abs_top_srcdir)/src/rules.mk
-
-lib_LTLIBRARIES=libftk_demos.la
-
-noinst_PROGRAMS=demo_label demo_button demo_image demo_image_button demo_dialog demo_multi_win \
-	demo_menu demo_entry demo_expand demo_zoom demo_progress_bar demo_check_button demo_wait_box \
-	demo_scroll_bar demo_sprite demo_xul demo_transparent demo_listview demo_hello \
-	demo_fullscreen demo_icon_view demo_text_view demo_msgbox demo_popup demo_alpha \
-	demo_combo_box demo_ime demo_statusbar demo_file_browser demo_tab
-
-LOCAL_CFLAGS=-I$(abs_top_srcdir)/apps/common
-libftk_demos_la_SOURCES=demo_button.c demo_alpha.c demo_label.c demo_image.c \
-	demo_image_button.c demo_dialog.c demo_multi_win.c demo_menu.c demo_entry.c \
-	demo_expand.c demo_zoom.c demo_progress_bar.c demo_check_button.c demo_wait_box.c \
-	demo_scroll_bar.c demo_sprite.c demo_xul.c demo_transparent.c demo_listview.c \
-	demo_fullscreen.c demo_icon_view.c demo_text_view.c demo_msgbox.c demo_popup.c \
-	demo_combo_box.c demo_ime.c demo_statusbar.c demo_file_browser.c ftk_app_demo.c \
-	demo_hello.c demo_tab.c
-
-libftk_demos_la_LDFLAGS=$(MYLDFLAGS)
-libftk_demos_la_CFLAGS=$(LOCAL_CFLAGS) -DFTK_AS_PLUGIN
-
-if ENABLE_CAIRO
-noinst_PROGRAMS+=demo_cairo
-demo_cairo_SOURCES=demo_cairo.c
-demo_cairo_LDFLAGS=$(MYLDFLAGS)
-
-libftk_demos_la_SOURCES += demo_cairo.c
-
-endif
-
-if ENABLE_FRIBIDI
-noinst_PROGRAMS+=demo_bidi
-demo_bidi_SOURCES=demo_bidi.c
-demo_bidi_LDFLAGS=$(MYLDFLAGS)
-
-libftk_demos_la_SOURCES += demo_bidi.c
-endif
-
-demo_tab_SOURCES=demo_tab.c
-demo_tab_LDFLAGS=$(MYLDFLAGS)
-
-demo_file_browser_SOURCES=demo_file_browser.c
-demo_file_browser_LDFLAGS=$(MYLDFLAGS)
-
-demo_statusbar_SOURCES=demo_statusbar.c
-demo_statusbar_LDFLAGS=$(MYLDFLAGS)
-
-demo_ime_SOURCES=demo_ime.c
-demo_ime_LDFLAGS=$(MYLDFLAGS)
-
-demo_combo_box_SOURCES=demo_combo_box.c
-demo_combo_box_LDFLAGS=$(MYLDFLAGS)
-
-demo_alpha_SOURCES=demo_alpha.c
-demo_alpha_LDFLAGS=$(MYLDFLAGS)
-
-demo_zoom_SOURCES=demo_zoom.c
-demo_zoom_LDFLAGS=$(MYLDFLAGS)
-
-demo_popup_SOURCES=demo_popup.c
-demo_popup_LDFLAGS=$(MYLDFLAGS)
-
-demo_msgbox_SOURCES=demo_msgbox.c
-demo_msgbox_LDFLAGS=$(MYLDFLAGS)
-
-demo_text_view_SOURCES=demo_text_view.c
-demo_text_view_LDFLAGS=$(MYLDFLAGS)
-
-demo_icon_view_SOURCES=demo_icon_view.c
-demo_icon_view_LDFLAGS=$(MYLDFLAGS)
-
-demo_fullscreen_SOURCES=demo_fullscreen.c
-demo_fullscreen_LDFLAGS=$(MYLDFLAGS)
-
-demo_hello_SOURCES=demo_hello.c
-demo_hello_LDFLAGS=$(MYLDFLAGS)
-
-demo_listview_SOURCES=demo_listview.c
-demo_listview_LDFLAGS=$(MYLDFLAGS)
-
-demo_transparent_SOURCES=demo_transparent.c
-demo_transparent_LDFLAGS=$(MYLDFLAGS)
-
-demo_xul_SOURCES=demo_xul.c
-demo_xul_LDFLAGS=$(MYLDFLAGS)
-
-demo_sprite_SOURCES=demo_sprite.c
-demo_sprite_LDFLAGS=$(MYLDFLAGS)
-
-demo_scroll_bar_SOURCES=demo_scroll_bar.c
-demo_scroll_bar_LDFLAGS=$(MYLDFLAGS)
-
-demo_wait_box_SOURCES=demo_wait_box.c
-demo_wait_box_LDFLAGS=$(MYLDFLAGS)
-
-demo_check_button_SOURCES=demo_check_button.c
-demo_check_button_LDFLAGS=$(MYLDFLAGS)
-
-demo_progress_bar_SOURCES=demo_progress_bar.c
-demo_progress_bar_LDFLAGS=$(MYLDFLAGS)
-
-demo_expand_SOURCES=demo_expand.c
-demo_expand_LDFLAGS=$(MYLDFLAGS)
-
-demo_label_SOURCES=demo_label.c
-demo_label_LDFLAGS=$(MYLDFLAGS)
-
-demo_button_SOURCES=demo_button.c
-demo_button_LDFLAGS=$(MYLDFLAGS)
-
-demo_image_SOURCES=demo_image.c
-demo_image_LDFLAGS=$(MYLDFLAGS)
-
-demo_image_button_SOURCES=demo_image_button.c
-demo_image_button_LDFLAGS=$(MYLDFLAGS)
-
-demo_dialog_SOURCES=demo_dialog.c
-demo_dialog_LDFLAGS=$(MYLDFLAGS)
-
-demo_multi_win_SOURCES=demo_multi_win.c
-demo_multi_win_LDFLAGS=$(MYLDFLAGS)
-
-demo_menu_SOURCES=demo_menu.c
-demo_menu_LDFLAGS=$(MYLDFLAGS)
-
-demo_entry_SOURCES=demo_entry.c
-demo_entry_LDFLAGS=$(MYLDFLAGS)
-
-desktopdir=$(datadir)/ftk/base/apps
-desktop_DATA=demos.desktop
-
-iconsdir=$(datadir)/ftk/demos/icons
-icons_DATA=demo.png
-
-EXTRA_DIST=demo.png test_util.c t1.xul  t2.xul  t3.xul  t4.xul  t5.xul  t6.xul  t7.xul demos.desktop \
-	ftk_app_demo.h 
-

+ 49 - 0
examples/module/ftk_demo/SConscript

@@ -0,0 +1,49 @@
+import os
+
+Import('env')
+Import('RTT_ROOT')
+Import('rtconfig')
+Import('TARGET')
+
+RTMLINKER = RTT_ROOT + '/tools/rtmlinker.exe '
+
+# group definitions
+CPATH = [RTT_ROOT + '/include',
+		RTT_ROOT + '/examples/module',
+		RTT_ROOT + '/components/external/ftk/ftk/apps/common',
+		RTT_ROOT + '/components/external/ftk/ftk/src/os/rt-thread',
+		RTT_ROOT + '/components/external/ftk/ftk/src',
+		RTT_ROOT + '/components/dfs', 
+		RTT_ROOT + '/components/dfs/include',
+		RTT_ROOT + '/components/libc/newlib']
+
+src = Glob('*.c')
+
+def GenerateDesktopApp(name):
+        xml = '<applications>\n<application name=\"%s\" exec=\"/ftk/apps/%s.so\" init=\"ftk_app_%s_create\" />\n</applications>\n' % (name, name, name)
+
+        f = file(name + '.desktop', 'wb')
+        f.write(xml)
+        f.close
+
+def Demo(env, name):
+	if name == 'ftk_app_demo':
+		return
+
+	target = name + '.so'
+	module_env = env.Clone(CCFLAGS = ' -DRT_THREAD -DFTK_AS_PLUGIN -mcpu=arm920t -O0 -fPIC')
+	module_env.Append(CPPPATH = CPATH)
+	module_env.Replace(LINKFLAGS = ('-z max-page-size=0x4 -shared -fPIC -e ftk_app_%s_create -nostdlib' % name))
+	module_env.Program(name + '.so', [name + '.c', 'ftk_app_demo.o']) 
+	POST_ACTION = RTMLINKER + ' -l ' + TARGET + (' -o %s.mo ' % name) + ('ftk_demo/%s.so' % name)
+	module_env.AddPostAction(target, POST_ACTION)
+	module_env.Clean(target, name + '.desktop')
+	GenerateDesktopApp(name)
+
+demo_env = env.Clone(CCFLAGS = ' -DRT_THREAD -DFTK_AS_PLUGIN -mcpu=arm920t -O0 -fPIC')
+demo_env.Append(CPPPATH = CPATH)
+demo_env.Object('ftk_app_demo.c') 
+
+for item in src:
+	item = item.rstr()
+	Demo(env, item.split('.c')[0])

+ 11 - 0
examples/module/ftk_demo/demo_bidi.c

@@ -28,6 +28,17 @@ static Ret timeout(void* ctx)
 	}
 }
 
+#ifdef FTK_AS_PLUGIN
+#include "ftk_app_demo.h"
+FTK_HIDE int FTK_MAIN(int argc, char* argv[]);
+FtkApp* ftk_app_demo_bidi_create()
+{
+	return ftk_app_demo_create(_("bidi"), ftk_main);
+}
+#else
+#define FTK_HIDE extern
+#endif /*FTK_AS_PLUGIN*/
+
 FTK_HIDE int FTK_MAIN(int argc, char* argv[])
 {
 	int width = 0;

+ 2 - 0
examples/module/ftk_demo/demo_cairo.c

@@ -1,4 +1,5 @@
 #include <math.h>
+#ifdef ENABLE_CAIRO
 #include "ftk_cairo.h"
 
 static cairo_t* cr = NULL;
@@ -371,3 +372,4 @@ FTK_HIDE int FTK_MAIN(int argc, char* argv[])
 
 	return 0;
 }
+#endif

+ 0 - 21
examples/module/ftk_demo/test_util.c

@@ -1,21 +0,0 @@
-#include <stdio.h>
-
-char* read_file(const char* file_name, int* length)
-{
-	struct stat st = {0};
-	if(stat(file_name, &st))
-	{
-		return NULL;
-	}
-	else
-	{
-		char* buffer = malloc(st.st_size + 1);
-		FILE* fp = fopen(file_name, "rb");
-		fread(buffer, 1, st.st_size, fp);
-		fclose(fp);
-		buffer[st.st_size] = '\0';
-		*length = st.st_size;
-
-		return buffer;
-	}
-}