• R/O
  • SSH
  • HTTPS

qrobosdk: コミット


コミットメタ情報

リビジョン7 (tree)
日時2008-05-09 20:33:09
作者satofumi

ログメッセージ

add luabind test

変更サマリ

差分

--- trunk/samples/Makefile (nonexistent)
+++ trunk/samples/Makefile (revision 7)
@@ -0,0 +1,6 @@
1+# Makefile for qrk/samples/
2+# Satofumi KAMIMURA
3+# $Id$
4+
5+include ../handover.mk
6+TARGET_DIR = luabind_test/
--- trunk/samples/luabind_test/hello.lua (nonexistent)
+++ trunk/samples/luabind_test/hello.lua (revision 7)
@@ -0,0 +1,2 @@
1+-- luabind を用いて lua から C++ 関数を呼び出す例
2+hello("someone")
--- trunk/samples/luabind_test/hello.cpp (nonexistent)
+++ trunk/samples/luabind_test/hello.cpp (revision 7)
@@ -0,0 +1,48 @@
1+/*!
2+ \file
3+ \brief Luabin を用いて C++ 関数を lua に公開する例
4+
5+ \author Satofumi KAMIMURA
6+
7+ 「実例で学ぶ ゲームAIプログラミング」より
8+*/
9+
10+extern "C" {
11+#include <lua.h>
12+#include <lualib.h>
13+#include <lauxlib.h>
14+}
15+
16+#include <luabind/luabind.hpp>
17+
18+
19+static void hello(const char* name) {
20+ printf("hello %s\n", name);
21+}
22+
23+
24+int main(int argc, char *argv[]) {
25+
26+ // lua のスタックを作成
27+ lua_State* pLua = lua_open();
28+
29+ // luabind を初期化
30+ luabind::open(pLua);
31+
32+ // C++ 関数の登録
33+ luabind::module(pLua) [
34+ luabind::def("hello", &hello)
35+ ];
36+
37+ // lua スクリプトの実行
38+ if (int error = luaL_dofile(pLua, "hello.lua") != 0) {
39+ printf("Error %d\n", error);
40+ exit(1);
41+ }
42+
43+ // linbind の終了処理
44+ lua_close(pLua);
45+
46+ return 0;
47+}
48+
--- trunk/samples/luabind_test/Makefile (nonexistent)
+++ trunk/samples/luabind_test/Makefile (revision 7)
@@ -0,0 +1,24 @@
1+# Makefile for lua_test
2+# Satofumi KAMIMURA
3+# $Id$
4+
5+# Compile options
6+CC = ${CXX}
7+CXXFLAGS = -g -O0 -Wall -Werror
8+LDFLAGS =
9+LDLIBS = -llua -lluabind
10+
11+# Target
12+TARGET = hello
13+
14+
15+all : ${TARGET}
16+
17+clean :
18+ ${RM} *.o ${TARGET}
19+
20+depend :
21+ makedepend -Y -- ${INCLUDES} -- ${wildcard *.h *.cpp}
22+
23+.PHONY : all clean depend
24+######################################################################
--- trunk/dox/replace.rb (nonexistent)
+++ trunk/dox/replace.rb (revision 7)
@@ -0,0 +1,16 @@
1+#!/usr/bin/ruby
2+
3+output = ''
4+File.open(ARGV[0]) { |io|
5+ while line = io.gets
6+ if line =~ /_SOURCE_FORGE_LOGO_/
7+ line.sub!(/_SOURCE_FORGE_LOGO_/, '<a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=3478" width="96" height="31" border="0" alt="SourceForge.JP"></a>')
8+ end
9+
10+ output += line
11+ end
12+}
13+
14+File.open(ARGV[0], 'w') { |io|
15+ io.write(output)
16+}
--- trunk/Makefile (revision 6)
+++ trunk/Makefile (revision 7)
@@ -10,10 +10,15 @@
1010 clean :
1111 cd libs/ && ${MAKE} clean
1212 cd programs/ && ${MAKE} clean
13+ cd samples/ && ${MAKE} clean
1314 ${RM} -rf output_html/*
1415
1516 html :
1617 doxygen
18+ ruby dox/replace.rb output_html/index.html
1719
20+upload : html
21+ rsync -avz -e ssh --delete output_html/* shell.sourceforge.jp:/home/groups/q/qr/qrobosdk/htdocs/
22+
1823 .PHONY : all clean html upload
1924 ######################################################################
旧リポジトリブラウザで表示