Skip to content
bobbyjimPublic

About

Package library for development on the X16

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

77 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x16-c-packages

Code library and resources for the X16

Package structure and management

The x16-c-packages repository is organized into packages, each containing a library of C and assembly code, tooling, and assets. Each package is defined by a package.yaml file that specifies the package name, version, type, and dependencies. The package.yaml file also includes metadata about the package, such as a description, author, and license.

name: text.utext
version: 1.0.0
type: hybrid (or library, tool, asset)

Package types

  • library: A library of C and assembly code that can be used by other packages. It cannot be executed on its own.
  • hybrid: A package that contains both a library and tooling. It can be used by other packages and also executed on its own.
  • tool: A package that contains tooling that can be executed on its own. It cannot be used by other packages.
  • asset: A package that contains assets that can be used by other packages. It cannot be executed on its own.

Package structure

Each package should follow the following structure:

package.yaml
README.md
src/            (library source code)
include/        (library header files)
test/           (library test code)
tools/          (executable tools)
data/raw/       (raw data)
data/c/         (C data)
data/x16/       (X16 data)

Installing packages into another project

Use the installer script in this repository to vendor a package into another project while preserving the package layout:

perl /path/to/x16-pack/scripts/install-package.pl --project /path/to/your-game audio.adsr

That copies the package into the consuming project's packages/ tree:

/path/to/your-game/packages/audio/adsr/1.0.0/

Dependencies listed in package.yaml are installed first. A version can be requested explicitly with name@version:

perl /path/to/x16-pack/scripts/install-package.pl --project . graphics.sprite
perl /path/to/x16-pack/scripts/install-package.pl --project . audio.adsr@1.0.0

Useful flags:

  • --dry-run shows what would be copied.
  • --force reinstalls a package if that version is already present.
  • --include-tests copies test/ directories too.

About

Package library for development on the X16

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages