Я не очень много знаю о XCode, но это не должно быть слишком сложно для реализации в вашем собственном коде.
Это очень просто, если вы загружаете код построчно.Поскольку каждая строка загружена, проверьте, имеет ли она форму #import "filename"
.Если это так, загрузите этот файл, прежде чем продолжить.Примерно такой код C ++:
string loadGLSL(string fileName)
{
ifstream inputStream(fileName);
string fileContents, line;
while(inputFile.good())
{
getline(inputStream, line);
if(isImportDirective(line))
loadGLSL(getFileNamePart(line));
else
fileContents += line + '\n';
}
}
Я позволю вам разобраться в деталях isImportDirective
и getFileNamePart
, но это не должно быть слишком сложным.Я также не обратил внимания на несколько #import
с одного и того же файла - такая избыточность должна быть проверена, если вы хотите добиться функциональности, аналогичной Objective-C #import
.
Конечно, выМожно также сначала загрузить весь файл, затем найти строку #import
, а затем поменять местами требуемое содержимое файла для этой строки.Все, что вы думаете, работает лучше всего.
Надеюсь, это поможет.