Tôi cần một số lời khuyên trong các vấn đề sau:SCons hoặc CMake thay vì qmake
Tôi có một dự án QT, hiện được thiết lập để hoạt động tốt với qmake. Tuy nhiên, do mở rộng các yêu cầu và hướng tương lai của dự án, tôi cần phải thay đổi hệ thống xây dựng của nó, vì ứng dụng sẽ yêu cầu một số thay đổi theo cách nó sẽ được xây dựng.
Ngay bây giờ mọi tệp nguồn được biên dịch thành tệp thực thi khá lớn, tệp này được đóng gói (theo cách thủ công) và được gửi đến khu vực tải xuống. Tất cả đều ổn.
Nhưng hướng tôi đang hướng đến là mô đun hóa ứng dụng theo cách mà mỗi "tính năng" sẽ được biên dịch thành một thư viện được chia sẻ và người dùng (nhà phát triển) sẽ có thể chọn các thành phần mà anh ta muốn biên dịch. Những "tính năng" này được đặt trong các thư mục trong cây nguồn (ví dụ: query_builder, thư mục reverse_engineer, mysql_DB_support, version_managemen, vv ...) và khi người dùng xây dựng ứng dụng, anh ta chỉ đơn giản nói với hệ thống xây dựng để biên dịch một ứng dụng với trình tạo truy vấn , và mysql, nhưng không có kỹ sư đảo ngược và trong trường hợp này, hệ thống xây dựng thêm các tệp nguồn từ thư mục được chỉ định và tạo một thư mục lib từ nó.
Tôi cũng có những yêu cầu khác như:
- cửa sổ xây dựng, linux xây dựng
- tùy chọn gói build (deb, rpm)
- hỗ trợ cho QT và có thể QT5
- nhiều thực thi (GUI khách hàng, khách hàng CLI)
Sau khi một số "nghiên cứu thị trường" tôi đã kết thúc với CMake và SCons dưới dạng hai chương trình có thể thân tôi có thể sử dụng. Tôi có một số kinh nghiệm CMake, và một số kinh nghiệm python, nhưng không có SCons nào được nêu ra.
Nhưng tôi không biết cái nào tốt nhất cho trường hợp của tôi, đây là nơi tôi cần sự giúp đỡ của bạn. Bạn có thể xây dựng mà tôi nên sử dụng? Và nếu bạn xem xét rằng các yêu cầu của tôi có thể đạt được với qmake, vui lòng cho tôi biết điều đó,
Chúc mừng, f.
Tôi khuyên bạn nên sử dụng CMake cho việc này.Nó hoạt động tuyệt vời với Qt trên windows (Tôi đã sử dụng nó từ năm 2008 về cơ bản cho mọi dự án tại nơi làm việc và nhà) và linux và không hỗ trợ các thành phần tùy chọn như bạn mô tả. Mặc dù với điều đó nói rằng tôi không sử dụng scons vì vậy tôi không thể so sánh. – drescherjm