2013-04-05 25 views
5

LLVM libc++ 3.3 mới nhất từ ​​SVN đi kèm với CMakeLists.txt. Tôi là một người mới chơi CMake, nhưng hôm qua tôi đã nghiên cứu đủ để có thể xây dựng số séc libc++ trên máy chủ RHEL 6.4 x86_64.Xây dựng cả libs tĩnh và chia sẻ cho LLVM libC++ 3.3

Ngoài ra, tôi có thể thêm đủ CPack lệnh có liên quan trong số CMakeLists.txt để tạo số libcxx-3.3.svn-0.el6.x86_64.rpm. Nhưng rất có thể là do mới thành CMake, tôi không thể xây dựng một lib tĩnh và chia sẻ cùng một lúc.

Có. Tôi đã xem xét Is it possible to get CMake to build both a static and shared version of the same library?. Tuy nhiên, thay vì sử dụng add_library và liệt kê tất cả các tệp nguồn, tôi muốn sử dụng phương pháp được sử dụng bởi libc++ 's CMakeList.txt - sử dụng APPEND.

tôi có thể tạo ra một lib tĩnh bằng cách thay thế ON trong dòng 40 dưới đây với OFF để xây dựng một lib tĩnh

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

Hoặc tôi có thể rời khỏi nó như là và xây dựng một lib chia sẻ.

Tôi cũng đã sửa đổi các dòng sau, loại bỏ các dòng NOT hoặc nhận xét ra các dòng 232 và 233 chẳng hạn. Nhưng bất kể những gì tôi đã thử, tôi chỉ không thể có được lib tĩnh để xây dựng cùng với một lib được chia sẻ.

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

Làm cách nào để điều chỉnh tệp CMakeList.txt để xây dựng cả hai cùng một lúc?

Trả lời

3

OK. Tôi đã quyết định sử dụng phương pháp "đã thử và đúng" bằng cách sử dụng lệnh add_library, với tất cả *.cpp được liệt kê. Nó hoạt động OOTB, vì vậy tôi xem nó là một giải pháp.

Tôi sẽ truy cập lại vấn đề này một lần nữa khi tôi có thời gian để cải thiện trình độ của mình với CMake.

Các vấn đề liên quan