Najnowsza wersja LLVM libc++
3.3 z SVN jest dostarczana z CMakeLists.txt
. Jestem nowicjuszem CMake, ale wczoraj uczyłem się wystarczająco, aby móc zbudować checkout na libc++
na hoście RHEL 6.4 x86_64.Budowanie bibliotek statycznych i współdzielonych dla LLVM libC++ 3.3
Ponadto udało mi się dodać wystarczające polecenia związane z CPack
we wspomnianym CMakeLists.txt
, aby wygenerować libcxx-3.3.svn-0.el6.x86_64.rpm
. Ale najprawdopodobniej z powodu nowości w CMake
nie mogę jednocześnie utworzyć statycznej i udostępnionej biblioteki.
Tak. Recenzowałem Is it possible to get CMake to build both a static and shared version of the same library?. Ale zamiast korzystać z add_library
i wyliczyć wszystkie pliki źródłowe, chciałbym użyć podejścia stosowanego przez libc++
's CMakeList.txt
- przy użyciu APPEND
.
mogę wygenerować statyczny lib zastępując ON
w linii 40 poniżej OFF
zbudować statyczny lib
40 option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
41
Albo mogę go zostawić jak jest i budować wspólną lib.
Też pomalowałem z następującymi liniami, eliminując na przykład linie 232 i 233 NOT
lub linie komentarza out. Ale niezależnie od tego, co próbowałem, po prostu nie mogłem uzyskać statycznej lib do zbudowania razem z udostępnioną biblioteką.
232 if (NOT LIBCXX_ENABLE_SHARED)
233 list(APPEND LIBCXX_CXX_FEATURE_FLAGS -D_LIBCPP_BUILD_STATIC)
234 endif()
Jak mogę dostosować plik CMakeList.txt
tak aby zbudować zarówno w tym samym czasie?