Document:TkScript
Author:bsp
Date:2023


1 Introduction

TkScript is a portable and free open source "glue" script language for C / C++ frameworks.
It is mainly designed for multithreaded audio / graphics / UI applications, and text processing tools.
Software written in TkScript includes
TkScript is accompanied by a set of add-on plugins / libraries that provide bindings for
TkScript has been tested on the following platforms:

2 License

TkScript is distributed under the terms of the GNU General Public License (GPLv2).
The add-on plugins and libraries are distributed under the terms of the GNU Lesser (library) General Public License (LGPLv2), or the MIT / BSD licenses (see plugin / library source for details).
note_s
Software written in TkScript may use any license (FOSS, closed source, ..).

3 Platform compatibility matrix

ComponentWindowsLinuxmacOS
tksYYY
eqxmmsYYY
tkanalogrytmYYY
tkbluetoothYY-
tkchipmunkYYY
tkfileutilsYYY
tkfreeglutYYY
tkfreetype2YYY
tkfreeverbYYY
tkgmpYYY
tkmathYYY
tkmidiY--
tkmidi_alsa-Y-
tkmidi_portmidiYYY
tkmidipipeYYY
tkoldmathYYY
tkopenglYYY
tkportaudioYYY
tkportaudio_alsa_async-Y-
tkportaudio_alsa_simple-Y-
tkportaudio_oss-Y-
tkradiastoolsYYY
tksamplechainYYY
tksampleeditYYY
tksamplerYYY
tksdlYY-
tksdl12-compat-YY
tksdl2-YY
tksdl_netYYY
tksidplay2YYY
tksmdiY--
tkspeexdspYYY
tksqliteYYY
tktriangulateYYY
tkuiYYY
tkvst2Y--
tkvst2_stub-YY
tkvst2_nogui-YY
tkvst2_macos--Y
tkwiiY--
tkzipYYY
yingtestYYY

4 Downloads

4.1 Precompiled Binaries

Windows 10 x86_64tks.zip (v0.9.80.18, 05Mar2023)
macOS 13 x86_64tks_macos_x86_64.zip (v0.9.80.18, 05Mar2023)
macOS 13 arm64tks_macos_arm64.zip (v0.9.80.18, 05Mar2023)
tip_s
on macOS, copy the extracted the files to /usr/local/ (optional)

4.2 Source

The latest source-code packages are here:
tip_l
How to build (via install helper):
$ wget http://tkscript.org/tks_install_helper.sh 
$ chmod +x tks_install_helper.sh 
$ ./tks_install_helper.sh 
  • downloads the source packages and builds them
  • tested on macOS 13, Debian GNU/Linux 11, Windows 10
How to build (manually):
  • The first three packages (source, build, yac) are mandatory for building a command-line version of tks.
  • The remaining packages are optional.
  • Edit the toplevel makefile (makefile.linux, makefile.macos or makefile.msvc) to choose which additional plugins will be built.
  • Edit+Run . setenv_linux.sh, . ./setenv_macos_arm64.sh, . ./setenv_macos_x86_64.sh or . setenv_msvc.sh to set up cross compiling / target platform / include+lib paths.
  • It is recommended to set up a shell function for make invocation, e.g. m(){ make -j20 -f makefile.msvc $* ; } (done by setenv*)
Requirements / Prerequisites:
  • The Windows build environment requires MSYS2 and the Microsoft Visual Studio compiler, e.g. the free-as-in-beer Community Edition.
  • The Linux build environment requires GCC / G++, GNU make, and GNU Bash.
  • The macOS build environment requires Clang (xcode toolchain), make, zsh, and the following brew packages: sdl12-compat, sdl2, libpng, freetype (tested with arm64 and x86_64) (and optionally sdl_net, gnutls, libzip, portaudio).
The plugin bindings use the YaC (Yet another Component object model) interface, and the YInG interface generator.
To rebuild the bindings for a specific module, run
$ m yac 
in the plugin (or tks-source) directory.

5 Examples

6 Tools

7 Games

For your amusement, some of the older stuff can be downloaded here:

8 Documentation

See here for language reference guide.
For historical purposes, here are the old changelogs from 2002 - 2015.

Valid HTML 4.01 Transitional

Document created on 05-Mar-2023 13:53:41