2011-04-08 35 views
5

Tôi đang thay đổi từ đồng bằng thành CMake làm hệ thống xây dựng cho một dự án. Dự án được cho là chạy trên các hệ thống Linux nhúng khác nhau với mỗi chuỗi công cụ riêng và cũng có một vài tùy chọn cấu hình khác nhau cho mỗi mục tiêu (ví dụ: các định nghĩa tiền xử lý khác nhau và một số nguồn bao gồm/loại trừ). Nó cũng được cho là hoạt động trên Linux của máy tính để bàn và một số mô-đun GUI phải chạy trên Windows.CMake nhiều khung công cụ và nền tảng mục tiêu

Bây giờ, CMake có tùy chọn CMAKE_TOOLCHAIN_FILE có thể được sử dụng để đưa ra chuỗi công cụ và công cụ biên dịch cụ thể của từng nền tảng nhúng (máy tính để bàn Linux và Windows không cần).

Tôi đoán đặt những thứ khác ngoài tên được liệt kê trên CMake Wiki bên trong tệp chuỗi công cụ không phải là một ý tưởng hay.

Tôi đang suy nghĩ về việc tạo một số biến CMake có thể được chỉnh sửa bằng công cụ guake cmake và sau đó chỉ cần sử dụng if/elseif để xác định thiết lập phù hợp.

Có ai có đề xuất tốt hơn hoặc thanh lịch hơn không?

Trả lời

5

I figured thay vì sử dụng lâu if/elseif/else khối Tôi chỉ đơn giản là có thể có

include(flags-${CONFIGURATION_NAME}.cmake) 

trong CMakeLists.txt của tôi và những lá cờ cụ thể cho từng cấu hình sau đó sẽ đơn giản được liệt kê vào file cờ thích hợp.