Skip to content

Latest commit

 

History

History
69 lines (39 loc) · 2.96 KB

Readme.md

File metadata and controls

69 lines (39 loc) · 2.96 KB

Scripts

All scripts provided for utilizing the example demos or backends.

Windows

build_sokol_demo.ps1

Builds example's sokol_demo.odin. Will gather necessary dependencies first.
Its assumed the user has Odin installed and exposed to the OS enviornment's PATH.
(Change odin_compiler_def.ps1 if not the case)

Note on dependency packages

All dependencies are cloned directly into a created thirdparty directory.

harfbuzz is configured to pull & build the C++ library, it will use the MSVC toolchain (you can change it to use meson instead of preferred).
freetype package has pre-built .lib files for windows (debug/release).
sokol built using build_sokol_library.ps1.
sokol-tools used by compile_sokol_shaders.ps1 to compile the glsl files into odin files for the sokol backend.

build_sokol_library.ps1

Helper script used by build_sokol_demo.ps1. Build's & modifies the library for its use in the examples.

clean.ps1

Will wipe the build folder.

compile_sokol_shaders.ps1

Will generate the odin files containing the sokol shader descriptions for the corresponding glsl shaders. Utilized by the sokol backend. Doesn't need to be run unless modifications are made to the shaders (pre-generated files are commited to this repository).

Helpers

devshell.ps1

Will run Launch-VsDevShell.ps1 for the user to populate the shell with its enviornmental definitions

misc.ps1

A few helper functions to utilize powerhsell & github repos as package management.

odin_compiler_defs.ps1

Just variable declarations based on flags used with the odin compiler's CLI.

Mac & Linux

Essentially equivalent scripts from the PS scripts used on windows were ported to bash. Tested in WSL ubuntu image for Linux, and a github action workflow for MacOS.

Note on dependency packages

Some dependencies are cloned directly into a created thirdparty directory.

harfbuzz is configured to pull & build the C++ library, it will use the gcc toolchain (you can change it to use meson instead of preferred).

  • On MacOS, harbuzz imports through system:harfbuzz instead as there is an issue with importing via relative directories.
    • Use for example brew install harfbuzz

freetype package does not come with binaries (uses "system:" instead)
sokol built using build_sokol_library.sh.
sokol-tools used by compile_sokol_shaders.sh to compile the glsl files into odin files for the sokol backend.

Caveats:

  • The Freetype library's binary must be installed by the user ( Ex: sudo apt install libfreetype6-dev )
  • Sokol needs gl, x11, and alsa libs. The build_sokol_library.sh script has basic implementation listing which libraries those are for ubuntu.