Последний 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
файл, чтобы построить оба одновременно?
ХОРОШО. Я решил использовать «проверенный и верный» метод использования add_library
команда, со всеми *.cpp
в списке. Это работает OOTB, поэтому я считаю это решением.
Я перейду к этой проблеме снова, как только у меня будет время, чтобы улучшить свои навыки CMake
,
Других решений пока нет …