This is not ideal, but adding script-engine as a linked library, will cause a circular reference I'm open to other potential solutions. Could we change cmake to allow libraries to reference each others headers, but not link to each other, this is essentially what this construct is doing, but would be better to add includes to the include path, but not link to the modules.