On Sunday, 23 June 2024 at 16:33:54 UTC, realhet wrote:
Hi,

Is there a way to call an external program from CTFE?


Use case:
Inside a module I want to put some GLSL code.
I also want to generate that GLSL code using CTFE.
And when it's done, it would be nice if I was able to save that GLSL code into a temp file and call the glsl compiler on it. The goal is that the compiled version of the module would contain also the compiled version of that GLSL shader. And the time of the GLSL compilation could be the exact same time of the EXE compilation.

This sounds a bit of hacking, but from viewing from a multi-target build perspective, it can make sense. Calling a compiler from another compiler... Why not? :D

The nearest thing I've found is the "include file contents" 'macro', that can be enabled with a command line parameter. (Maybe it's already deprecated, I'm not sure.)


My other way to do this would be an automation inside my IDE. But if something could be done on the language level it's always better than doing it by using external tools.

ctfe is intentionally hobbled "for safety"; while theres bugs and edge cases I dont think anyone has a sane way to escape to full execution

realistically you should just write a build script with two stages

fun thought experiment time, if you found a programmable "FUSE"(file system api) database of some sort, mixed `-J` and `-mixin`, I think you may be able to call a compiler
  • Call an external... realhet via Digitalmars-d-learn
    • Re: Call an... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
    • Re: Call an... monkyyy via Digitalmars-d-learn
      • Re: Cal... realhet via Digitalmars-d-learn
        • Re:... anyaburke via Digitalmars-d-learn

Reply via email to