Каков наилучший способ установки (распространения) динамических библиотек в Mac OSX с использованием CMake / Cpack? - PullRequest
2 голосов
/ 03 июня 2010

У меня есть проект, артефактами которого являются две динамические библиотеки, скажем, libX.dylib и libY.dylib (или .so для дистрибутивов Linux). Там нет исполняемых файлов.

Теперь я хотел бы распространять эти библиотеки. Поскольку я уже использую CMake для его компиляции, я посмотрел на CPack и успешно сгенерировал .tgz и .deb пакеты для Linux. Тем не менее, для Mac OSX я понятия не имею, и CPack Wiki о его генераторах мне не сильно помог. Мне удалось сгенерировать пакет PackageMaker, но, как четко указано в в этом руководстве по созданию пакетов , при использовании этой утилиты не существует опции удаления. Затем я прочитал немного о Bundles , но я чувствую себя потерянным, потому что у меня нет исполняемого файла.

Вопрос: Как правильно сгенерировать пакет для Mac OSX с использованием CPack?

Мой идеальный сценарий - это что-то, что устанавливается так же легко, как пакет, или как файл deb в debian / ubuntu.

Спасибо за вашу помощь

Редактировать Еще одна деталь: код для одной из этих библиотек не открыт, поэтому я не могу ожидать, что пользователи сделают cmake; make; make install

Вот почему я хочу .deb, .tar.gz, связку или что-то еще.

1 Ответ

2 голосов
/ 03 июня 2010

Это зависит от того, хотите ли вы установить его в UNIX-y стиле (что вполне нормально, и на самом деле мои собственные предпочтения в качестве пользователя Mac), или от того, хотите ли вы установить его как Mac OS X Framework .

Для установки библиотек UNIX-y вы можете использовать:

INSTALL(TARGETS target1 target2 DESTINATION lib)

В приведенном выше тексте замените target1 и target2 именами целей, в результате которых были созданы libX.dylib и libY.dylib (т.е. все, что вы использовали в ADD_LIBRARY). Вы можете использовать переменную CMAKE_INSTALL_PREFIX, чтобы определить, где в конечном итоге заканчивается библиотека ... с помощью вышеизложенного, если вы установите CMAKE_INSTALL_PREFIX на /usr/local, тогда он установит библиотеки в /usr/local/lib

Редактировать
В зависимости от вашего обновления вас могут заинтересовать Установка компонентов с CPack и CPack Mac OS X Генератор пакетов . Поскольку вы будете устанавливать библиотеки в систему, вам следует использовать генератор PackageMaker. Если бы вы просто распространяли приложение, то создание пакета «.app» и распространение его в «.dmg» было бы правильным решением. PackageMaker устанавливается в Mac OS X при установке Инструментов разработчика Xcode. Чтобы упаковать пакет «.app» в «.dmg», вы можете использовать утилиту диска Mac OS X или связанные с ней инструменты командной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...