Добавление module.modulemap вызывает цикл в зависимостях - PullRequest
0 голосов
/ 04 марта 2020

У меня есть библиотека stati c, C, со смесью obj- c и кода Swift. Мое главное приложение target A ссылается на эту библиотеку. В проекте также есть много других зависимостей и библиотек stati c. Так как я добавил module.modulemap файл в свой проект библиотеки stati c, чтобы я мог использовать его в коде Swift в своем основном приложении, сборка проекта завершается неудачно со следующим сообщением об ошибке:

error: Cycle in dependencies between targets 'A' and 'C'; building could produce unreliable results. This usually can be resolved by moving the target's Headers build phase before Compile Sources.
Cycle path: A → B → C → A
Cycle details:
→ Target 'A' has target dependency on Target 'B'
→ Target 'B' has compile command for Swift source files
→ Target 'C' has copy command from 'path_to_project/Resources/module.modulemap' to 'path_to_build_folder/Build/Products/Debug-iphonesimulator/include/{ProjectName}/module.modulemap'
○ Target 'C' has compile command with input 'path_to_target_C/{ProjectName}/Somefile.mm'
○ Target 'C' has compile command for Swift source files

Кажется, это связано с к новому файлу modulemap и фазе копирования, которую я добавил в свою библиотеку stati c, но не могу сказать, почему эта фаза копирования добавляет цикл зависимости.

Я выполнил шаги, упомянутые в swift-stati c -библиотека в объективе- c за добавление этой поддержки.

Заранее спасибо.

1 Ответ

0 голосов
/ 04 марта 2020

Чтобы решить эту проблему, вам нужно go на Build Phases и переместить фазу копирования, где вы копируете module.modulemap выше Compile Sources.

enter image description here

Но, тем не менее, неясно, почему зависимость возникает в первую очередь.

...