FiniteReality/Finite.Cpp.Sdk

Compilation support

Opened this issue · 2 comments

Because this would be totally useless without this! :)

Overall idea so far is to separate compile and link into separate steps to allow incremental builds. Tasks under src/Tasks/ roughly follow this.

Open questions:

  • How do we expose compiler options to the user?
    • NativeCXX.targets mockup from Thermite has very platform-dependent options
    • But if we expose platform-independent options (e.g. <StandardVersion>c++17</StandardVersion> we'd need some database mapping these options)
  • Reproducible/deterministic builds? (Super stretch goal)
  • How do we want to use "standard" MSBuild properties?
  • How do we reflect these in #2 for packaging?

Current code has a minimum viable product which allows using GCC-style clang to compile simple binaries, with no dependencies.

Windows support has been added. For consistency, the Microsoft extensions have been disabled for now. We can investigate this later - maybe a <LanguageExtensions>microsoft</LanguageExtensions> property?