Theos

A cross-platform build system for creating iOS, macOS, Linux, and Windows programs.

Structure

Information regarding the various parts of Theos’ internal structure:

  • bin/: Contains various scripts used both internally by Theos and externally by the user.
  • include/: Provided for you to place your own headers in.
    • _fallback/: Allowed to provide drop-in replacements for missing SDK headers.
  • lib/: Provided for you to place your own libraries and frameworks in.
  • makefiles/: The makefiles that comprise the majority of Theos itself.
    • install/: Rules for installing packages on different platforms. These execute commands upon install and uninstall of the package.
    • instance/: Makefiles included from a sub-make when building an individual instance (project). This includes the compilation of source.
    • master/: Makefiles included from the master make invocation.
    • package/: Rules for building packages for various packaging formats. These execute commands upon building the package.
    • platform/: Makefiles included depending on the current operating system platform. These set up the Theos environment appropriately for the platform.
    • targets/: Makefiles included depending on the current operating system platform and the target platform. These set up the Theos environment appropriately to build for a platform.
  • mod/: Provided for you to place modules in. Theos will automatically include various files from here.
  • sdks/: Provided for you to place SDKs in.
  • templates/: Provided for you to place your own NIC templates in.
  • toolchain/: Provided for you to place toolchains in, as directed at Installation.
  • vendor/: Submodule components included with Theos.
    • dm.pl/: The files for the script used to build deb packages without the need for dpkg-deb.
    • include/: Built-in headers that may or may not be useful for most projects.
    • lib/: Built-in library definitions that may or may not be useful for most projects.
    • logos/: The files for Logos.
    • mod/: Provided modules that are enabled selectively for enhanced functionality.
    • nic/: The files for NIC.
    • templates/: Built-in templates that may be used to scaffold new projects using NIC.
  • Prefix.pch: The prefix header imported into the compilation process for all C-based languages. Provides macros and imports of frameworks for legacy projects.