Последняя версия LLVM libc++
3.3 от SVN поставляется с CMakeLists.txt
. Я новичок в CMake, но вчера я изучил достаточно, чтобы построить libc++
check-out на хосте RHEL 6.4 x86_64.
Кроме того, я смог добавить достаточно CPack
связанных команд в указанном CMakeLists.txt
, чтобы сгенерировать libcxx-3.3.svn-0.el6.x86_64.rpm
. Но, скорее всего, из-за того, что я новичок в CMake
, я не могу создать статическую и общую библиотеки одновременно.
да. Я просмотрел Можно ли заставить CMake создавать как статическую, так и общую версию одной и той же библиотеки?. Но вместо того, чтобы использовать add_library
и перечислять все исходные файлы, я хотел бы использовать подход, используемый libc++
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
, чтобы строить и то, и другое одновременно?