Update readme, build scripts

Add incremental build check for stb truetype lib
This commit is contained in:
Edward R. Gonzalez 2025-02-01 09:29:31 -05:00
parent 07cd28226f
commit 0f5f9c18b1
5 changed files with 31 additions and 21 deletions

4
.gitignore vendored
View File

@ -9,5 +9,5 @@ Sectr.sublime-project
Sectr.sublime-workspace
ols.json
.vscode/settings.json
# thirdparty
# toolchain
thirdparty
toolchain

View File

@ -22,16 +22,19 @@ The dependencies are:
* Remove implicit assignments for container allocators in the Base and Core packages
* I did not enjoy bug hunting a memory corruption because I mistakenly didn't properly initialize a core container with their designated initiatizer: new, make, or init.
* See fork Readme for which procedures were changed..
* Odin repo's base, core, and vendor(raylib) libaries
* An ini parser
* Odin repo's base, core, and some of vendor
* [VEFontCache-Odin](https://github.com/Ed94/VEFontCache-Odin): Text rendering & shaping library created for this prototype
* [stb_truetype-odin](https://github.com/Ed94/stb_truetype-odin): Variant of the stb/truetype package in odin's vendor collection made for VEFontCache-Odin
* [harfbuzz-odin](https://github.com/Ed94/harfbuzz-odin): Custom repo with tailor made bindings for VEFontCache-Odin
* [sokol-odin (Sectr Fork)](https://github.com/Ed94/sokol-odin)
* [sokol-tools](https://github.com/floooh/sokol-tools)
* Powershell (if you want to use my build scripts)
* backtrace (not used yet)
* freetype (not used yet)
* harfbuzz
* sokol
* sokol-tools
* Powershell (if you want to use my build scripts)
* Eventually some config parser (maybe I'll use metadesk, or [ini](https://github.com/laytan/odin-ini-parser))
The project is so far in a "codebase boostrapping" phase. Most the work being done right now is setting up high performance linear zoom rendering for text and UI.
Text has recently hit sufficient peformance targets, and now inital UX has become the focus.
The project's is organized into 2 runtime modules sectr_host & sectr.
The host module loads the main module & its memory. Hot-reloading it's dll when it detects a change.
@ -43,7 +46,6 @@ Codebase organization:
* Has the following definitions: startup, shutdown, reload, tick, clean_frame (which host hooks up to when managing the client dll)
* Will handle async ops.
* Font Provider: Manages fonts.
* Bulk of visualization must be able to render text effectively
* Bulk of implementation maintained as a separate library: [VEFontCache-Odin](https://github.com/Ed94/VEFontCache-Odin)
* Grime: Name speaks for itself, stuff not directly related to the target features to iterate upon for the prototype.
* Defining dependency aliases or procedure overload tables, rolling own allocator, data structures, etc.

View File

@ -141,22 +141,25 @@ push-location $path_root
$path_font = join-path $path_code 'font'
$module_scripts = $PSScriptRoot
$package_grime = join-path $path_code 'grime'
$package_VEFontCache = join-path $path_font 'VEFontCache'
$module_host = join-path $path_code 'host'
$module_sectr = join-path $path_code 'sectr'
$module_scripts = $PSScriptRoot
$package_grime = join-path $path_code 'grime'
$package_VEFontCache = join-path $path_font 'VEFontCache'
$package_stb_truetype = join-path $path_thirdparty 'stb'
$module_host = join-path $path_code 'host'
$module_sectr = join-path $path_code 'sectr'
if ($force){
mark-ModuleDirty $module_scripts
mark-ModuleDirty $package_VEFontCache
mark-ModuleDirty $package_stb_truetype
mark-ModuleDirty $package_grime
mark-ModuleDirty $module_sectr
mark-ModuleDirty $module_host
}
$module_scripts_dirty = check-ModuleForChanges $module_scripts
$pkg_VEFontCache_dirty = check-ModuleForChanges $package_VEFontCache
$pkg_grime_dirty = check-ModuleForChanges $package_grime
$module_scripts_dirty = check-ModuleForChanges $module_scripts
$pkg_VEFontCache_dirty = check-ModuleForChanges $package_VEFontCache
$pkg_stb_truetype_dirty = check-ModuleForChanges $package_stb_truetype
$pkg_grime_dirty = check-ModuleForChanges $package_grime
$pkg_collection_codebase = 'codebase=' + $path_code
$pkg_collection_thirdparty = 'thirdparty=' + $path_thirdparty
@ -174,7 +177,7 @@ push-location $path_root
function build-sectr
{
$should_build = (check-ModuleForChanges $module_sectr) -or $pkg_grime_dirty -or $pkg_VEFontCache_dirty -or $module_scripts_dirty
$should_build = (check-ModuleForChanges $module_sectr) -or $pkg_grime_dirty -or $pkg_VEFontCache_dirty -or $pkg_stb_truetype_dirty -or $module_scripts_dirty
if ( -not( $should_build)) {
write-host 'Skipping sectr build, module up to date'
return $module_unchanged

View File

@ -77,8 +77,13 @@ $path_devshell = join-path $path_helpers 'devshell.ps1'
$path_stb = join-path $path_thirdparty 'stb'
$path_stb_src = join-path $path_stb 'src'
push-location $path_stb_src
$pkg_stb_truetype_dirty = check-ModuleForChanges $path_stb
& '.\build.bat'
if ( $pkg_stb_truetype_dirty)
{
push-location $path_stb_src
pop-location
& '.\build.bat'
pop-location
}

Binary file not shown.