Adding a framework to a CompilerInvocation

Hi all,

I have code that builds a CompilerInvocation with the Clang static libraries. I would like to tell that invocation to use specific frameworks, just like using the -framework Clang front-end option. In particular, I’m looking for these “side effects” of using a framework:

  • the compiler locates the framework on the system from its name using the framework search path;
  • the compiler knows where to find framework headers identified through a path like <Framework/Header.h>.

At this point, I think that I’ve looked everywhere in the option sub-objects of the CompilerInvocation class, and the closest thing that I can identify related to that is the header search path. I can’t seem to find a way to tell the CompilerInvocation to look for a specific framework.

How is that supposed to happen? I’m using a manually-built CompilerInvocation instead of building it through command-line arguments because that seems to be the only way to pass a memory buffer as a source unit instead of a file.



Hi Felix,

The framework search path options (that correspond to -F) are stored in an instance of the HeaderSearchOptions class inside the CompilerInvocationBase class, and you can add an new -F search path using the AddPath method.

Hi Alex,

To be clear, I’m looking for the equivalent to the -framework parameter. -F is the search path for -framework.

Porting the code over to build an invocation through command-line arguments would be a possibility, then. I’d still like to know if there’s another way, as I’m under the impression that this other way should be simpler.