2012-07-18 34 views
5

Tôi đang thử nghiệm với CMake một chút cho kho C++, nhưng tôi đang gặp phải một số vấn đề đang cố gắng làm cho việc xây dựng ứng dụng dễ dàng hơn với thư viện trong cùng một cây nguồn thêm mã CMake.dễ dàng bao gồm tiêu đề từ phụ thuộc thư viện trong cmake

Cách bố trí của cây nguồn cơ bản là như sau:

ROOT 
    libs/ 
     lib1/ 
     lib2/ 
     lib3/ 
    apps/ 
     app1/ 
     app2/ 
     app3/ 

Các thư viện độc lập với nhau, và các ứng dụng có thể liên kết với một hoặc nhiều các thư viện.

Hiện tại tôi có một CMakeLists.txt gốc liệt kê từng ứng dụng và thư viện dưới dạng thư mục phụ để thư viện bị thay đổi và ứng dụng được xây dựng lại, thư viện cũng vậy. Điều này làm việc tốt và CMake liên kết nó mà không cần phải chỉ định nơi thư viện sống, nhưng tôi không thấy cách nào để làm một cái gì đó tương tự cho các thư mục bao gồm.

Có cách nào phổ biến để xử lý việc này không? Tôi không muốn có CMakeLists.txt của mỗi ứng dụng phải tự liệt kê ra đường dẫn đến các thư viện mà nó cần.

Trả lời

1

Nếu bạn không sợ tạo nhiều tiêu đề hơn bạn thực sự cần cho mỗi ứng dụng, bạn có thể liệt kê tất cả thư mục lib trong câu lệnh INCLUDE_DIRECTORIES, ví dụ: trong CMakeListst.txt thêm tất cả các danh sách con ứng dụng. Nhưng không có khái niệm nào về quản lý "thuộc" bao gồm các thư mục cho mỗi mục tiêu được tích hợp sẵn.

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