2013-03-29 3 views
0

Я участвую в разработке большого кросс-платформенного проекта, который создается для Windows, Linux и Mac OS X. Сборка для программного обеспечения настроена с помощью CMake.Конфигурирование CMake для построения с помощью Xcode

Сценарии CMake были разработаны, чтобы успешно настроить для Visual Studio на Windows, и Makefiles в настоящее время используются для построения на Linux и Mac OS X.

Практически все разработки для проекта до сих пор было сделанные с людьми, работающими в Windows, и небольшая работа над Linux. Я заинтересован в разработке для проекта с использованием Xcode 4.6 на Macintosh под управлением Mac OS X 10.7, и у меня возникают проблемы, поскольку файлы CMake, похоже, не настроены должным образом для этой среды разработки.

Для платформ, отличных от Windows, было написано множество пользовательских команд для настройки таких операций, как копирование необходимых файлов или установочных сред, необходимых для определенных операций, таких как выполнение модульных тестов во время процесса сборки.

Похоже, что Xcode - это интегрированная среда разработки, в которой Visual Studio имеет эту концепцию конфигурации сборки, и когда программное обеспечение создает выходные файлы вывода в пути к каталогу, который включает эту концепцию конфигурации (то есть многие файлы сборки закончите путь, который заканчивается папкой с именем «Debug», «Release» и т. д.).

Предполагается, что у CMake есть поддержка для решения этой концепции конфигурации сборки, а механизм хорошо работает для Visual Studio. Это не похоже на работу с Xcode. Например, наши инженеры по строительству имеют сценарии CMake, поэтому для Windows многие пути и многое другое настраиваются с использованием значения CMAKE_CFG_INTDIR, которое помогает квалифицировать конфигурацию сборки.

Использование CMAKE_CFG_INTDIR не работает для Xcode, поскольку сценарий для Macintosh был написан с использованием Make-файлов, которые на самом деле не имеют концепции конфигурации сборки. Использование CMAKE_CFG_INTDIR в пользовательских командах, используемых для настройки, не работает на Macintosh, так как значение разрешается до $ (CONFIGURATION) $ (EFFECTIVE_PLATFORM_NAME). Эти значения не определяются при выполнении пользовательских команд, поэтому значения не установлены должным образом, а операции сборки не выполняются.

Непонятно, что необходимо для успешной настройки системы для Xcode. Поиск в Интернете до сих пор не дал понимания того, что следует использовать, чтобы убедиться, что конфигурация сборки может быть успешной. Какие ресурсы доступны, чтобы помочь в определении того, как настроить этот проект для сборки с помощью Xcode?

ответ

0

Если вы говорите о настраиваемых командах, заданных с помощью add_custom_command, вам следует предпочесть «генераторные выражения», чтобы избежать проблем, связанных с конфигурационными сборками. Из документов для add_custom_command:

Аргументы COMMAND могут использовать «выражения» генератора с синтаксисом «$<...>». Выражения генератора оцениваются во время генерации системы сборки для получения информации, специфичной для каждой конфигурации сборки.

Например, каталог сборки для цели под названием «MyExe» может упоминаться как $<TARGET_FILE_DIR:MyExe>

генератор выражений доступны в нескольких CMake команд, а не только add_custom_command.

Если у вас есть более конкретные проблемы, возможно, стоит задать дополнительные вопросы с соответствующими деталями.

Смежные вопросы