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

Последняя версия 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, чтобы строить и то, и другое одновременно?


person user183394    schedule 05.04.2013    source источник


Ответы (1)


В ПОРЯДКЕ. Я решил использовать "проверенный и верный" метод использования команды add_library со всеми перечисленными *.cpp. Это работает OOTB, поэтому я считаю это решением.

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

person user183394    schedule 06.04.2013