Сборка статических и общих библиотек для LLVM libc ++ 3.3

Последний LLVM libc++ 3.3 от SVN поставляется с CMakeLists.txt, Я новичок CMake, но вчера я достаточно учился, чтобы иметь возможность строить libc++ проверка на хосте RHEL 6.4 x86_64.

Кроме того, я смог добавить достаточно CPack связанные команды в сказал CMakeLists.txt генерировать libcxx-3.3.svn-0.el6.x86_64.rpm, Но, скорее всего, из-за того, что CMakeЯ не могу создать статическую и совместно используемую библиотеку одновременно.

Да. Я просмотрел Можно ли заставить CMake собрать как статическую, так и совместно используемую версию одной и той же библиотеки?. Но вместо того, чтобы использовать add_library и перечислить все исходные файлы, я хотел бы использовать подход, используемый libc++«s CMakeList.txt — с помощью APPEND,

Я мог бы создать статическую библиотеку, заменив ON в строке 40 ниже с OFF построить статическую библиотеку

40  option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
41

Или я мог бы оставить все как есть и создать общую библиотеку.

Я также возился со следующими строками, исключая NOT или комментируя строки 232 и 233, например. Но независимо от того, что я пытался, я просто не мог заставить статическую библиотеку собираться вместе с общей библиотекой.

232  if (NOT LIBCXX_ENABLE_SHARED)
233    list(APPEND LIBCXX_CXX_FEATURE_FLAGS -D_LIBCPP_BUILD_STATIC)
234  endif()

Как я могу настроить CMakeList.txt файл, чтобы построить оба одновременно?

5

Решение

ХОРОШО. Я решил использовать «проверенный и верный» метод использования add_library команда, со всеми *.cpp в списке. Это работает OOTB, поэтому я считаю это решением.

Я перейду к этой проблеме снова, как только у меня будет время, чтобы улучшить свои навыки CMake,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]