mirror of
https://github.com/Ed94/VEFontCache-Odin.git
synced 2025-08-04 22:22:43 -07:00
Remove local sokol-tools (too large)
This commit is contained in:
@@ -17,7 +17,7 @@ A custom version of the vendor:stb/truetype is maintained by this library:
|
|||||||
* Added ability to set the stb_truetype allocator for `STBTT_MALLOC` and `STBTT_FREE`.
|
* Added ability to set the stb_truetype allocator for `STBTT_MALLOC` and `STBTT_FREE`.
|
||||||
* Changed procedure signatures to pass the font_info struct by immutable ptr (#by_ptr) when the C equivalent has their parameter as `const*`.
|
* Changed procedure signatures to pass the font_info struct by immutable ptr (#by_ptr) when the C equivalent has their parameter as `const*`.
|
||||||
|
|
||||||
All other dependencies are provided directly into the thirdparty directory. However they can be cloned from their corresponding github repos:
|
All other dependencies are provided directly into the thirdparty directory (EXCEPT sokol-tools, its cloned). However they can be cloned from their corresponding github repos:
|
||||||
|
|
||||||
[harfbuzz](https://github.com/Ed94/odin_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).
|
[harfbuzz](https://github.com/Ed94/odin_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).
|
||||||
[sokol](https://github.com/floooh/sokol) built using `build_sokol_library.ps1`.
|
[sokol](https://github.com/floooh/sokol) built using `build_sokol_library.ps1`.
|
||||||
@@ -57,7 +57,7 @@ Build sokol manually if not using a fresh clone.
|
|||||||
|
|
||||||
#### Note on dependency packages
|
#### Note on dependency packages
|
||||||
|
|
||||||
All other dependencies are provided directly into the thirdparty directory. However they can be cloned from their corresponding github repos:
|
All other dependencies are provided directly into the thirdparty directory (EXCEPT sokol-tools, its cloned). However they can be cloned from their corresponding github repos:
|
||||||
|
|
||||||
[harfbuzz](https://github.com/Ed94/odin_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).
|
[harfbuzz](https://github.com/Ed94/odin_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).
|
||||||
|
|
||||||
|
4
thirdparty/sokol-tools/.gitignore
vendored
4
thirdparty/sokol-tools/.gitignore
vendored
@@ -1,4 +0,0 @@
|
|||||||
.vscode/
|
|
||||||
.zig-cache/
|
|
||||||
zig-out/
|
|
||||||
*.pyc
|
|
21
thirdparty/sokol-tools/LICENSE
vendored
21
thirdparty/sokol-tools/LICENSE
vendored
@@ -1,21 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2019 Andre Weissflog
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
2
thirdparty/sokol-tools/README.md
vendored
2
thirdparty/sokol-tools/README.md
vendored
@@ -1,2 +0,0 @@
|
|||||||
# sokol-tools-bin
|
|
||||||
Binaries and fips integration for https://github.com/floooh/sokol-tools
|
|
2
thirdparty/sokol-tools/bin/linux/readme.txt
vendored
2
thirdparty/sokol-tools/bin/linux/readme.txt
vendored
@@ -1,2 +0,0 @@
|
|||||||
Precompiled binaries for Linux go here (64-bit statically linked).
|
|
||||||
|
|
BIN
thirdparty/sokol-tools/bin/linux/sokol-shdc
vendored
BIN
thirdparty/sokol-tools/bin/linux/sokol-shdc
vendored
Binary file not shown.
BIN
thirdparty/sokol-tools/bin/linux_arm64/sokol-shdc
vendored
BIN
thirdparty/sokol-tools/bin/linux_arm64/sokol-shdc
vendored
Binary file not shown.
2
thirdparty/sokol-tools/bin/osx/readme.txt
vendored
2
thirdparty/sokol-tools/bin/osx/readme.txt
vendored
@@ -1,2 +0,0 @@
|
|||||||
Precompiled binaries for macOS go here.
|
|
||||||
|
|
BIN
thirdparty/sokol-tools/bin/osx/sokol-shdc
vendored
BIN
thirdparty/sokol-tools/bin/osx/sokol-shdc
vendored
Binary file not shown.
BIN
thirdparty/sokol-tools/bin/osx_arm64/sokol-shdc
vendored
BIN
thirdparty/sokol-tools/bin/osx_arm64/sokol-shdc
vendored
Binary file not shown.
2
thirdparty/sokol-tools/bin/win32/readme.txt
vendored
2
thirdparty/sokol-tools/bin/win32/readme.txt
vendored
@@ -1,2 +0,0 @@
|
|||||||
Precompiled binaries for Windows (64-bit) go here.
|
|
||||||
|
|
BIN
thirdparty/sokol-tools/bin/win32/sokol-shdc.exe
vendored
BIN
thirdparty/sokol-tools/bin/win32/sokol-shdc.exe
vendored
Binary file not shown.
143
thirdparty/sokol-tools/build.zig
vendored
143
thirdparty/sokol-tools/build.zig
vendored
@@ -1,143 +0,0 @@
|
|||||||
//! Helper code to invoke sokol-shdc from the Zig build system.
|
|
||||||
//! See https://github.com/floooh/sokol-zig for an example
|
|
||||||
//! of how to use sokol-tools-bin as a lazy dependency and
|
|
||||||
//! compile shaders (search for `shdc.compile` in the sokol-zig build.zig)
|
|
||||||
const std = @import("std");
|
|
||||||
const builtin = @import("builtin");
|
|
||||||
const Allocator = std.mem.Allocator;
|
|
||||||
const Build = std.Build;
|
|
||||||
|
|
||||||
pub const Options = struct {
|
|
||||||
dep_shdc: *Build.Dependency,
|
|
||||||
input: Build.LazyPath,
|
|
||||||
output: Build.LazyPath,
|
|
||||||
slang: Slang,
|
|
||||||
format: Format = .sokol_zig,
|
|
||||||
tmp_dir: ?Build.LazyPath = null,
|
|
||||||
defines: ?[][]const u8 = null,
|
|
||||||
module: ?[]const u8 = null,
|
|
||||||
reflection: bool = false,
|
|
||||||
bytecode: bool = false,
|
|
||||||
dump: bool = false,
|
|
||||||
genver: ?[]const u8 = null,
|
|
||||||
ifdef: bool = false,
|
|
||||||
noifdef: bool = false,
|
|
||||||
save_intermediate_spirv: bool = false,
|
|
||||||
no_log_cmdline: bool = true,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub fn compile(b: *Build, opts: Options) !*Build.Step.Run {
|
|
||||||
const shdc_path = try getShdcLazyPath(opts.dep_shdc);
|
|
||||||
const args = try optsToArgs(opts, b, shdc_path);
|
|
||||||
var step = b.addSystemCommand(args);
|
|
||||||
step.addFileArg(opts.input);
|
|
||||||
return step;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// target shader languages
|
|
||||||
/// NOTE: make sure that field names match the cmdline arg string
|
|
||||||
pub const Slang = packed struct(u10) {
|
|
||||||
glsl410: bool = false,
|
|
||||||
glsl430: bool = false,
|
|
||||||
glsl300es: bool = false,
|
|
||||||
glsl310es: bool = false,
|
|
||||||
hlsl4: bool = false,
|
|
||||||
hlsl5: bool = false,
|
|
||||||
metal_macos: bool = false,
|
|
||||||
metal_ios: bool = false,
|
|
||||||
metal_sim: bool = false,
|
|
||||||
wgsl: bool = false,
|
|
||||||
};
|
|
||||||
|
|
||||||
fn slangToString(slang: Slang, a: Allocator) ![]const u8 {
|
|
||||||
var strings: [16][]const u8 = undefined;
|
|
||||||
var num_strings: usize = 0;
|
|
||||||
inline for (std.meta.fields(Slang)) |field| {
|
|
||||||
if (@field(slang, field.name)) {
|
|
||||||
strings[num_strings] = field.name;
|
|
||||||
num_strings += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return std.mem.join(a, ":", strings[0..num_strings]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// the code-generation target language
|
|
||||||
/// NOTE: make sure that the item names match the cmdline arg string
|
|
||||||
pub const Format = enum {
|
|
||||||
sokol,
|
|
||||||
sokol_impl,
|
|
||||||
sokol_zig,
|
|
||||||
sokol_nim,
|
|
||||||
sokol_odin,
|
|
||||||
sokol_rust,
|
|
||||||
sokol_d,
|
|
||||||
sokol_jai,
|
|
||||||
};
|
|
||||||
|
|
||||||
fn formatToString(f: Format) []const u8 {
|
|
||||||
return @tagName(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn getShdcLazyPath(dep_shdc: *Build.Dependency) !Build.LazyPath {
|
|
||||||
const intel = builtin.cpu.arch.isX86();
|
|
||||||
const opt_sub_path: ?[]const u8 = switch (builtin.os.tag) {
|
|
||||||
.windows => "bin/win32/sokol-shdc.exe",
|
|
||||||
.linux => if (intel) "bin/linux/sokol-shdc" else "bin/linux_arm64/sokol-shdc",
|
|
||||||
.macos => if (intel) "bin/osx/sokol-shdc" else "bin/osx_arm64/sokol-shdc",
|
|
||||||
else => null,
|
|
||||||
};
|
|
||||||
if (opt_sub_path) |sub_path| {
|
|
||||||
return dep_shdc.path(sub_path);
|
|
||||||
} else {
|
|
||||||
return error.ShdcUnsupportedPlatform;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn optsToArgs(opts: Options, b: *Build, tool_path: Build.LazyPath) ![]const []const u8 {
|
|
||||||
const a = b.allocator;
|
|
||||||
var arr: std.ArrayListUnmanaged([]const u8) = .empty;
|
|
||||||
try arr.append(a, tool_path.getPath(b));
|
|
||||||
try arr.appendSlice(a, &.{ "-o", opts.output.getPath(b) });
|
|
||||||
try arr.appendSlice(a, &.{ "-l", try slangToString(opts.slang, a) });
|
|
||||||
try arr.appendSlice(a, &.{ "-f", formatToString(opts.format) });
|
|
||||||
if (opts.tmp_dir) |tmp_dir| {
|
|
||||||
try arr.appendSlice(a, &.{ "--tmpdir", tmp_dir.getPath(b) });
|
|
||||||
}
|
|
||||||
if (opts.defines) |defines| {
|
|
||||||
try arr.appendSlice(a, &.{ "--defines", try std.mem.join(a, ":", defines) });
|
|
||||||
}
|
|
||||||
if (opts.module) |module| {
|
|
||||||
try arr.appendSlice(a, &.{ "--module", b.dupe(module) });
|
|
||||||
}
|
|
||||||
if (opts.reflection) {
|
|
||||||
try arr.append(a, "--reflection");
|
|
||||||
}
|
|
||||||
if (opts.bytecode) {
|
|
||||||
try arr.append(a, "--bytecode");
|
|
||||||
}
|
|
||||||
if (opts.dump) {
|
|
||||||
try arr.append(a, "--dump");
|
|
||||||
}
|
|
||||||
if (opts.genver) |genver| {
|
|
||||||
try arr.appendSlice(a, &.{ "--genver", b.dupe(genver) });
|
|
||||||
}
|
|
||||||
if (opts.ifdef) {
|
|
||||||
try arr.append(a, "--ifdef");
|
|
||||||
}
|
|
||||||
if (opts.noifdef) {
|
|
||||||
try arr.append(a, "--noifdef");
|
|
||||||
}
|
|
||||||
if (opts.save_intermediate_spirv) {
|
|
||||||
try arr.append(a, "--save-intermediate-spirv");
|
|
||||||
}
|
|
||||||
if (opts.no_log_cmdline) {
|
|
||||||
try arr.append(a, "--no-log-cmdline");
|
|
||||||
}
|
|
||||||
// important: keep this last
|
|
||||||
try arr.append(a, "-i");
|
|
||||||
return arr.toOwnedSlice(a);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn build(b: *Build) void {
|
|
||||||
_ = b;
|
|
||||||
}
|
|
7
thirdparty/sokol-tools/build.zig.zon
vendored
7
thirdparty/sokol-tools/build.zig.zon
vendored
@@ -1,7 +0,0 @@
|
|||||||
.{
|
|
||||||
.name = .sokolshdc,
|
|
||||||
.fingerprint = 0xe0596dde0e9962af,
|
|
||||||
.version = "0.1.0",
|
|
||||||
.minimum_zig_version = "0.14.0",
|
|
||||||
.paths = .{ "bin", "build.zig", "build.zig.zon" },
|
|
||||||
}
|
|
@@ -1,62 +0,0 @@
|
|||||||
#-------------------------------------------------------------------------------
|
|
||||||
# SokolShader.py
|
|
||||||
#
|
|
||||||
# Fips code-generator script for invoking sokol-shdc during the build.
|
|
||||||
#
|
|
||||||
# Use the cmake macro 'sokol_shader([glsl-file] [shader-dialects])' inside a
|
|
||||||
# fips target (fips_begin_* / fips_end_*) to hook the code-generation
|
|
||||||
# build job into the build process.
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Version = 5
|
|
||||||
|
|
||||||
import os, platform, subprocess
|
|
||||||
import genutil as util
|
|
||||||
from mod import log
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
def find_shdc():
|
|
||||||
shdc_path = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
shdc_path += '/../../bin/'
|
|
||||||
if platform.system() == 'Windows':
|
|
||||||
shdc_path += 'win32/'
|
|
||||||
elif platform.system() == 'Darwin':
|
|
||||||
if platform.machine() == 'arm64':
|
|
||||||
shdc_path += 'osx_arm64/'
|
|
||||||
else:
|
|
||||||
shdc_path += 'osx/'
|
|
||||||
elif platform.system() == 'Linux':
|
|
||||||
if platform.machine() in ['aarch64', 'arm64']:
|
|
||||||
shdc_path += 'linux_arm64/'
|
|
||||||
else:
|
|
||||||
shdc_path += 'linux/'
|
|
||||||
else:
|
|
||||||
log.error('Unknown host system {}'.format(platform.system()))
|
|
||||||
return shdc_path + 'sokol-shdc'
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
def generate(input, out_src, out_hdr, args):
|
|
||||||
errfmt = 'msvc' if args['compiler']=='MSVC' else 'gcc'
|
|
||||||
if util.isDirty(Version, [input], [out_hdr]):
|
|
||||||
print('## sokol-shdc: {} {} {}'.format(input, out_hdr, str(args)))
|
|
||||||
cmd = [find_shdc(),
|
|
||||||
'--input', input,
|
|
||||||
'--output', out_hdr,
|
|
||||||
'--slang', args['slang'],
|
|
||||||
'--genver', str(Version),
|
|
||||||
'--errfmt', errfmt,
|
|
||||||
'--format', 'sokol']
|
|
||||||
if 'defines' in args:
|
|
||||||
cmd.extend(['--defines', args['defines']])
|
|
||||||
if 'module' in args:
|
|
||||||
cmd.extend(['--module', args['module']])
|
|
||||||
if 'reflection' in args:
|
|
||||||
if args['reflection']:
|
|
||||||
cmd.extend(['--reflection'])
|
|
||||||
if 'debuggable' in args and args['debuggable']:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
cmd.extend(['--bytecode'])
|
|
||||||
res = subprocess.call(cmd)
|
|
||||||
if res != 0:
|
|
||||||
log.error('sokol-shdc returned with error code {}'.format(res))
|
|
25
thirdparty/sokol-tools/fips-files/include.cmake
vendored
25
thirdparty/sokol-tools/fips-files/include.cmake
vendored
@@ -1,25 +0,0 @@
|
|||||||
macro(sokol_shader shd slang)
|
|
||||||
set(args "{slang: '${slang}', compiler: '${CMAKE_C_COMPILER_ID}' }")
|
|
||||||
fips_generate(TYPE SokolShader FROM ${shd} HEADER ${shd}.h OUT_OF_SOURCE ARGS ${args})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# special version which doesn't generate binary output, this allows shaders to be debugged
|
|
||||||
macro(sokol_shader_debuggable shd slang)
|
|
||||||
set(args "{slang: '${slang}', compiler: '${CMAKE_C_COMPILER_ID}', debuggable: true }")
|
|
||||||
fips_generate(TYPE SokolShader FROM ${shd} HEADER ${shd}.h OUT_OF_SOURCE ARGS ${args})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(sokol_shader_variant shd slang module defines)
|
|
||||||
set(args "{slang: '${slang}', compiler: '${CMAKE_C_COMPILER_ID}', defines: '${defines}', module: '${module}' }")
|
|
||||||
fips_generate(TYPE SokolShader FROM ${shd} HEADER ${shd}.${module}.h OUT_OF_SOURCE ARGS ${args})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(sokol_shader_with_reflection shd slang)
|
|
||||||
set(args "{slang: '${slang}', compiler: '${CMAKE_C_COMPILER_ID}', reflection: true }")
|
|
||||||
fips_generate(TYPE SokolShader FROM ${shd} HEADER ${shd}.h OUT_OF_SOURCE ARGS ${args})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(sokol_shader_variant_with_reflection shd slang module defines)
|
|
||||||
set(args "{slang: '${slang}', compiler: '${CMAKE_C_COMPILER_ID}', defines: '${defines}', module: '${module}', reflection: true }")
|
|
||||||
fips_generate(TYPE SokolShader FROM ${shd} HEADER ${shd}.${module}.h OUT_OF_SOURCE ARGS ${args})
|
|
||||||
endmacro()
|
|
Reference in New Issue
Block a user