Tôi muốn chạy lệnh trong SCons không có bất kỳ tệp đầu vào/đầu ra nào (thực tế đầu vào và đầu ra là cùng một tệp). Tại thời điểm này tôi chỉ cần tự chạy nó với subprocess.Popen nhưng là có một cách sconsy hơn để làm điều đó?Chạy lệnh trong SCons không phụ thuộc
8
A
Trả lời
13
Bạn có thể sử dụng chức năng Command để chạy bất kỳ lệnh bên ngoài nào bạn chạy qua Popen và bạn có thể sử dụng chức năng AlwaysBuild để đảm bảo lệnh của bạn luôn chạy ngay cả khi tệp đích tồn tại. Scons không thích chu kỳ phụ thuộc, vì vậy hãy để trống danh sách nguồn.
myfile = env.Command('myfile.out', [], 'echo Hello world > $TARGETS')
env.AlwaysBuild(myfile)
Bàn phím wiki cũng có công thức cho PhonyTargets giúp dễ dàng thiết lập nhiều lệnh đơn giản.
Các vấn đề liên quan
- 1. SCons: Chu kỳ phụ thuộc?
- 2. SCons: Cách gọi hàm python tự xác định trong tập lệnh scons và làm phụ thuộc đúng
- 3. Người định cư không chạy trên Thuộc tính phụ thuộc?
- 4. Python & SCons & Matlab: Nhập lệnh sai
- 5. SCons AddPostAction gây phụ thuộc Kiểm tra lỗi công việc xung quanh
- 6. không phụ thuộc vào thời gian chạy maven
- 7. Ldd có hiển thị phụ thuộc của phụ thuộc không?
- 8. tương đương với "chạm" trong scons?
- 9. Chạy chương trình Java từ dòng lệnh phụ thuộc vào tệp jar?
- 10. Cập nhật các phụ thuộc soạn nhạc từ dòng lệnh
- 11. Thời gian chạy phụ thuộc tiêm với Spring
- 12. Có cách nào để nhúng các phụ thuộc trong một tập lệnh python không?
- 13. sử dụng dòng lệnh nuget.exe để cài đặt phụ thuộc
- 14. scons - chương trình đang chạy sau khi biên dịch
- 15. Quản lý phụ thuộc trong R
- 16. Học TDD, luôn chạy theo phụ thuộc vòng tròn
- 17. env.Clone() trong scons không làm một bản sao sâu
- 18. NuGet Restore Không có phụ thuộc khi phụ thuộc thêm mục nhập .target vào .csproj
- 19. Phụ thuộc công việc của Autosys R11 với điều kiện thời gian chạy công việc phụ thuộc
- 20. Không thể cài đặt các phụ thuộc trong nút js
- 21. xóa các tệp phụ thuộc
- 22. Tạo mã SCons và VariantDir
- 23. Maven 2.1 phụ thuộc: phân tích. Phụ thuộc transitive: Sử dụng phụ thuộc undeclared tìm thấy
- 24. lấy thư mục gốc của scons
- 25. Lỗi thuộc tính phụ thuộc
- 26. Maven quản lý phụ thuộc cho phụ thuộc Plugin
- 27. giải quyết phụ thuộc vòng tròn với tiêm phụ thuộc
- 28. Phát hiện các phụ thuộc không tương thích trong Maven?
- 29. Phụ thuộc thông tư trong Python
- 30. ClassNotFoundException DispatcherServlet khi khởi chạy Tomcat (phụ thuộc Maven không được sao chép vào wtpwebapps)
Nếu đã có quy tắc để xây dựng 'myfile.out' thì nó than phiền có nhiều cách để tạo mục tiêu. Tôi muốn có một quy tắc để tạo tệp và một quy tắc khác để sửa đổi nó. –
Tôi nghĩ rằng có hai quy tắc cho một mục tiêu là một ý tưởng tồi. Làm thế nào để scons biết liệu quy tắc 'sửa đổi' đã được gọi hay chưa nếu mục tiêu tồn tại? Nó sẽ hoạt động tốt hơn nếu bạn có hai mục tiêu, một cho mỗi quy tắc. Hoặc có một quy tắc thực hiện cả hành động 'tạo' và 'sửa đổi'. –
Chú ý đến các tài liệu scons nơi nó nói 'AlwaysBuild' là một tên gây hiểu nhầm. Vẫn còn một số quy tắc scons đánh giá trước khi thực sự phát hành lệnh. –