Я пытаюсь автоматизировать сборку для проекта OSX Xcode 7, используя xcodebuild
команда. Проект представляет собой статическую библиотеку, написан на C ++ и должен иметь одну цель.
Мой проект требует несколько файлов (скажем, с расширением .В) быть построенным, прежде чем что-либо еще происходит (из-за #include
х) используя кастом построить правило. Итак, я добавил правило сборки для исходные файлы с совпадающими именами и переехал мой В файлы наверху исходников компиляции, которые (как я читал) должны гарантировать, что они будут скомпилированы раньше других (.cpp) исходных файлов.
Есть несколько других проектов, от которых зависит мой проект, поэтому они находятся в целевые зависимости.
Все работает правильно, когда сборка выполняется из самого Xcode, но когда я пытаюсь выполнить сборку, используя xcodebuild
команда, правила не применяются, упорядочение не обеспечивается, целевые зависимости не разрешаются, и по какой-то причине компилятор пытается связать их .В файлы в результирующую библиотеку.
Код, который я запускаю, так же прост, как xcodebuild -project MyProject.xcodeproj -configuration Release
Рабочим решением этой проблемы была отдельная цель, которая была построена раньше основной цели. Отдельная цель выполняла только те правила сборки для В.
Вопрос в том, как сделать xcodebuild
ведут себя так же, как Xcode 7 строить команда делает — относительно шагов сборки, порядка компиляции и т. д.
Задача ещё не решена.
Других решений пока нет …