Flint Engine
Modular C++20 2D game engine powered by SDL3
Loading...
Searching...
No Matches
THIRD_PARTY_NOTICES

Third-Party Notices

Flint itself is MIT-licensed (see [LICENSE](LICENSE)). It also uses, embeds, or builds against several third-party components, each under its own license.

‍Release packaging note: The exact redistribution requirements of a Flint-based application depend on the components actually included in that application's build and distribution. SDL_image, SDL_ttf, and SDL_mixer may build or link additional codec, font, or media libraries depending on the platform and configuration. Include any notices and license texts required by the components actually shipped.

Components used by Flint

Component Version / revision License How Flint uses it
SDL3 release-3.4.12 Zlib Core platform, GPU, windowing, input, timing, and related services
SDL3_image release-3.4.4 Zlib Image decoding and texture loading
SDL3_ttf release-3.2.2 Zlib TrueType/OpenType font loading and text rendering
SDL3_mixer release-3.2.4 Zlib Audio playback and mixing
spdlog v1.17.0 MIT Logging
{fmt} Determined by selected spdlog revision MIT WITH fmt-exception Formatting implementation bundled by Flint's spdlog configuration
tinyxml2 11.0.0 Zlib .flml UI markup parsing
Noto Sans Regular 2.015 OFL-1.1 Default UI font embedded in Flint
Premake 5.0.0-beta3 BSD-3-Clause Build-system generator; not part of a shipped game unless redistributed

Component details

SDL3

SDL3_image

SDL3_ttf

SDL3_mixer

spdlog

{fmt}

Flint uses the {fmt} implementation bundled with spdlog. The exact {fmt} revision therefore depends on the selected spdlog revision.

The bundled {fmt} implementation is licensed under the MIT License with the fmt exception.

tinyxml2

Noto Sans Regular

Premake

License texts included with Flint

Standard licenses used by this repository are stored in LICENSES/, including:

  • Zlib.txt
  • MIT.txt
  • OFL-1.1.txt
  • BSD-3-Clause.txt

Component-specific copyright notices must also be retained where required by the corresponding license. The files in LICENSES/ are SPDX license texts and are not a substitute for component-specific copyright notices.

What must accompany a distributed application?

There is no single rule that applies to every component above. Preserve the materials required by the licenses of the components actually distributed with or incorporated into the application.

  • Zlib (SDL family, tinyxml2) — do not misrepresent the origin of the software; altered source versions must be clearly marked; and the Zlib notice must not be removed from source distributions. Attribution in an application's UI or documentation is appreciated but is not required by the Zlib license.
  • MIT (spdlog) — include the applicable copyright notice and MIT permission notice in copies or significant portions of the software.
  • MIT WITH fmt-exception ({fmt}) — preserve the upstream license when redistributing {fmt} source or other copies to which the exception does not apply. The exception permits certain compiled object-code uses without the notice requirement.
  • BSD-3-Clause (Premake) — if Premake binaries are redistributed, retain the applicable copyright notice, conditions, and disclaimer in accompanying documentation or other materials. The names of Premake or its contributors may not be used to endorse derived products without permission.
  • OFL-1.1 (Noto Sans) — when redistributing the embedded font, include its copyright notice and the OFL. The font may be bundled, embedded, redistributed, and sold as part of software, but may not be sold by itself.

Build-dependent and transitive dependencies

The SDL satellite libraries can use additional third-party libraries. The exact set varies by operating system, enabled formats, available system packages, and whether the SDL project is configured to use vendored dependencies.

Flint's current setup scripts make this platform-dependent:

  • SDL3_ttf — on MSVC, SDL3_ttf defaults to vendored dependencies; Flint also explicitly enables vendored dependencies on macOS. These builds can therefore incorporate third-party libraries such as FreeType, HarfBuzz, PlutoSVG, and PlutoVG. On non-MSVC Linux builds, SDL3_ttf defaults to system dependencies unless the configuration is changed.
  • SDL3_image — on MSVC, SDL3_image defaults to vendored dependencies. Flint's Windows setup explicitly disables AVIF, but other enabled image backends may still incorporate their own libraries. On macOS and Linux, SDL3_image defaults to system dependencies unless the configuration is changed.
  • SDL3_mixer — Flint's Windows setup explicitly disables vendored dependencies, and the upstream default is also non-vendored on macOS/Linux. The codecs and libraries actually used therefore depend on what the build system finds and which mixer backends are enabled.
  • spdlog — the selected spdlog revision determines the exact bundled {fmt} revision used by Flint.

Do not maintain a guessed exhaustive list of SDL transitive dependencies in this file. For a release, use the dependency configuration and license files produced or supplied by the exact builds being shipped and include the notices required by the libraries actually present.

Source tree and build tools

Dependencies downloaded into ignored vendor/ directories by Flint's setup scripts are not necessarily part of Flint's Git history. Their absence from a REUSE-generated SPDX inventory therefore does not mean they are absent from a compiled application.

Premake is build tooling. Its redistribution requirements apply when the Premake binary itself is redistributed, such as when it is included with a Flint source package. It is not incorporated into a Flint-based game merely because Premake was used to generate that game's project files.