Skip to content

鸭库 duck lib scheme for gui gles gl slib openal socket web mongodb box2d game glfw mysql libevent libuv uv json http client server android osx linux chezscheme scheme-lib

License

Notifications You must be signed in to change notification settings

evilbinary/scheme-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scheme-lib

scheme-lib 是一个scheme使用的库。目前支持android mac linux windows,其它平台在规划中。

官方主页:http://scheme-lib.evilbinary.org/ QQ群:Lisp兴趣小组239401374

linux、mac

安装编译

  1. linux下安装apt-get install freeglut3-dev libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libalut-dev libopenal-dev libffi-dev依赖库。
  2. mac安装xcode command line tool。
  3. 执行make命令就可以编译,对应平台的文件在bin目录下。
  4. 进入bin目录,执行source env.sh,然后运行./scheme --script ../apps/hello.ss就可以运行例子。

windows

  1. 下载scheme-lib-2.0-win32.zip,解压后进入bin,打开cmd运行run.bat ../apps/gui-test.ss就可以运行例子了。

截图

android

新手入门

环境安装 手机版

  1. 先安装scheme-release-1.5.apk
  2. 点击下载app库和package库
  3. 下载成功后点击运行计算机demo或者直接打开apps里面的应用demo点击运行

运行效果如下:

测试配置

  1. 在手机上输入运行代码可能不方便,所以弄了个配置文件,把需要运行的代码放到配置中会自己加载代码运行。配置文件为config.xml内容如下:

    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <map>
    	<string name="debugCode">(import (test) (gles1) (glut) ) (load "/sdcard/org.evilbinary.chez/lib/apps/draw-point.ss") ;(imgui-test-hello-world) </string>
    </map>
  2. adb push config.xml /sdcard/org.evilbinary.chez/scm/conf/config.xml

  3. 打开scheme app就可以直接运行啦。

高级篇

android使用外部库

  1. 手工添加Android.mk和源码文件到scheme-lib/android/src下命名为libhadd的文件夹。 add.c 内容如下:

    #include <stdio.h>
    #include <stdarg.h>
    int add(int a,int b){
       return a+b;
    }    

    Android.mk内容如下:

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    include $(LOCAL_PATH)/../Optimizations.mk
    LOCAL_MODULE    := add
    LOCAL_SRC_FILES := add.c
    LOCAL_C_INCLUDES :=
    LOCAL_CFLAGS +=  -I. -I./c/
    LOCAL_CFLAGS += -g -Wall -DANDROID    -DINLINES -DGC_MACROS   -Wno-unused-parameter -pie -fPIE   -fPIC
    LOCAL_LDLIBS += -ldl -llog -lz
    include $(BUILD_SHARED_LIBRARY)
  2. 执行make android

  3. 将编译后生成的库android/src/libs/libadd.so 同步到/sdcard/org.evilbinary.chez/lib目录下,这样能调用外部库了。

  4. 调用外libadd.so库和使用代码如下:

    (import  (scheme) (utils libutil) )
    (load-lib "libadd.so")
    (define-c-function int add (int int) )
    (display (add 100 1234))

About

鸭库 duck lib scheme for gui gles gl slib openal socket web mongodb box2d game glfw mysql libevent libuv uv json http client server android osx linux chezscheme scheme-lib

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published