2010-09-14 27 views
6

Tôi có một dự án thư viện chứa một số mẫu trong một thư mục con.Tạo một Xây dựng theo Cấp bậc với các SCON

Bản thân thư viện có tệp SConstruct và mỗi mẫu có thư mục riêng và tệp SConstruct riêng.

Tôi muốn thêm mục tiêu vào tệp chính (gốc) SConstruct để cho phép tôi biên dịch thư viện như thường lệ và tất cả các mẫu, cùng một lúc.

Có cơ chế/người xây dựng hiện tại cho điều này không?

P.S: Tôi không muốn chỉ có một tệp lớn SConstruct vì tôi muốn các thư mục mẫu duy trì độc lập.

Trả lời

8

http://www.scons.org/doc/production/HTML/scons-man.html

Tạo Build Hierarchical

Chú ý rằng tên tập tin định trong SConscript của một thư mục con nộp có liên quan đến thư mục con đó.

SConstruct:

env = Environment() 
env.Program(target = 'foo', source = 'foo.c') 

SConscript('sub/SConscript') 

sub/SConscript:

env = Environment() 
# Builds sub/foo from sub/foo.c 
env.Program(target = 'foo', source = 'foo.c') 

SConscript('dir/SConscript') 

sub/dir/SConscript:

env = Environment() 
# Builds sub/dir/foo from sub/dir/foo.c 
env.Program(target = 'foo', source = 'foo.c') 
+0

Không thể tìm thấy trong tài liệu. Chính xác những gì tôi cần. Cảm ơn nhiều. – ereOn

4

Đối với những người như tôi đến với câu hỏi này từ Google, Tôi tìm thấy một ví dụ hoàn chỉnh hơn về xây dựng một thư viện và mã được gọi là nó here.

(Xin lỗi nếu câu trả lời này của một câu hỏi cũ được tán thành - một số lượng lớn tìm kiếm cho các kết hợp khác nhau của "scons" "subdirectory" "hierarchical" "build", v.v. muốn tiết kiệm cho người khác hơn 8 giờ tôi chỉ cần cố gắng để có được các bản dựng thứ bậc để làm việc một cách rõ ràng).

+0

Đó là một tham khảo tốt thực sự. Sau vài năm, [cuối cùng tôi có thể đạt được mục tiêu của mình] (https://github.com/freelan-developers/freelan-all) bằng cách sử dụng các cấu trúc phân cấp SCons: dự án được tách thành nhiều libs/sample/ứng dụng mà tất cả đều sử dụng Tệp SCons. – ereOn

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