Skip to content
/ cheaders Public

official chuck headers for chugins development

Notifications You must be signed in to change notification settings

ccrma/cheaders

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ChucK Headers for Chugins Development

Official header file(s) for ChucK plugin (chugin) deveopment.

Related source repositories

  • chuck : chuck core (compiler, vm, synthesis engine), used in various chuck hosts
  • chugins : chugins maintained by ChucK Team

One header to compile them all...

As of chuck-1.5.2.0 (November 2023), all chugins require a single header file chugin.h for compilation.

  • chuck c++ typedefs and #defines such as t_CKINT, t_CKFLOAT, etc.
  • macros for defining chugin components, e.g., member functions, contructors, operator overloads
  • chugin DL query API for adding new types to the ChucK type system
  • chugin DL runtime API for accessing host functionalities across shared-library boundaries
  • header version string CHUCK_VERSION_STRING (associated with a particular chuck language version)
  • host/chugin compatibility version (used when a chugin loads to determine chugin:host compatibility)

FYI: chugin.h was generated by chuck-o-matic/scripts/chugin-gen-header.sh.

CMake

If you are using cmake, you can automatically download and link a release of cheaders directly from github.

Add the following to your CMakeLists.txt:

include(FetchContent)
FetchContent_Declare(
    cheaders
    GIT_REPOSITORY https://github.com/ccrma/cheaders.git
    GIT_TAG main # checkout at whatever tag you need
)
FetchContent_MakeAvailable(cheaders)

target_link_libraries(myproject PRIVATE cheaders)

About

official chuck headers for chugins development

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages