2010-02-20 7 views
6

Tôi đánh giá cao makefiles và làm cho tất cả vinh quang của họ, nhưng tôi tự hỏi nếu không có một cách trực quan hơn để duy trì c/c + + của tôi xây dựng.Bạn đã thay thế makefiles bằng tập lệnh ruby ​​chưa?

Có ai đã thử thay thế các tệp makefiles của mình bằng các tập lệnh ruby ​​để cho phép các bản dựng phức tạp và thích ứng mà không bị mất khả năng đọc? Có những viên đá quý nào khiến việc này dễ dàng hơn không?

Trả lời

6

Hãy xem Rake, một sự thay thế được viết bằng Ruby. Về cơ bản nó là một ngôn ngữ cụ thể của miền nhỏ, hướng tới các nhiệm vụ giống như make điển hình, với khả năng viết mã ruby ​​thông thường trong số Rakefile.

+0

Hứa hẹn. Tôi sẽ xem xét điều này. Có ai ở trong một nhóm có quy mô lớn đã biên dịch mã C++ của họ bằng cào không? (Chúng tôi cũng đang xây dựng trên Windows, nếu điều đó quan trọng). – thebretness

+2

http://Rubini.us/ là một dự án C++ khá lớn (tốt, thực sự là một dự án Ruby chứa một phần lớn C++) sử dụng Rake làm hệ thống xây dựng của nó. http://IronRuby.Net/ cũng sử dụng Rake; nó không phải C++ nhưng C#, nhưng có lẽ đủ gần. Rubinius không hoạt động trên Windows, nhưng điều đó không liên quan gì đến quá trình xây dựng. Và Microsoft IronRuby rõ ràng hoạt động trên Windows. Ngoài ra còn có một số công ty nhúng và robot xây dựng C++, C và thậm chí lắp ráp với Rake. –

+0

Sau rất nhiều tinkering, tôi đã xây dựng một rakefile tôi hài lòng với. Cảm ơn. – thebretness

3

Đây là một ý tưởng rất cũ và đã được thử với nhiều ngôn ngữ kịch bản. SRC Modula-3 được gửi bằng ngôn ngữ có tên "Quake", trong đó tất cả các m3makefile s cho dự án được viết. Thách thức là để cung cấp một cái gì đó tiếp cận sự gọn gàng và minh bạch của một Makefile trong khi cho phép nhiều sức mạnh biểu cảm hơn. Rake có một cách để đi trước khi nó tiếp cận sự đơn giản và rõ ràng của thực hiện hoặc động đất, nhưng nó là eminently sử dụng được. Tôi nghĩ rằng một số khả năng đọc được hy sinh liên quan đến một công cụ như Kế hoạch 9 của mk, nhưng Rake là dễ đọc hơn nhiều so với sử dụng baroque của Gnu Make.

3

Tôi đã chuyển đổi các dự án C lớn, nhiều và phức tạp bằng cách sử dụng Rake và một vài dự án Java nhỏ.

Và tôi sẽ không bao giờ quay trở lại làm tệp! Các rakefiles cho đôi mắt của tôi là dễ đọc hơn nhiều so với makefiles hoặc ant.

Rake và ruby ​​có bộ vấn đề riêng, tài liệu chính là tài liệu phong nha, và vẫn sẽ học hỏi và trải nghiệm để tạo các hệ thống xây dựng phong nha trừ khi bạn rất tiện dụng với Ruby.